aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoah Misch <noah@leadboat.com>2015-05-02 16:47:28 -0400
committerNoah Misch <noah@leadboat.com>2015-05-02 16:47:28 -0400
commit1a629c1b161a2b43a2f81241a8f4c5f79e5b8ecf (patch)
tree8a15536c0a9b9adfb71decb71ce799781eb60cd9
parent84c08a7649b8c6dd488dfe0e37ab017e8059cd33 (diff)
downloadpostgresql-1a629c1b161a2b43a2f81241a8f4c5f79e5b8ecf.tar.gz
postgresql-1a629c1b161a2b43a2f81241a8f4c5f79e5b8ecf.zip
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. Michael Paquier and Noah Misch
-rw-r--r--src/bin/initdb/t/001_initdb.pl48
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..299dcf5b3b9 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 a 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');