aboutsummaryrefslogtreecommitdiff
path: root/src/bin/pg_rewind/RewindTest.pm
diff options
context:
space:
mode:
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>2015-07-29 19:17:02 +0300
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>2015-07-29 19:17:02 +0300
commit13d856e177e69083f543d6383eeda9e12ce3c55c (patch)
tree996a28e65f66ad64dd78f5b2495349a84db9040e /src/bin/pg_rewind/RewindTest.pm
parent5f1066074cd85b829371a4123839d16f52553c3d (diff)
downloadpostgresql-13d856e177e69083f543d6383eeda9e12ce3c55c.tar.gz
postgresql-13d856e177e69083f543d6383eeda9e12ce3c55c.zip
Make TAP tests work on Windows.
On Windows, use listen_address=127.0.0.1 to allow TCP connections. We were already using "pg_regress --config-auth" to set up HBA appropriately. The standard_initdb helper function now sets up the server's unix_socket_directories or listen_addresses in the config file, so that they don't need to be specified in the pg_ctl command line anymore. That way, the pg_ctl invocations in test programs don't need to differ between Windows and Unix. Add another helper function to configure the server's pg_hba.conf to allow replication connections. The configuration is done similarly to "pg_regress --config-auth": trust on domain sockets on Unix, and SSPI authentication on Windows. Replace calls to "cat" and "touch" programs with built-in perl code, as those programs don't normally exist on Windows. Add instructions in the docs on how to install IPC::Run on Windows. Adjust vcregress.pl to not replace PERL5LIB completely in vcregress.pl, because otherwise cannot install IPC::Run in a non-standard location easily. Michael Paquier, reviewed by Noah Misch, some additional tweaking by me.
Diffstat (limited to 'src/bin/pg_rewind/RewindTest.pm')
-rw-r--r--src/bin/pg_rewind/RewindTest.pm21
1 files changed, 7 insertions, 14 deletions
diff --git a/src/bin/pg_rewind/RewindTest.pm b/src/bin/pg_rewind/RewindTest.pm
index 755ecb74383..85edf2b3caa 100644
--- a/src/bin/pg_rewind/RewindTest.pm
+++ b/src/bin/pg_rewind/RewindTest.pm
@@ -192,20 +192,15 @@ max_connections = 10
));
# Accept replication connections on master
- append_to_file(
- "$test_master_datadir/pg_hba.conf", qq(
-local replication all trust
-));
+ configure_hba_for_replication $test_master_datadir;
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');
+ "-o", "-p $port_master", 'start');
#### Now run the test-specific parts to initialize the master before setting
# up standby
- $ENV{PGHOST} = $tempdir_short;
}
sub create_standby
@@ -227,8 +222,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');
+ '-o', "-p $port_standby", 'start');
# Wait until the standby has caught up with the primary, by polling
# pg_stat_replication.
@@ -264,7 +258,7 @@ sub run_pg_rewind
my $test_mode = shift;
# Stop the master and be ready to perform the rewind
- system_or_bail('pg_ctl', '-D', $test_master_datadir, 'stop', '-m', 'fast');
+ system_or_bail('pg_ctl', '-D', $test_master_datadir, '-m', 'fast', 'stop');
# At this point, the rewind processing is ready to run.
# We now have a very simple scenario with a few diverged WAL record.
@@ -282,8 +276,8 @@ sub run_pg_rewind
{
# Do rewind using a local pgdata as source
# Stop the master and be ready to perform the rewind
- system_or_bail('pg_ctl', '-D', $test_standby_datadir, 'stop',
- '-m', 'fast');
+ system_or_bail('pg_ctl', '-D', $test_standby_datadir,
+ '-m', 'fast', 'stop');
command_ok(['pg_rewind',
"--debug",
"--source-pgdata=$test_standby_datadir",
@@ -323,8 +317,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');
+ '-o', "-p $port_master", 'start');
#### Now run the test-specific parts to check the result
}