27.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 里的其它行为其它合适的平台选取相应的比较文件变种。