|
| 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 | + |
1 | 5 | use strict; |
2 | 6 | use warnings; |
3 | 7 | use TestLib; |
4 | | -use Test::More tests => 19; |
| 8 | +use Test::More tests => 14; |
5 | 9 |
|
6 | 10 | my $tempdir = TestLib::tempdir; |
| 11 | +my $xlogdir = "$tempdir/pgxlog"; |
| 12 | +my $datadir = "$tempdir/data"; |
7 | 13 |
|
8 | 14 | program_help_ok('initdb'); |
9 | 15 | program_version_ok('initdb'); |
10 | 16 | program_options_handling_ok('initdb'); |
11 | 17 |
|
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" ], |
17 | 19 | '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'/*"; |
22 | 20 |
|
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"; |
27 | 23 | 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 ], |
29 | 29 | 'relative xlog directory not allowed'); |
30 | 30 |
|
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'); |
41 | 34 |
|
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