リグレションテストの中にはプラットフォーム特有な結果を返すものも あるので、プラットフォーム特有な結果を比較するファイルを 提供しています。多くの場合、同じ結果は複数のプラットフォームに 対応するので、各プラットフォーム毎にファイルを用意するのではなく、 どの比較ファイルを使用するかのマッピングがあります。 そこで、特定プラットフォームのテスト結果の"偽の失敗" を無くすために結果ファイルを作成、もしくは選択し、 resultmapというマッピングファイルに 指定する必要があります。
マッピングファイルの各行のフォーマットは下記の通りです。
testname/platformpattern=comparisonfilenametestnameとは、単に特定のリグレションテストのモジュール名です。 platformpatternとは、expr(1)スタイル(最初に^が ある、標準表現)のパターンです。config.guessに 書かれているプラットフォーム名に取組ませ、GNUコンパイラ、もしくは システムのネイティブコンパイラによって(違いのあるシステムに関して) :gccか:ccを使用します。 比較ファイル名は比較結果ファイルの代わりです。
例:int2のリグレションテストでは、int2型には収まらない大きさの値の入力が 故意的に行われます。表示された特定のエラーメッセージはプラットフォームに 依存するもので、参照プラットフォームは下記のようなものを表示します。
ERROR: pg_atoi: error reading "100000": Numerical result out of rangeしかし、多くのUnixプラットフォームでは、下記のように表示されるでしょう。
ERROR: pg_atoi: error reading "100000": Result too largeしたがって、異る比較ファイル、int2-too-large.outを 提供しています。そこにはこのエラーメッセージも記述されています。 HPPAプラットフォームでのテスト結果の"偽の失敗"を 無くすために、結果マップには下記が含まれます。
int2/hppa=int2-too-largeこれは"hppa"で始まる config.guessの結果に対して、あらゆるマシンで実行されます。 結果マップに書かれているその他の行は、そのプラットフォームに適当な 比較ファイルを選択します。