Fix createdb tests for C locale

If the createdb tests run under the C locale, the database cluster
will be initialized with encoding SQL_ASCII.  With the checks added in
c7db01e325, this will cause several
ICU-related tests to fail because SQL_ASCII is not supported by ICU.
To work around that, use initdb option -E UTF8 for those tests to get
past that check.
This commit is contained in:
Peter Eisentraut 2022-09-16 11:10:41 +02:00
parent 148f66d59e
commit 8135d0bd45
1 changed files with 7 additions and 3 deletions

View File

@ -31,13 +31,16 @@ if ($ENV{with_icu} eq 'yes')
# locale set. It would succeed if template0 used the icu
# provider. XXX Maybe split into multiple tests?
$node->command_fails(
[ 'createdb', '-T', 'template0', '--locale-provider=icu', 'foobar4' ],
[
'createdb', '-T', 'template0', '-E', 'UTF8',
'--locale-provider=icu', 'foobar4'
],
'create database with ICU fails without ICU locale specified');
$node->issues_sql_like(
[
'createdb', '-T',
'template0', '--locale-provider=icu',
'template0', '-E', 'UTF8', '--locale-provider=icu',
'--icu-locale=en', 'foobar5'
],
qr/statement: CREATE DATABASE foobar5 .* LOCALE_PROVIDER icu ICU_LOCALE 'en'/,
@ -45,7 +48,8 @@ if ($ENV{with_icu} eq 'yes')
$node->command_fails(
[
'createdb', '-T', 'template0', '--locale-provider=icu',
'createdb', '-T', 'template0', '-E', 'UTF8',
'--locale-provider=icu',
'--icu-locale=@colNumeric=lower', 'foobarX'
],
'fails for invalid ICU locale');