summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dunstan <andrew@dunslane.net>2015-07-28 16:04:05 -0400
committerAndrew Dunstan <andrew@dunslane.net>2015-07-28 16:04:05 -0400
commitda7db24cc22e3f0d96cfda134f3ed194279bb513 (patch)
treef52c0a02c215d3d7146c3610f27578461462b849
parentf7cdc518e613b08831ccd798257df3ba3556ea21 (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.
-rw-r--r--src/Makefile.global.in2
-rw-r--r--src/bin/pg_rewind/RewindTest.pm6
-rw-r--r--src/test/perl/TestLib.pm15
3 files changed, 14 insertions, 9 deletions
diff --git a/src/Makefile.global.in b/src/Makefile.global.in
index e2f7211160d..e87885bb2b0 100644
--- a/src/Makefile.global.in
+++ b/src/Makefile.global.in
@@ -338,7 +338,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/bin/pg_rewind/RewindTest.pm b/src/bin/pg_rewind/RewindTest.pm
index e57b41734df..1045caa09ad 100644
--- a/src/bin/pg_rewind/RewindTest.pm
+++ b/src/bin/pg_rewind/RewindTest.pm
@@ -72,9 +72,6 @@ our $test_standby_datadir = "$testroot/data_standby";
mkdir $testroot;
-# Log files are created here
-mkdir "regress_log";
-
# Define non-conflicting ports for both nodes.
my $port_master = $ENV{PGPORT};
my $port_standby = $port_master + 1;
@@ -202,6 +199,7 @@ local replication all trust
system_or_bail('pg_ctl' , '-w',
'-D' , $test_master_datadir,
+ '-l', "$log_path/master.log",
"-o", "-k $tempdir_short --listen-addresses='' -p $port_master",
'start');
@@ -228,6 +226,7 @@ recovery_target_timeline='latest'
# Start standby
system_or_bail('pg_ctl', '-w', '-D', $test_standby_datadir,
+ '-l', "$log_path/standby.log",
'-o', "-k $tempdir_short --listen-addresses='' -p $port_standby",
'start');
@@ -322,6 +321,7 @@ recovery_target_timeline='latest'
# Restart the master to check that rewind went correctly
system_or_bail('pg_ctl', '-w', '-D', $test_master_datadir,
+ '-l', "$log_path/master.log",
'-o', "-k $tempdir_short --listen-addresses='' -p $port_master",
'start');
diff --git a/src/test/perl/TestLib.pm b/src/test/perl/TestLib.pm
index 0193d575ff7..5ef95f0246e 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/\.[^.]+$//;
@@ -132,19 +137,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