From da7db24cc22e3f0d96cfda134f3ed194279bb513 Mon Sep 17 00:00:00 2001 From: Andrew Dunstan Date: Tue, 28 Jul 2015 16:04:05 -0400 Subject: [PATCH] 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. --- src/Makefile.global.in | 2 +- src/bin/pg_rewind/RewindTest.pm | 6 +++--- src/test/perl/TestLib.pm | 15 ++++++++++----- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/Makefile.global.in b/src/Makefile.global.in index e2f7211160..e87885bb2b 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 e57b41734d..1045caa09a 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 0193d575ff..5ef95f0246 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 -- 2.40.0