Skip to content

Commit 1a629c1

Browse files
committed
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
1 parent 84c08a7 commit 1a629c1

File tree

1 file changed

+20
-28
lines changed

1 file changed

+20
-28
lines changed

src/bin/initdb/t/001_initdb.pl

Lines changed: 20 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,36 @@
1+
# To test successful data directory creation with a additional feature, first
2+
# try to elaborate the "successful creation" test instead of adding a test.
3+
# Successful initdb consumes much time and I/O.
4+
15
use strict;
26
use warnings;
37
use TestLib;
4-
use Test::More tests => 19;
8+
use Test::More tests => 14;
59

610
my $tempdir = TestLib::tempdir;
11+
my $xlogdir = "$tempdir/pgxlog";
12+
my $datadir = "$tempdir/data";
713

814
program_help_ok('initdb');
915
program_version_ok('initdb');
1016
program_options_handling_ok('initdb');
1117

12-
command_ok([ 'initdb', "$tempdir/data" ], 'basic initdb');
13-
command_fails([ 'initdb', "$tempdir/data" ], 'existing data directory');
14-
command_ok([ 'initdb', '-N', "$tempdir/data2" ], 'nosync');
15-
command_ok([ 'initdb', '-S', "$tempdir/data2" ], 'sync only');
16-
command_fails([ 'initdb', '-S', "$tempdir/data3" ],
18+
command_fails([ 'initdb', '-S', "$tempdir/nonexistent" ],
1719
'sync missing data directory');
18-
mkdir "$tempdir/data4" or BAIL_OUT($!);
19-
command_ok([ 'initdb', "$tempdir/data4" ], 'existing empty data directory');
20-
21-
system_or_bail "rm -rf '$tempdir'/*";
2220

23-
command_ok([ 'initdb', '-X', "$tempdir/pgxlog", "$tempdir/data" ],
24-
'separate xlog directory');
25-
26-
system_or_bail "rm -rf '$tempdir'/*";
21+
mkdir $xlogdir;
22+
mkdir "$xlogdir/lost+found";
2723
command_fails(
28-
[ 'initdb', '-X', 'pgxlog', "$tempdir/data" ],
24+
[ 'initdb', '-X', $xlogdir, $datadir ],
25+
'existing nonempty xlog directory');
26+
rmdir "$xlogdir/lost+found";
27+
command_fails(
28+
[ 'initdb', '-X', 'pgxlog', $datadir ],
2929
'relative xlog directory not allowed');
3030

31-
system_or_bail "rm -rf '$tempdir'/*";
32-
mkdir "$tempdir/pgxlog";
33-
command_ok([ 'initdb', '-X', "$tempdir/pgxlog", "$tempdir/data" ],
34-
'existing empty xlog directory');
35-
36-
system_or_bail "rm -rf '$tempdir'/*";
37-
mkdir "$tempdir/pgxlog";
38-
mkdir "$tempdir/pgxlog/lost+found";
39-
command_fails([ 'initdb', '-X', "$tempdir/pgxlog", "$tempdir/data" ],
40-
'existing nonempty xlog directory');
31+
mkdir $datadir;
32+
command_ok([ 'initdb', '-N', '-T', 'german', '-X', $xlogdir, $datadir ],
33+
'successful creation');
4134

42-
system_or_bail "rm -rf '$tempdir'/*";
43-
command_ok([ 'initdb', '-T', 'german', "$tempdir/data" ],
44-
'select default dictionary');
35+
command_ok([ 'initdb', '-S', $datadir ], 'sync only');
36+
command_fails([ 'initdb', $datadir ], 'existing data directory');

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy