summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Dunstan <andrew@dunslane.net>2015-07-28 16:04:54 -0400
committerAndrew Dunstan <andrew@dunslane.net>2015-07-28 16:04:54 -0400
commit450bf0ba530101822e6d5ecdd3d9c13fe01ebce5 (patch)
treeb657840493959f24c98710048417bbc5a4526ce0 /src
parentd20f7d5c37d105bef1c5b72dd27d1921dd15252a (diff)
Make tap tests store postmaster logs and handle vpaths correctly
Given this it is possible that the buildfarm animals running these tests will be able to capture adequate logging to allow diagnosis of failures.
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.global.in2
-rw-r--r--src/test/perl/TestLib.pm15
2 files changed, 11 insertions, 6 deletions
diff --git a/src/Makefile.global.in b/src/Makefile.global.in
index d321dc74506..18c653bd210 100644
--- a/src/Makefile.global.in
+++ b/src/Makefile.global.in
@@ -322,7 +322,7 @@ cd $(srcdir) && TESTDIR='$(CURDIR)' PATH="$(bindir):$$PATH" PGPORT='6$(DEF_PGPOR
endef
define prove_check
-rm -rf $(srcdir)/tmp_check/log
+rm -rf $(CURDIR)/tmp_check/log
cd $(srcdir) && TESTDIR='$(CURDIR)' $(with_temp_install) PGPORT='6$(DEF_PGPORT)' top_builddir='$(CURDIR)/$(top_builddir)' $(PROVE) $(PG_PROVE_FLAGS) $(PROVE_FLAGS) t/*.pl
endef
diff --git a/src/test/perl/TestLib.pm b/src/test/perl/TestLib.pm
index 37a1bc16208..5a34ce04b75 100644
--- a/src/test/perl/TestLib.pm
+++ b/src/test/perl/TestLib.pm
@@ -23,6 +23,9 @@ our @EXPORT = qw(
program_options_handling_ok
command_like
issues_sql_like
+
+ $tmp_check
+ $log_path
);
use Cwd;
@@ -37,8 +40,10 @@ use Test::More;
# Open log file. For each test, the log file name uses the name of the
# file launching this module, without the .pl suffix.
-my $log_path = 'tmp_check/log';
-mkdir 'tmp_check';
+our ($tmp_check, $log_path);
+$tmp_check = $ENV{TESTDIR} ? "$ENV{TESTDIR}/tmp_check" : "tmp_check";
+$log_path = "$tmp_check/log";
+mkdir $tmp_check;
mkdir $log_path;
my $test_logfile = basename($0);
$test_logfile =~ s/\.[^.]+$//;
@@ -128,19 +133,19 @@ sub start_test_server
print("### Starting test server in $tempdir\n");
standard_initdb "$tempdir/pgdata";
$ret = system_log('pg_ctl', '-D', "$tempdir/pgdata", '-w', '-l',
- "$tempdir/logfile", '-o',
+ "$log_path/postmaster.log", '-o',
"--fsync=off -k \"$tempdir_short\" --listen-addresses='' --log-statement=all",
'start');
if ($ret != 0)
{
print "# pg_ctl failed; logfile:\n";
- system('cat', "$tempdir/logfile");
+ system('cat', "$log_path/postmaster.log");
BAIL_OUT("pg_ctl failed");
}
$ENV{PGHOST} = $tempdir_short;
$test_server_datadir = "$tempdir/pgdata";
- $test_server_logfile = "$tempdir/logfile";
+ $test_server_logfile = "$log_path/postmaster.log";
}
sub restart_test_server