26.3. Arquivos de comparação específicos de plataformas

Como alguns testes produzem resultados inerentes a uma determinada plataforma, é disponibilizada uma maneira de fornecer arquivos de comparação de resultados específicos para a plataforma. Com freqüência a mesma discrepância se aplica a várias plataformas; em vez de fornecer arquivos de comparação distintos para todas as plataformas, existe um arquivo de mapeamento que define o arquivo de comparação a ser utilizado. Portanto, para eliminar falsas "falhas" nos testes para uma determinada plataforma, deve ser escolhido ou desenvolvido um arquivo de resultado alternativo, e depois adicionada uma linha no arquivo de mapeamento, que é o src/test/regress/resultmap.

Toda linha do arquivo de mapeamento possui a forma:

nome_do_teste/padrão_de_plataforma=nome_do_arquivo_de_comparação

O nome do teste é simplesmente o nome do módulo de teste de regressão específico. O padrão de plataforma é um padrão no estilo da ferramenta Unix expr (ou seja, uma expressão regular com uma âncora ^ implícita no início). Este padrão é comparado com o nome da plataforma conforme exibido por config.guess, seguido por :gcc ou :cc, dependendo se for utilizado o compilador GNU ou o compilador nativo do sistema (nos sistemas onde há diferença). O nome do arquivo de comparação é o nome do arquivo de comparação de resultado substituto.

Por exemplo: alguns sistemas interpretam valores de ponto flutuante muito pequenos como zero, em vez de informar um erro de underflow. Isto causa algumas pequenas diferenças no teste de regressão float8. Por isso é fornecido um arquivo de comparação alternativo, float8-small-is-zero.out, que inclui os resultados esperados nestes sistemas. Para silenciar as mensagens falsas de "falha" nas plataformas OpenBSD, o arquivo resultmap inclui

float8/i.86-.*-openbsd=float8-small-is-zero

que dispara em toda máquina para a qual a saída de config.guess corresponde a i.86-.*-openbsd. Outras linhas no arquivo resultmap selecionam arquivos de comparação alternativos para outras plataformas conforme apropriado.

SourceForge.net Logo CSS válido!