12.2. プラットフォーム特有の比較ファイル

リグレッションテストの中にはプラットフォーム特有な結果を返すものも あるので、プラットフォーム特有な結果を比較するファイルを 提供しています。多くの場合、同じ結果は複数のプラットフォームに 対応するので、各プラットフォーム毎にファイルを用意するのではなく、 どの比較ファイルを使用するかのマッピングがあります。 そこで、特定プラットフォームのテスト結果の"偽の失敗" を無くすために結果ファイルを作成、もしくは選択し、 resultmapというマッピングファイルに 指定する必要があります。

マッピングファイルの各行のフォーマットは下記の通りです。

testname/platformpattern=comparisonfilename
testnameとは、単に特定のリグレッションテストのモジュール名です。 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の結果に対して、あらゆるマシンで実行されます。 結果マップに書かれているその他の行は、そのプラットフォームに適当な 比較ファイルを選択します。