26.3. 平台相關的比較文件

因為一些測試天生會產生平台相關的結果, 我們提供了一個方法以支援平台相關的結果比較文件。 通常,一套文件可用於多個平台; 而不是為每個平台提供一套獨立的比較文件, 因此存在一個定義選用哪個比較文件的映射文件。 所以,要消除某特定平台的虛假的測試"失敗", 您必須選擇或者製作一個結果文件的變種,然後往映射文件裡加一行, 即是"resultmap"

映射文件裡的每行都有下面形式

testname/platformpattern=comparisonfilename

測試名稱只是特定回歸測試模塊的名稱。 平台名稱模式是一個 Unix 工具 expr 風格的模式(也就是說,一個開頭帶有隱含^錨符號的正則資料表達式)。 它與config.guess打印出來的跟在 :gcc:cc 後面的平台名匹配,具體情況取決於您是使用 GNU 編譯器還是系統本機的編譯器。 (在那些有區別的系統上)。 比較文件名是替換結果比較文件。

比如:一些系統把很小的浮點數解析成為零,而不是報告一個下溢的錯誤。 這會導致在 float8 回歸測試中的一些差別。 因此,我們提供了一個比較文件的變種,float8-small-is-zero.out, 它包含在這些平台上的預期結果。 要在 OpenBSD 平台上消除這些虛假的"錯誤"訊息, resultmap 包括

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

它將在那些config.guess的輸出匹配 i.86-.*-openbsd 的任何機器上觸發。 在 resultmap 裡的其它行為其它合適的平台選取相應的比較文件變種。