26.3. Fichiers de comparaison spécifiques à la plateforme

Comme certains des tests produisent de façon inhérente des résultats spécifiques à la plateforme, nous avons fourni un moyen de fournir des fichiers de comparaison de résultats spécifiques à la plateforme. Fréquemment, la même variation s'applique entre plusieurs plateformes ; plutôt que de fournir un fichier de comparaison séparé pour chaque plateforme, il existe un fichier de correspondance définissant les fichiers de comparaison à utiliser. Donc, pour éliminer les << échecs >> dûs à des tests bogués pour une plateforme particulière, vous devez choisir ou créer un fichier de résultat variant puis ajouter une ligne dans le fichier de correspondance, à savoir src/test/regress/resultmap.

Chaque ligne du fichier de correspondance est de la forme

nomtest/modeleplateform=fichiercomparaison

Le nom de tests est juste le nom du module de tests de régression particulier. Le modèle de plateforme est un modèle dans le style des outils Unix expr (c'est-à-dire une expression rationnelle avec une ancre implicite ^ au début). Il est testé avec le nom de plateforme affiche par config.guess suivi par :gcc ou :cc, suivant que vous utilisez un compilateur GNU ou le compilateur de base de votre système (sur les systèmes où il y a une différence). Le nom du fichier de comparaison est le nom du fichier de comparaison substitué.

Par exemple : certains systèmes interprètent les très petites valeurs en virgule flottante comme zéro, plutôt que de rapporter une erreur. Ceci fait quelques petites différences dans le test de régression float8. Du coup, nous fournissons un fichier de comparaison variable, float8-small-is-zero.out, qui inclut les résultats attendus sur ces systèmes. Pour faire taire les messages d'<< échec >> erronés sur les plateformes OpenBSD, resultmap inclut

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

qui se déclenche sur toute machine où la sortie de config.guess correspond à i.86-.*-openbsd. D'autres lignes dans resultmap sélectionnent le fichier de comparaison variable pour les autres plateformes si c'est approprié.