initdb: Convert tests to use long options with fat comma style

This is similar to ce1b0f9da03e, but this time this rule is applied to
some of the TAP tests of initdb.

Author: Dagfinn Ilmari Mannsåker
Discussion: https://postgr.es/m/878qr146ra.fsf@wibble.ilmari.org
This commit is contained in:
Michael Paquier 2025-01-24 15:19:38 +09:00
parent 473a575e05
commit fd4c4ede70

View File

@ -50,8 +50,7 @@ mkdir $datadir;
# while we are here, also exercise --text-search-config and --set options
command_ok(
[
'initdb',
'--no-sync',
'initdb', '--no-sync',
'--text-search-config' => 'german',
'--set' => 'default_text_search_config=german',
'--waldir' => $xlogdir,
@ -101,8 +100,7 @@ SKIP:
# Init a new db with group access
my $datadir_group = "$tempdir/data_group";
command_ok(
[ 'initdb', '-g', $datadir_group ],
command_ok([ 'initdb', '--allow-group-access', $datadir_group ],
'successful creation with group access');
ok(check_mode_recursive($datadir_group, 0750, 0640),
@ -114,14 +112,19 @@ SKIP:
if ($ENV{with_icu} eq 'yes')
{
command_fails_like(
[ 'initdb', '--no-sync', '--locale-provider=icu', "$tempdir/data2" ],
[
'initdb', '--no-sync',
'--locale-provider' => 'icu',
"$tempdir/data2"
],
qr/initdb: error: locale must be specified if provider is icu/,
'locale provider ICU requires --icu-locale');
command_ok(
[
'initdb', '--no-sync',
'--locale-provider=icu', '--icu-locale=en',
'--locale-provider' => 'icu',
'--icu-locale' => 'en',
"$tempdir/data3"
],
'option --icu-locale');
@ -129,11 +132,15 @@ if ($ENV{with_icu} eq 'yes')
command_like(
[
'initdb', '--no-sync',
'-A' => 'trust',
'--locale-provider=icu', '--locale=und',
'--lc-collate=C', '--lc-ctype=C',
'--lc-messages=C', '--lc-numeric=C',
'--lc-monetary=C', '--lc-time=C',
'--auth' => 'trust',
'--locale-provider' => 'icu',
'--locale' => 'und',
'--lc-collate' => 'C',
'--lc-ctype' => 'C',
'--lc-messages' => 'C',
'--lc-numeric' => 'C',
'--lc-monetary' => 'C',
'--lc-time' => 'C',
"$tempdir/data4"
],
qr/^\s+default collation:\s+und\n/ms,
@ -142,7 +149,8 @@ if ($ENV{with_icu} eq 'yes')
command_fails_like(
[
'initdb', '--no-sync',
'--locale-provider=icu', '--icu-locale=@colNumeric=lower',
'--locale-provider' => 'icu',
'--icu-locale' => '@colNumeric=lower',
"$tempdir/dataX"
],
qr/could not open collator for locale/,
@ -151,8 +159,10 @@ if ($ENV{with_icu} eq 'yes')
command_fails_like(
[
'initdb', '--no-sync',
'--locale-provider=icu', '--encoding=SQL_ASCII',
'--icu-locale=en', "$tempdir/dataX"
'--locale-provider' => 'icu',
'--encoding' => 'SQL_ASCII',
'--icu-locale' => 'en',
"$tempdir/dataX"
],
qr/error: encoding mismatch/,
'fails for encoding not supported by ICU');
@ -160,7 +170,8 @@ if ($ENV{with_icu} eq 'yes')
command_fails_like(
[
'initdb', '--no-sync',
'--locale-provider=icu', '--icu-locale=nonsense-nowhere',
'--locale-provider' => 'icu',
'--icu-locale' => 'nonsense-nowhere',
"$tempdir/dataX"
],
qr/error: locale "nonsense-nowhere" has unknown language "nonsense"/,
@ -169,7 +180,8 @@ if ($ENV{with_icu} eq 'yes')
command_fails_like(
[
'initdb', '--no-sync',
'--locale-provider=icu', '--icu-locale=@colNumeric=lower',
'--locale-provider' => 'icu',
'--icu-locale' => '@colNumeric=lower',
"$tempdir/dataX"
],
qr/could not open collator for locale "und-u-kn-lower": U_ILLEGAL_ARGUMENT_ERROR/,
@ -178,18 +190,27 @@ if ($ENV{with_icu} eq 'yes')
else
{
command_fails(
[ 'initdb', '--no-sync', '--locale-provider=icu', "$tempdir/data2" ],
[
'initdb', '--no-sync',
'--locale-provider' => 'icu',
"$tempdir/data2"
],
'locale provider ICU fails since no ICU support');
}
command_fails(
[ 'initdb', '--no-sync', '--locale-provider=builtin', "$tempdir/data6" ],
[
'initdb', '--no-sync',
'--locale-provider' => 'builtin',
"$tempdir/data6"
],
'locale provider builtin fails without --locale');
command_ok(
[
'initdb', '--no-sync',
'--locale-provider=builtin', '--locale=C',
'--locale-provider' => 'builtin',
'--locale' => 'C',
"$tempdir/data7"
],
'locale provider builtin with --locale');
@ -197,18 +218,24 @@ command_ok(
command_ok(
[
'initdb', '--no-sync',
'--locale-provider=builtin', '-E UTF-8',
'--lc-collate=C', '--lc-ctype=C',
'--builtin-locale=C.UTF-8', "$tempdir/data8"
'--locale-provider' => 'builtin',
'--encoding' => 'UTF-8',
'--lc-collate' => 'C',
'--lc-ctype' => 'C',
'--builtin-locale' => 'C.UTF-8',
"$tempdir/data8"
],
'locale provider builtin with -E UTF-8 --builtin-locale=C.UTF-8');
'locale provider builtin with --encoding=UTF-8 --builtin-locale=C.UTF-8');
command_fails(
[
'initdb', '--no-sync',
'--locale-provider=builtin', '-E SQL_ASCII',
'--lc-collate=C', '--lc-ctype=C',
'--builtin-locale=C.UTF-8', "$tempdir/data9"
'--locale-provider' => 'builtin',
'--encoding' => 'SQL_ASCII',
'--lc-collate' => 'C',
'--lc-ctype' => 'C',
'--builtin-locale' => 'C.UTF-8',
"$tempdir/data9"
],
'locale provider builtin with --builtin-locale=C.UTF-8 fails for SQL_ASCII'
);
@ -216,15 +243,18 @@ command_fails(
command_ok(
[
'initdb', '--no-sync',
'--locale-provider=builtin', '--lc-ctype=C',
'--locale=C', "$tempdir/data10"
'--locale-provider' => 'builtin',
'--lc-ctype' => 'C',
'--locale' => 'C',
"$tempdir/data10"
],
'locale provider builtin with --lc-ctype');
command_fails(
[
'initdb', '--no-sync',
'--locale-provider=builtin', '--icu-locale=en',
'--locale-provider' => 'builtin',
'--icu-locale' => 'en',
"$tempdir/dataX"
],
'fails for locale provider builtin with ICU locale');
@ -232,35 +262,48 @@ command_fails(
command_fails(
[
'initdb', '--no-sync',
'--locale-provider=builtin', '--icu-rules=""',
'--locale-provider' => 'builtin',
'--icu-rules' => '""',
"$tempdir/dataX"
],
'fails for locale provider builtin with ICU rules');
command_fails(
[ 'initdb', '--no-sync', '--locale-provider=xyz', "$tempdir/dataX" ],
[
'initdb', '--no-sync',
'--locale-provider' => 'xyz',
"$tempdir/dataX"
],
'fails for invalid locale provider');
command_fails(
[
'initdb', '--no-sync',
'--locale-provider=libc', '--icu-locale=en',
'--locale-provider' => 'libc',
'--icu-locale' => 'en',
"$tempdir/dataX"
],
'fails for invalid option combination');
command_fails(
[ 'initdb', '--no-sync', '--set' => 'foo=bar', "$tempdir/dataX" ],
[
'initdb', '--no-sync',
'--set' => 'foo=bar',
"$tempdir/dataX"
],
'fails for invalid --set option');
# Make sure multiple invocations of -c parameters are added case insensitive
# Make sure multiple invocations of --set parameters are added case
# insensitive.
command_ok(
[
'initdb', '-cwork_mem=128',
'-cWork_Mem=256', '-cWORK_MEM=512',
'initdb', '--no-sync',
'--set' => 'work_mem=128',
'--set' => 'Work_Mem=256',
'--set' => 'WORK_MEM=512',
"$tempdir/dataY"
],
'multiple -c options with different case');
'multiple --set options with different case');
my $conf = slurp_file("$tempdir/dataY/postgresql.conf");
ok($conf !~ qr/^WORK_MEM = /m, "WORK_MEM should not be configured");