From 8135d0bd455217bd345090bae085b2bbcf62bdb0 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Fri, 16 Sep 2022 11:10:41 +0200 Subject: [PATCH] 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 c7db01e325a530ec38ec7ba57cd3ed32e123e33c, 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. --- src/bin/scripts/t/020_createdb.pl | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/bin/scripts/t/020_createdb.pl b/src/bin/scripts/t/020_createdb.pl index e95f200d0b..b87d8fc63b 100644 --- a/src/bin/scripts/t/020_createdb.pl +++ b/src/bin/scripts/t/020_createdb.pl @@ -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');