PostgreSQL 8.0.26 Documentation | ||||
---|---|---|---|---|
Prev | Fast Backward | Chapter 26. Regression Tests | Fast Forward | Next |
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.