|
| 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::Moretests=>19; |
| 8 | +use Test::Moretests=>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'); |