Run UTF8-requiring collation tests by default
authorPeter Eisentraut <peter@eisentraut.org>
Wed, 31 Jul 2019 07:42:15 +0000 (09:42 +0200)
committerPeter Eisentraut <peter@eisentraut.org>
Wed, 31 Jul 2019 07:46:51 +0000 (09:46 +0200)
commitf140007050a2ba874b85c4578d8417828f4b64b6
tree4fdc2d0a1a8854438191f59d106a7745b75dbf56
parent870b1d6800cc2173ab672449047efbc30bdc1b57
Run UTF8-requiring collation tests by default

The tests collate.icu.utf8 and collate.linux.utf8 were previously only
run when explicitly selected via EXTRA_TESTS.  They require a UTF8
database, because the error messages in the expected files refer to
that, and they use some non-ASCII characters in the tests.  Since
users can select any locale and encoding for the regression test run,
it was not possible to include these tests automatically.

To fix, use psql's \if facility to check various prerequisites such as
platform and the server encoding and quit the tests at the very
beginning if the configuration is not adequate.  We then need to
maintain alternative expected files for these tests, but they are very
tiny and never need to change after this.

These two tests are now run automatically as part of the regression
tests.

Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://www.postgresql.org/message-id/flat/052295c2-a2e1-9a21-bd36-8fbff8686cf3%402ndquadrant.com
doc/src/sgml/regress.sgml
src/test/regress/expected/collate.icu.utf8.out
src/test/regress/expected/collate.icu.utf8_1.out [new file with mode: 0644]
src/test/regress/expected/collate.linux.utf8.out
src/test/regress/expected/collate.linux.utf8_1.out [new file with mode: 0644]
src/test/regress/parallel_schedule
src/test/regress/serial_schedule
src/test/regress/sql/collate.icu.utf8.sql
src/test/regress/sql/collate.linux.utf8.sql