平台相关的比较文件

因为一些测试天生会产生平台相关的结果,我们提供了一个方法以支持平台相关的结果比较文件。通常,一套文件可用于多个平台;而不是为每个平台提供一套独立的比较文件,因此存在一个定义选用哪个比较文件的映射文件。所以,要消除某特定平台的虚假的测试“失败”,你必须选择或者制作一个结果文件的变种,然后往映射文件里加一行,即是"resultmap"。

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

                testname/platformnamepattern=comparisonfilename
测试名称只是特定蜕变测试模块的名称。平台名称模式是一个 expr(1) 风格的模式(也就是说,一个开头带有显式^锚符号的规则表达式)。它与 config.guess 打印的平台名匹配。比较文件名是替换结果比较文件。

例如: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 平台上的虚假“错误”信息,resultmap 包括
                int2/hppa=int2-too-large
这样将在 config.guess 的输出以 'hppa' 开始的任何机器上触发。其他 resultmap 里的行选择对应其他平台合适的比较文件。