mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-03-19 20:00:51 +08:00
Fix regression tests of unaccent to work without UTF8 support
The tests of unaccent rely on UTF8 characters, and unlike any other test suite in the tree (fuzzystrmatch, citext, hstore, etc.), they would fail if run on a database that does not support UTF8 encoding. This commit fixes the tests of unaccent so as these are skipped when run on a database without UTF8 support, using the same method as the other test suits based on \if, getdatabaseencoding() and an alternate output file. This has been broken for a long time, but nobody has complained about that either, so no backpatch is done. This can be reproduced with something like REGRESS_OPTS="--no-locale --encoding=sql_ascii", for instance. To defend against that, this module's Makefile and meson.build enforced a UTF8 encoding without locales, but it did not offer protection for options given by REGRESS_OPTS. This switch makes this regression test suite more consistent with all the others, as well. Reviewed-by: Peter Eisentraut Discussion: https://postgr.es/m/ZIq1HUnIV2ksW85x@paquier.xyz
This commit is contained in:
parent
72df1d3f1b
commit
44e73a498c
contrib/unaccent
@ -12,10 +12,6 @@ PGFILEDESC = "unaccent - text search dictionary that removes accents"
|
||||
|
||||
REGRESS = unaccent
|
||||
|
||||
# We need a UTF8 database
|
||||
ENCODING = UTF8
|
||||
NO_LOCALE = 1
|
||||
|
||||
ifdef USE_PGXS
|
||||
PG_CONFIG = pg_config
|
||||
PGXS := $(shell $(PG_CONFIG) --pgxs)
|
||||
|
@ -1,11 +1,13 @@
|
||||
/*
|
||||
* This test must be run in a database with UTF-8 encoding,
|
||||
* because other encodings don't support all the characters used.
|
||||
*/
|
||||
SELECT getdatabaseencoding() <> 'UTF8'
|
||||
AS skip_test \gset
|
||||
\if :skip_test
|
||||
\quit
|
||||
\endif
|
||||
CREATE EXTENSION unaccent;
|
||||
-- must have a UTF8 database
|
||||
SELECT getdatabaseencoding();
|
||||
getdatabaseencoding
|
||||
---------------------
|
||||
UTF8
|
||||
(1 row)
|
||||
|
||||
SET client_encoding TO 'UTF8';
|
||||
SELECT unaccent('foobar');
|
||||
unaccent
|
||||
|
8
contrib/unaccent/expected/unaccent_1.out
Normal file
8
contrib/unaccent/expected/unaccent_1.out
Normal file
@ -0,0 +1,8 @@
|
||||
/*
|
||||
* This test must be run in a database with UTF-8 encoding,
|
||||
* because other encodings don't support all the characters used.
|
||||
*/
|
||||
SELECT getdatabaseencoding() <> 'UTF8'
|
||||
AS skip_test \gset
|
||||
\if :skip_test
|
||||
\quit
|
@ -37,6 +37,5 @@ tests += {
|
||||
'sql': [
|
||||
'unaccent',
|
||||
],
|
||||
'regress_args': ['--no-locale', '--encoding=UTF8'],
|
||||
},
|
||||
}
|
||||
|
@ -1,7 +1,15 @@
|
||||
CREATE EXTENSION unaccent;
|
||||
/*
|
||||
* This test must be run in a database with UTF-8 encoding,
|
||||
* because other encodings don't support all the characters used.
|
||||
*/
|
||||
|
||||
-- must have a UTF8 database
|
||||
SELECT getdatabaseencoding();
|
||||
SELECT getdatabaseencoding() <> 'UTF8'
|
||||
AS skip_test \gset
|
||||
\if :skip_test
|
||||
\quit
|
||||
\endif
|
||||
|
||||
CREATE EXTENSION unaccent;
|
||||
|
||||
SET client_encoding TO 'UTF8';
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user