Commit 0d8a22a9 authored by Heikki Linnakangas's avatar Heikki Linnakangas

Shut down test servers after pg_rewind regression tests.

Now that the test servers are initialized twice in each .pl script,
the single END block is not enough to stop them. Add a new clean_rewind_test
function that is called at the end of each test.

Michael Paquier
parent 3d80a1e0
...@@ -22,6 +22,9 @@ package RewindTest; ...@@ -22,6 +22,9 @@ package RewindTest;
# 5. run_pg_rewind - stops the old master (if it's still running) and runs # 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. # 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 # The test script can use the helper functions master_psql and standby_psql
# to run psql against the master and standby servers, respectively. The # to run psql against the master and standby servers, respectively. The
# test script can also use the $connstr_master and $connstr_standby global # test script can also use the $connstr_master and $connstr_standby global
...@@ -56,6 +59,7 @@ our @EXPORT = qw( ...@@ -56,6 +59,7 @@ our @EXPORT = qw(
create_standby create_standby
promote_standby promote_standby
run_pg_rewind run_pg_rewind
clean_rewind_test
); );
...@@ -262,9 +266,8 @@ recovery_target_timeline='latest' ...@@ -262,9 +266,8 @@ recovery_target_timeline='latest'
} }
# Clean up after the test. Stop both servers, if they're still running. # 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) if ($test_master_datadir)
{ {
system "pg_ctl -D $test_master_datadir -s -m immediate stop 2> /dev/null"; system "pg_ctl -D $test_master_datadir -s -m immediate stop 2> /dev/null";
...@@ -273,5 +276,12 @@ END ...@@ -273,5 +276,12 @@ END
{ {
system "pg_ctl -D $test_standby_datadir -s -m immediate stop 2> /dev/null"; 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; $? = $save_rc;
} }
...@@ -78,6 +78,7 @@ in master, before promotion ...@@ -78,6 +78,7 @@ in master, before promotion
), ),
'tail-copy'); 'tail-copy');
RewindTest::clean_rewind_test();
} }
# Run the test in both modes # Run the test in both modes
......
...@@ -40,6 +40,7 @@ standby_afterpromotion ...@@ -40,6 +40,7 @@ standby_afterpromotion
), ),
'database names'); 'database names');
RewindTest::clean_rewind_test();
} }
# Run the test in both modes. # Run the test in both modes.
......
...@@ -62,6 +62,8 @@ sub run_test ...@@ -62,6 +62,8 @@ sub run_test
"$test_master_datadir/tst_standby_dir/standby_subdir", "$test_master_datadir/tst_standby_dir/standby_subdir",
"$test_master_datadir/tst_standby_dir/standby_subdir/standby_file3"], "$test_master_datadir/tst_standby_dir/standby_subdir/standby_file3"],
"file lists match"); "file lists match");
RewindTest::clean_rewind_test();
} }
# Run the test in both modes. # Run the test in both modes.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment