Los tests de regresión de PostgreSQL son un conjunto completo de pruebas para la implementación de SQL embebidos en PostgreSQL. Realizan pruebas tanto sobre operaciones SQL estándar, como también sobre las capacidades añadidas por PostgreSQL.
Los tests de regresión fueron desarrollados originalmente por Jolly Chen y Andrew Yu, y fueron extensamente repasados/reempaquetados por Fournier y Thomas Lockhart. Para PostgreSQL v6.1 en adelante los tests de regresión forman parte de cada release oficial.
Algunas bases de datos PostgreSQL correctamente instaladas y totalmente funcionales pueden fallar en alguno de estos test de regresión debido a problemas con la representación del punto flotante y el soporte de zona horaria. Los tests actuales son evaluados usando un sencillo algoritmo "diff", y son muy sensibles a pequeñas diferencias en el sistema. Para tests aparentemente fallidos, si se examinan estas diferencias, pueden revelar no ser significativas.
Las notas sobre tests de regresión de abajo asumen lo siguiente (excepto en casos indicados):
Las instrucciones son compatibles con Unix. Vea la nota abajo.
Se usan las opciones por defecto excepto donde se indica.
El usuario postgres es el superusuario Postgres.
La ruta de las fuentes es /usr/src/pgsql (son posibles otras rutas).
La ruta de los ejecutables es /usr/local/pgsql (son posibles otras rutas).
Para preparar los tests de regresión, haga make all en el directorio de los tests de regresión. Esto compila un programa C con funciones extendidas PostgreSQL en un librería compartida. Se generan algunos guiones (scripts) SQL localizados y archivos de salida comparativos para los tests que los necesiten. La localización reemplaza macros en los archivos de fuentes con rutas absolutas y nombres de usuario.
Normalmente, los tests de regresión deben ser ejecutados por el usuario postgres ya que el directorio 'src/test/regress' y subdirectorios son de su propiedad. Si ejecuta los test de regresión con otro usuario el directorio 'src/test/regress' debe tener permisos de escritura para ese usuario.
Antes era estrictamente necesario ejecutar el postmaster con la zona horaria del sistema establecida en PST, pero ya no es necesario. Puede ejecutar los tests de regresión sobre su configuración habitual del postmaster. El guión (script) del test establecerá la variable de entorno PGTZ para asegurar que los tests dependientes de la zona horaria produzcan los resultados esperados. De todas formas, su sistema debe proporcionar librerías de soporte para la zona horaria PST8PDT, o los tests dependientes de la zona horaria fallarán. Para comprobar que su equipo soporta esto, escriba lo siguiente:
setenv TZ PST8PDT date |
La orden "date" de arriba tiene que devolver la hora actual del sistema en la zona horaria PST8PDT. Si la base de datos PST8PDT no está disponible, entonces el sistema tiene que devolver la hora en GMT. Si la zona horaria PST8PDT no está disponible, puede establecer las reglas para esa zona horaria explicitamente.
setenv PGTZ PST8PDT7,M04.01.0,M10.05.03 |