postgresql/src/bin/scripts/t/200_connstr.pl

40 lines
1.2 KiB
Perl
Raw Normal View History

use strict;
use warnings;
use PostgresNode;
use TestLib;
use Test::More tests => 3;
# Tests to check connection string handling in utilities
# We're going to use byte sequences that aren't valid UTF-8 strings. Use
# LATIN1, which accepts any byte and has a conversion from each byte to UTF-8.
2017-05-18 01:01:23 +02:00
$ENV{LC_ALL} = 'C';
$ENV{PGCLIENTENCODING} = 'LATIN1';
# Create database names covering the range of LATIN1 characters and
# run the utilities' --all options over them.
2017-05-18 01:01:23 +02:00
my $dbname1 = generate_ascii_string(1, 63); # contains '='
my $dbname2 =
generate_ascii_string(67, 129); # skip 64-66 to keep length to 62
my $dbname3 = generate_ascii_string(130, 192);
my $dbname4 = generate_ascii_string(193, 255);
my $node = get_new_node('main');
2017-05-18 01:01:23 +02:00
$node->init(extra => [ '--locale=C', '--encoding=LATIN1' ]);
$node->start;
foreach my $dbname ($dbname1, $dbname2, $dbname3, $dbname4, 'CamelCase')
{
2017-05-18 01:01:23 +02:00
$node->run_log([ 'createdb', $dbname ]);
}
2017-05-18 01:01:23 +02:00
$node->command_ok(
[qw(vacuumdb --all --echo --analyze-only)],
'vacuumdb --all with unusual database names');
$node->command_ok([qw(reindexdb --all --echo)],
2017-05-18 01:01:23 +02:00
'reindexdb --all with unusual database names');
$node->command_ok(
[qw(clusterdb --all --echo --verbose)],
'clusterdb --all with unusual database names');