From 690ed2b76ab91eb79ea04ee2bfbdc8a2693f2a37 Mon Sep 17 00:00:00 2001
From: Andrew Dunstan <andrew@dunslane.net>
Date: Sun, 2 Aug 2015 20:58:18 -0400
Subject: [PATCH] Allow TAP tests to run under Msys

The Msys DTK perl, which is required to run TAP tests under Msys as a
native perl won't recognize the correct virtual paths, has its osname
recorded in the Config module as 'msys' instead of 'MSWin32'. To avoid
having to repeat the test a variable is created that is true iff the
osname is either of these values, and is then used everywhere that
matters.
---
 src/bin/pg_basebackup/t/010_pg_basebackup.pl | 2 +-
 src/bin/pg_ctl/t/001_start_stop.pl           | 2 +-
 src/test/perl/TestLib.pm                     | 9 ++++++---
 3 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/src/bin/pg_basebackup/t/010_pg_basebackup.pl b/src/bin/pg_basebackup/t/010_pg_basebackup.pl
index 4dbf8ca5224..5fa0caa3053 100644
--- a/src/bin/pg_basebackup/t/010_pg_basebackup.pl
+++ b/src/bin/pg_basebackup/t/010_pg_basebackup.pl
@@ -92,7 +92,7 @@ unlink "$tempdir/pgdata/$superlongname";
 # The following tests test symlinks. Windows doesn't have symlinks, so
 # skip on Windows.
 SKIP: {
-    skip "symlinks not supported on Windows", 10 if ($Config{osname} eq "MSWin32");
+    skip "symlinks not supported on Windows", 10 if ($windows_os);
 
 	# Create a temporary directory in the system location and symlink it
 	# to our physical temp location.  That way we can use shorter names
diff --git a/src/bin/pg_ctl/t/001_start_stop.pl b/src/bin/pg_ctl/t/001_start_stop.pl
index 015e4d8931c..dae47a80135 100644
--- a/src/bin/pg_ctl/t/001_start_stop.pl
+++ b/src/bin/pg_ctl/t/001_start_stop.pl
@@ -20,7 +20,7 @@ command_ok(
 		"$tempdir/data" ],
 	'configure authentication');
 open CONF, ">>$tempdir/data/postgresql.conf";
-if ($Config{osname} ne "MSWin32")
+if (! $windows_os)
 {
 	print CONF "listen_addresses = ''\n";
 	print CONF "unix_socket_directories = '$tempdir_short'\n";
diff --git a/src/test/perl/TestLib.pm b/src/test/perl/TestLib.pm
index 6677a57990c..8fd6f2c92a8 100644
--- a/src/test/perl/TestLib.pm
+++ b/src/test/perl/TestLib.pm
@@ -30,6 +30,7 @@ our @EXPORT = qw(
 
   $tmp_check
   $log_path
+  $windows_os
 );
 
 use Cwd;
@@ -42,6 +43,8 @@ use SimpleTee;
 
 use Test::More;
 
+our $windows_os = $Config{osname} eq 'MSWin32' || $Config{osname} eq 'msys';
+
 # Open log file. For each test, the log file name uses the name of the
 # file launching this module, without the .pl suffix.
 our ($tmp_check, $log_path);
@@ -140,7 +143,7 @@ sub standard_initdb
 
 	open CONF, ">>$pgdata/postgresql.conf";
 	print CONF "\n# Added by TestLib.pm)\n";
-	if ($Config{osname} eq "MSWin32")
+	if ($windows_os)
 	{
 		print CONF "listen_addresses = '127.0.0.1'\n";
 	}
@@ -151,7 +154,7 @@ sub standard_initdb
 	}
 	close CONF;
 
-	$ENV{PGHOST}         = ($Config{osname} eq "MSWin32") ? "127.0.0.1" : $tempdir_short;
+	$ENV{PGHOST}         = $windows_os ? "127.0.0.1" : $tempdir_short;
 }
 
 # Set up the cluster to allow replication connections, in the same way that
@@ -162,7 +165,7 @@ sub configure_hba_for_replication
 
 	open HBA, ">>$pgdata/pg_hba.conf";
 	print HBA "\n# Allow replication (set up by TestLib.pm)\n";
-	if ($Config{osname} ne "MSWin32")
+	if (! $windows_os)
 	{
 		print HBA "local replication all trust\n";
 	}
-- 
GitLab