リグレッションテストの中にはプラットフォーム特有な結果を返すものもあるので、プラットフォーム特有な結果を比較するファイルを提供しています。 多くの場合、同じ変動は複数のプラットフォームに対応するので、各プラットフォームごとにファイルを用意するのではなく、どの比較ファイルを使用するかのマッピングファイルを用意しています。 そこで、特定プラットフォームのテスト結果の偽の"失敗"をなくすためには、別の結果ファイルを作成、もしくは選択し、src/test/regress/resultmapというマッピングファイルに1行追加する必要があります。
マッピングファイルの各行の書式は下記のとおりです。
testname/platformpattern=comparisonfilename
testnameとは、単に特定のリグレッションテストのモジュール名です。 platformpatternとは、expr Unixツールスタイル(最初に暗黙的な^がある正規表現)のパターンです。 これは、config.guessによって出力されるプラットフォーム名に、GNU コンパイラかシステム固有のコンパイラのどちらを使用しているのかによって決定される :gcc または :ccを付けたものと比較されます。 (システムによってコンパイラ間で差異が現れます。) comparisonfilename は置き換える結果比較ファイルの名前です。
以下に例を示します。 古いタイムゾーンのライブラリを使っているシステムでは1970年以前の夏時間変更に失敗し、1970年以前のPDT時刻がPSTで表現されてしまうという問題があります。 これにより、 horology リグレッションテストにわずかな違いが発生します。 そのため、horology-no-DST-before-1970.out という変形比較ファイルを用意し、そこにこういったシステムでの期待値を記述します。 HPUX プラットフォームにおいて偽の"失敗"メッセージ出力を行わせないようにするために、resultmap に以下を含めます。
horology/.*-hpux=horology-no-DST-before-1970
これは、config.guess の出力が "-hpux" を含む全てのマシンに対して適用されます。 resultmap のこの他の行は、適切な他のプラットフォーム用の変形比較ファイルを選択します。