PostgreSQL 7.4 Documentation
Prev | Fast Backward | Chapter 26. Regression Tests | Fast Forward | Next

# 26.3. Platform-specific comparison files

Since some of the tests inherently produce platform-specific results, we have provided a way to supply platform-specific result comparison files. Frequently, the same variation applies to multiple platforms; rather than supplying a separate comparison file for every platform, there is a mapping file that defines which comparison file to use. So, to eliminate bogus test "failures" for a particular platform, you must choose or make a variant result file, and then add a line to the mapping file, which is `src/test/regress/resultmap`.

Each line in the mapping file is of the form

    testname/platformpattern=comparisonfilename

The test name is just the name of the particular regression test module. The platform pattern is a pattern in the style of the Unix tool `expr` (that is, a regular expression with an implicit ^ anchor at the start). It is matched against the platform name as printed by `config.guess` followed by :gcc or :cc, depending on whether you use the GNU compiler or the system's native compiler (on systems where there is a difference). The comparison file name is the name of the substitute result comparison file.

For example: some systems using older time zone libraries fail to apply daylight-saving corrections to dates before 1970, causing pre-1970 PDT times to be displayed in PST instead. This causes a few differences in the `horology` regression test. Therefore, we provide a variant comparison file, `horology-no-DST-before-1970.out`, which includes the results to be expected on these systems. To silence the bogus "failure" message on HPUX platforms, `resultmap` includes

    horology/.*-hpux=horology-no-DST-before-1970

which will trigger on any machine for which the output of `config.guess` includes -hpux. Other lines in `resultmap` select the variant comparison file for other platforms where it's appropriate.

Prev | Home | Next
Test Evaluation | Up | Client Interfaces