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');