September 26, 2024: PostgreSQL 17 Released!
Unsupported versions: 8.0 / 7.4 / 7.3 / 7.2 / 7.1
This documentation is for an unsupported version of PostgreSQL.
You may want to view the same page for the current version, or one of the other supported versions listed above instead.

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 interpret very small floating-point values as zero, rather than reporting an underflow error. This causes a few differences in the float8 regression test. Therefore, we provide a variant comparison file, float8-small-is-zero.out, which includes the results to be expected on these systems. To silence the bogus "failure" message on OpenBSD platforms, resultmap includes

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

which will trigger on any machine for which the output of config.guess matches i.86-.*-openbsd. Other lines in resultmap select the variant comparison file for other platforms where it's appropriate.