Como alguno de los tests producen resultados inherentes a la
plataforma usada, hemos proporcionamos una forma para suplir
los archivos de comparación especificos para cada plataforma.
Frecuentemente se da la misma variación en múltiples plataformas; en
vez de dar un archivo de comparación separado para cada plataforma,
existe un archivo guía que define qué archivo de comparación usar.
De forma que, para eliminar fallos tontos de una plataforma en
particular, debe elegir o crear un fichero de resultados variantes,
y añadir una línea al archivo guía, que es "mapa de resultados".
Cada línea del archivo guía es de la siguiente forma
testname/platformnamepattern=comparisonfilename
|
El nombre del test (testname) es sencillamente el nombre del módulo
de regresión de ese test en particular. El patrón del nombre de la
plataforma (platformnamepattern) está generado al estilo de expr(1)
(que es una expresión regular con el símbolo ^ implícito al
principio). Esta se comprueba con el nombre de la plataforma tal
como viene escrito en config.guess. El nombre del fichero de
comparación (comparisonfilename) es el nombre del sustituto del
fichero de resultados de comparación.
Por ejemplo: el test de regresión int2 incluye una entrada
deliberada de un valor que es demasiado largo para caber en un
int2. El mensaje de error específico que es producido es
dependiente de la plataforma; nuestra plataforma de referencia saca
ERROR: pg_atoi: error reading "100000": Numerical result out of range
|
pero en un buen número de otras plataformas Unix saca
ERROR: pg_atoi: error reading "100000": Result too large
|
En este caso, proporcionamos una variante del archivo de
comparación, int2-too-large.out, que incluye la sintaxis de este
mensaje de error. Para no mostrar estos "fallos" tontos en las
plataformas HPPA, el resultmap (mapa de resultados) incluye
que se activará en cualquier máquina en el que la salida de
config.guess comience por 'hppa'. Otras líneas en el resultmap
seleccionan la variante del archivo de comparación para otras
plataformas donde sea apropiado.