PostgreSQL/src/bin/initdb/t/001_initdb.pl
Peter Eisentraut 455044d55a Fix TAP installcheck tests when current directory name contains spaces
This fixes the installcheck part.  The check part has additional
problems that will be addressed in a separate commit.
2014-07-23 22:06:56 -04:00

45 lines
1.4 KiB
Perl

use strict;
use warnings;
use TestLib;
use Test::More tests => 14;
my $tempdir = TestLib::tempdir;
program_help_ok('initdb');
program_version_ok('initdb');
program_options_handling_ok('initdb');
command_ok([ 'initdb', "$tempdir/data" ], 'basic initdb');
command_fails([ 'initdb', "$tempdir/data" ], 'existing data directory');
command_ok([ 'initdb', '-N', "$tempdir/data2" ], 'nosync');
command_ok([ 'initdb', '-S', "$tempdir/data2" ], 'sync only');
command_fails([ 'initdb', '-S', "$tempdir/data3" ],
'sync missing data directory');
mkdir "$tempdir/data4" or BAIL_OUT($!);
command_ok([ 'initdb', "$tempdir/data4" ], 'existing empty data directory');
system_or_bail "rm -rf '$tempdir'/*";
command_ok([ 'initdb', "$tempdir/data", '-X', "$tempdir/pgxlog" ],
'separate xlog directory');
system_or_bail "rm -rf '$tempdir'/*";
command_fails(
[ 'initdb', "$tempdir/data", '-X', 'pgxlog' ],
'relative xlog directory not allowed');
system_or_bail "rm -rf '$tempdir'/*";
mkdir "$tempdir/pgxlog";
command_ok([ 'initdb', "$tempdir/data", '-X', "$tempdir/pgxlog" ],
'existing empty xlog directory');
system_or_bail "rm -rf '$tempdir'/*";
mkdir "$tempdir/pgxlog";
mkdir "$tempdir/pgxlog/lost+found";
command_fails([ 'initdb', "$tempdir/data", '-X', "$tempdir/pgxlog" ],
'existing nonempty xlog directory');
system_or_bail "rm -rf '$tempdir'/*";
command_ok([ 'initdb', "$tempdir/data", '-T', 'german' ],
'select default dictionary');