PostgreSQL
Prev | Chapter 34. Regression Test | Next

# 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 "resultmap".

Each line in the mapping file is of the form

    		testname/platformnamepattern=comparisonfilename

The test name is just the name of the particular regression test module. The platform name pattern is a pattern in the style of expr(1) (that is, a regular expression with an implicit ^ anchor at the start). It is matched against the platform name as printed by config.guess. The comparison file name is the name of the substitute result comparison file.

For example: the int2 regress test includes a deliberate entry of a value that is too large to fit in int2. The specific error message that is produced is platform-dependent; our reference platform emits

        ERROR:  pg_atoi: error reading "100000": Numerical result out of range

but a fair number of other Unix platforms emit

        ERROR:  pg_atoi: error reading "100000": Result too large

Therefore, we provide a variant comparison file, int2-too-large.out, that includes this spelling of the error message. To silence the bogus "failure" message on HPPA platforms, resultmap includes

    		int2/hppa=int2-too-large

which will trigger on any machine for which config.guess's output begins with 'hppa'. Other lines in resultmap select the variant comparison file for other platforms where it's appropriate.

Prev | Home | Next
Regression Analysis | Up | Release Notes