summaryrefslogtreecommitdiff
path: root/src/bin/initdb
diff options
context:
space:
mode:
authorPeter Eisentraut2014-04-15 01:33:46 +0000
committerPeter Eisentraut2014-04-15 01:33:46 +0000
commit7d0f493f19607774fdccb1a1ea06fdd96a3d9698 (patch)
tree71076e4ce36fa06d4637858f1435ef3f7ecd73b6 /src/bin/initdb
parent7b5a9d61a8202c46f4cc02878eafa8367080c59a (diff)
Add TAP tests for client programs
Reviewed-by: Pavel Stěhule <pavel.stehule@gmail.com> Reviewed-by: Erik Rijkers <er@xs4all.nl>
Diffstat (limited to 'src/bin/initdb')
-rw-r--r--src/bin/initdb/.gitignore2
-rw-r--r--src/bin/initdb/Makefile7
-rw-r--r--src/bin/initdb/t/001_initdb.pl37
3 files changed, 46 insertions, 0 deletions
diff --git a/src/bin/initdb/.gitignore b/src/bin/initdb/.gitignore
index 0f74727d8f6..71a899ffb8a 100644
--- a/src/bin/initdb/.gitignore
+++ b/src/bin/initdb/.gitignore
@@ -2,3 +2,5 @@
/localtime.c
/initdb
+
+/tmp_check/
diff --git a/src/bin/initdb/Makefile b/src/bin/initdb/Makefile
index 1ece7acf44a..fb7d1424874 100644
--- a/src/bin/initdb/Makefile
+++ b/src/bin/initdb/Makefile
@@ -57,3 +57,10 @@ clean distclean maintainer-clean:
# ensure that changes in datadir propagate into object file
initdb.o: initdb.c $(top_builddir)/src/Makefile.global
+
+
+check: all
+ $(prove_check)
+
+installcheck:
+ $(prove_installcheck)
diff --git a/src/bin/initdb/t/001_initdb.pl b/src/bin/initdb/t/001_initdb.pl
new file mode 100644
index 00000000000..ad6d74cc0dd
--- /dev/null
+++ b/src/bin/initdb/t/001_initdb.pl
@@ -0,0 +1,37 @@
+use strict;
+use warnings;
+use TestLib;
+use Test::More tests => 14;
+
+my $tempdir = TestLib::tempdir;
+
+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"], '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', "$tempdir/data", '-X', "$tempdir/pgxlog"], 'separate xlog directory');
+
+system_or_bail "rm -rf $tempdir/*";
+command_fails(['initdb', "$tempdir/data", '-X', 'pgxlog'], 'relative xlog directory not allowed');
+
+system_or_bail "rm -rf $tempdir/*";
+mkdir "$tempdir/pgxlog";
+command_ok(['initdb', "$tempdir/data", '-X', "$tempdir/pgxlog"], 'existing empty xlog directory');
+
+system_or_bail "rm -rf $tempdir/*";
+mkdir "$tempdir/pgxlog";
+mkdir "$tempdir/pgxlog/lost+found";
+command_fails(['initdb', "$tempdir/data", '-X', "$tempdir/pgxlog"], 'existing nonempty xlog directory');
+
+system_or_bail "rm -rf $tempdir/*";
+command_ok(['initdb', "$tempdir/data", '-T', 'german'], 'select default dictionary');