13.2. 平台相关的比较文件

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

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

testname/platformpattern=comparisonfilename

测试名称只是特定回归测试模块的名称。 平台名称模式是一个 expr 风格的模式 (也就是说,一个开头带有隐含^锚符号的正则表达式)。 它与config.guess打印出来的跟在 :gcc:cc 后面的 平台名匹配,具体情况取决于你是使用 GNU 编译器还是系统本机的编译器。 (在那些有区别的系统上). 比较文件名是替换结果比较文件。

比如∶一些使用比较老的时区库的系统不能对早于 1970 年的日期 使用夏时制,导致 1970 年以前的 PDT 时间 以PST 显示,这样导致在 horology 回归测试中的几个差别.因此,我们提供了一个可选的比较文件, horology-no-DST-before-1970.out, 它包括在这些系统里预期的结果.要在 HPPA 平台上消除这些虚假的"错误"信息, resultmap 包括

horology/hppa=horology-no-DST-before-1970

它将在那些config.guess"hppa" 开头的任何机器上触发. 在 resultmap 里的其它行为其它合适的平台选取 相应的变体比较文件.