aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bin/pg_rewind/RewindTest.pm14
-rw-r--r--src/bin/pg_rewind/t/001_basic.pl1
-rw-r--r--src/bin/pg_rewind/t/002_databases.pl1
-rw-r--r--src/bin/pg_rewind/t/003_extrafiles.pl2
4 files changed, 16 insertions, 2 deletions
diff --git a/src/bin/pg_rewind/RewindTest.pm b/src/bin/pg_rewind/RewindTest.pm
index 50cae2c2632..e6a5b9b3d95 100644
--- a/src/bin/pg_rewind/RewindTest.pm
+++ b/src/bin/pg_rewind/RewindTest.pm
@@ -22,6 +22,9 @@ package RewindTest;
# 5. run_pg_rewind - stops the old master (if it's still running) and runs
# pg_rewind to synchronize it with the now-promoted standby server.
#
+# 6. clean_rewind_test - stops both servers used in the test, if they're
+# still running.
+#
# The test script can use the helper functions master_psql and standby_psql
# to run psql against the master and standby servers, respectively. The
# test script can also use the $connstr_master and $connstr_standby global
@@ -56,6 +59,7 @@ our @EXPORT = qw(
create_standby
promote_standby
run_pg_rewind
+ clean_rewind_test
);
@@ -262,9 +266,8 @@ recovery_target_timeline='latest'
}
# Clean up after the test. Stop both servers, if they're still running.
-END
+sub clean_rewind_test
{
- my $save_rc = $?;
if ($test_master_datadir)
{
system "pg_ctl -D $test_master_datadir -s -m immediate stop 2> /dev/null";
@@ -273,5 +276,12 @@ END
{
system "pg_ctl -D $test_standby_datadir -s -m immediate stop 2> /dev/null";
}
+}
+
+# Stop the test servers, just in case they're still running.
+END
+{
+ my $save_rc = $?;
+ clean_rewind_test();
$? = $save_rc;
}
diff --git a/src/bin/pg_rewind/t/001_basic.pl b/src/bin/pg_rewind/t/001_basic.pl
index ae26d0129ea..a1d679f6b8f 100644
--- a/src/bin/pg_rewind/t/001_basic.pl
+++ b/src/bin/pg_rewind/t/001_basic.pl
@@ -78,6 +78,7 @@ in master, before promotion
),
'tail-copy');
+ RewindTest::clean_rewind_test();
}
# Run the test in both modes
diff --git a/src/bin/pg_rewind/t/002_databases.pl b/src/bin/pg_rewind/t/002_databases.pl
index 1cf9a3a65d3..be1e1948a7f 100644
--- a/src/bin/pg_rewind/t/002_databases.pl
+++ b/src/bin/pg_rewind/t/002_databases.pl
@@ -40,6 +40,7 @@ standby_afterpromotion
),
'database names');
+ RewindTest::clean_rewind_test();
}
# Run the test in both modes.
diff --git a/src/bin/pg_rewind/t/003_extrafiles.pl b/src/bin/pg_rewind/t/003_extrafiles.pl
index 218b865940c..ed50659195b 100644
--- a/src/bin/pg_rewind/t/003_extrafiles.pl
+++ b/src/bin/pg_rewind/t/003_extrafiles.pl
@@ -62,6 +62,8 @@ sub run_test
"$test_master_datadir/tst_standby_dir/standby_subdir",
"$test_master_datadir/tst_standby_dir/standby_subdir/standby_file3"],
"file lists match");
+
+ RewindTest::clean_rewind_test();
}
# Run the test in both modes.