diff options
author | Michael Paquier | 2019-12-23 01:51:00 +0000 |
---|---|---|
committer | Michael Paquier | 2019-12-23 01:51:00 +0000 |
commit | 297b9ccff44859f274b7408045a9c91d2bb1c6d1 (patch) | |
tree | 8381ca2295cd9e72a55f8a09bb17eb9cf5141d03 | |
parent | 8f735c0488c68d02ed9a484851277fd5df4570c5 (diff) |
Combine initdb tests that successfully create a data directory.
This eliminates many seconds of test duration and the cause to invoke
"rm -rf", which is typically unavailable on Windows.
This is a backpatch of 1a629c1 which has never been applied to
REL9_4_STABLE. Per complain from buildarm member drongo.
Reported-by: Tom Lane
Author: Michael Paquier, Noah Misch
Discussion: https://postgr.es/m/[email protected]
-rw-r--r-- | src/bin/initdb/t/001_initdb.pl | 48 |
1 files changed, 20 insertions, 28 deletions
diff --git a/src/bin/initdb/t/001_initdb.pl b/src/bin/initdb/t/001_initdb.pl index eef2300009d..c4e514c7fbf 100644 --- a/src/bin/initdb/t/001_initdb.pl +++ b/src/bin/initdb/t/001_initdb.pl @@ -1,44 +1,36 @@ +# To test successful data directory creation with an additional feature, first +# try to elaborate the "successful creation" test instead of adding a test. +# Successful initdb consumes much time and I/O. + use strict; use warnings; use TestLib; -use Test::More tests => 19; +use Test::More tests => 14; my $tempdir = TestLib::tempdir; +my $xlogdir = "$tempdir/pgxlog"; +my $datadir = "$tempdir/data"; 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" ], +command_fails([ 'initdb', '-S', "$tempdir/nonexistent" ], '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', '-X', "$tempdir/pgxlog", "$tempdir/data" ], - 'separate xlog directory'); - -system_or_bail "rm -rf '$tempdir'/*"; +mkdir $xlogdir; +mkdir "$xlogdir/lost+found"; command_fails( - [ 'initdb', '-X', 'pgxlog', "$tempdir/data" ], + [ 'initdb', '-X', $xlogdir, $datadir ], + 'existing nonempty xlog directory'); +rmdir "$xlogdir/lost+found"; +command_fails( + [ 'initdb', '-X', 'pgxlog', $datadir ], 'relative xlog directory not allowed'); -system_or_bail "rm -rf '$tempdir'/*"; -mkdir "$tempdir/pgxlog"; -command_ok([ 'initdb', '-X', "$tempdir/pgxlog", "$tempdir/data" ], - 'existing empty xlog directory'); - -system_or_bail "rm -rf '$tempdir'/*"; -mkdir "$tempdir/pgxlog"; -mkdir "$tempdir/pgxlog/lost+found"; -command_fails([ 'initdb', '-X', "$tempdir/pgxlog", "$tempdir/data" ], - 'existing nonempty xlog directory'); +mkdir $datadir; +command_ok([ 'initdb', '-N', '-T', 'german', '-X', $xlogdir, $datadir ], + 'successful creation'); -system_or_bail "rm -rf '$tempdir'/*"; -command_ok([ 'initdb', '-T', 'german', "$tempdir/data" ], - 'select default dictionary'); +command_ok([ 'initdb', '-S', $datadir ], 'sync only'); +command_fails([ 'initdb', $datadir ], 'existing data directory'); |