mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-09-06 13:19:20 +02:00
On other Windows build farm animals it is already skipped because they
don't use UTF-8 encoding. On "hamerkop", UTF-8 is used, and then the
test fails.
It is not clear to me (a non-Windows person looking only at buildfarm
evidence) whether Windows is less sophisticated than other OSes and
doesn't know how to downcase Turkish İ with the standard Unicode
database, or if it is more sophisticated than other systems and uses
locale-specific behavior like ICU does.
Whichever the reason, the result is the same: we need to skip the test
on Windows, just as we already do for ICU, at least until a
Windows-savvy developer comes up with a better idea. The technique for
detecting the OS is borrowed from collate.windows.win1252.sql.
This was anticipated by commit c2e8bd27
, but the problem only surfaced
when Windows build farm animals started using Meson.
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://postgr.es/m/CA%2BhUKGJ1LeC3aE2qQYTK95rFVON3ZVoTQpTKJqxkHdtEyawH4A%40mail.gmail.com
20 lines
728 B
Plaintext
20 lines
728 B
Plaintext
/*
|
|
* This test must be run in a database with UTF-8 encoding
|
|
* and a Unicode-aware locale.
|
|
*
|
|
* Also disable this file for ICU, because the test for the
|
|
* Turkish dotted I is not correct for many ICU locales. citext always
|
|
* uses the default collation, so it's not easy to restrict the test
|
|
* to the "tr-TR-x-icu" collation where it will succeed.
|
|
*
|
|
* Also disable for Windows. It fails similarly, at least in some locales.
|
|
*/
|
|
SELECT getdatabaseencoding() <> 'UTF8' OR
|
|
version() ~ '(Visual C\+\+|mingw32|windows)' OR
|
|
(SELECT (datlocprovider = 'c' AND datctype = 'C') OR datlocprovider = 'i'
|
|
FROM pg_database
|
|
WHERE datname=current_database())
|
|
AS skip_test \gset
|
|
\if :skip_test
|
|
\quit
|