1
0
mirror of https://github.com/postgres/postgres.git synced 2025-06-11 20:28:21 +03:00

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
This commit is contained in:
Peter Eisentraut
2019-07-31 09:42:15 +02:00
parent 870b1d6800
commit f140007050
9 changed files with 55 additions and 10 deletions

View File

@ -363,14 +363,6 @@ make check LANG=C ENCODING=EUC_JP
<screen>
make check EXTRA_TESTS=numeric_big
</screen>
To run the collation tests:
<screen>
make check EXTRA_TESTS='collate.linux.utf8 collate.icu.utf8' LANG=en_US.utf8
</screen>
The <literal>collate.linux.utf8</literal> test works only on Linux/glibc
platforms. The <literal>collate.icu.utf8</literal> test only works when
support for ICU was built. Both tests will only succeed when run in a
database that uses UTF-8 encoding.
</para>
</sect2>