From bbcafabb4462e8c8fc19bb191e16f3a78bb446aa Mon Sep 17 00:00:00 2001
From: Andrew Dunstan <andrew@dunslane.net>
Date: Thu, 7 Feb 2019 10:22:49 -0500
Subject: [PATCH] Fix searchpath and module location for pg_rewind and ssl TAP
 tests

The modules RewindTest.pm and ServerSetup.pm are really only useful for
TAP tests, so they really belong in the TAP test directories. In
addition, ServerSetup.pm is renamed to SSLServer.pm.

The test scripts have their own directories added to the search path so
that the relocated modules will be found, regardless of where the tests
are run from, even on modern perl where "." is no longer in the
searchpath.

Discussion: https://postgr.es/m/e4b0f366-269c-73c3-9c90-d9cb0f4db1f9@2ndQuadrant.com

Backpatch as appropriate to 9.5
---
 src/bin/pg_rewind/t/001_basic.pl                | 3 +++
 src/bin/pg_rewind/t/002_databases.pl            | 3 +++
 src/bin/pg_rewind/t/003_extrafiles.pl           | 3 +++
 src/bin/pg_rewind/t/004_pg_xlog_symlink.pl      | 3 +++
 src/bin/pg_rewind/t/005_same_timeline.pl        | 3 +++
 src/bin/pg_rewind/{ => t}/RewindTest.pm         | 0
 src/test/ssl/t/001_ssltests.pl                  | 7 ++++++-
 src/test/ssl/{ServerSetup.pm => t/SSLServer.pm} | 2 +-
 8 files changed, 22 insertions(+), 2 deletions(-)
 rename src/bin/pg_rewind/{ => t}/RewindTest.pm (100%)
 rename src/test/ssl/{ServerSetup.pm => t/SSLServer.pm} (99%)

diff --git a/src/bin/pg_rewind/t/001_basic.pl b/src/bin/pg_rewind/t/001_basic.pl
index 1764b17c907..0008717c300 100644
--- a/src/bin/pg_rewind/t/001_basic.pl
+++ b/src/bin/pg_rewind/t/001_basic.pl
@@ -3,6 +3,9 @@ use warnings;
 use TestLib;
 use Test::More tests => 8;
 
+use FindBin;
+use lib $FindBin::RealBin;
+
 use RewindTest;
 
 sub run_test
diff --git a/src/bin/pg_rewind/t/002_databases.pl b/src/bin/pg_rewind/t/002_databases.pl
index 20bdb4ab59d..8e63e5b6b96 100644
--- a/src/bin/pg_rewind/t/002_databases.pl
+++ b/src/bin/pg_rewind/t/002_databases.pl
@@ -3,6 +3,9 @@ use warnings;
 use TestLib;
 use Test::More tests => 4;
 
+use FindBin;
+use lib $FindBin::RealBin;
+
 use RewindTest;
 
 sub run_test
diff --git a/src/bin/pg_rewind/t/003_extrafiles.pl b/src/bin/pg_rewind/t/003_extrafiles.pl
index cedde1409bc..2badab54fc3 100644
--- a/src/bin/pg_rewind/t/003_extrafiles.pl
+++ b/src/bin/pg_rewind/t/003_extrafiles.pl
@@ -7,6 +7,9 @@ use Test::More tests => 4;
 
 use File::Find;
 
+use FindBin;
+use lib $FindBin::RealBin;
+
 use RewindTest;
 
 
diff --git a/src/bin/pg_rewind/t/004_pg_xlog_symlink.pl b/src/bin/pg_rewind/t/004_pg_xlog_symlink.pl
index 12950ea1ca6..164d6f197ec 100644
--- a/src/bin/pg_rewind/t/004_pg_xlog_symlink.pl
+++ b/src/bin/pg_rewind/t/004_pg_xlog_symlink.pl
@@ -17,6 +17,9 @@ else
 	plan tests => 4;
 }
 
+use FindBin;
+use lib $FindBin::RealBin;
+
 use RewindTest;
 
 sub run_test
diff --git a/src/bin/pg_rewind/t/005_same_timeline.pl b/src/bin/pg_rewind/t/005_same_timeline.pl
index 0e334ee191a..40dbc44caa3 100644
--- a/src/bin/pg_rewind/t/005_same_timeline.pl
+++ b/src/bin/pg_rewind/t/005_same_timeline.pl
@@ -3,6 +3,9 @@ use warnings;
 use TestLib;
 use Test::More tests => 1;
 
+use FindBin;
+use lib $FindBin::RealBin;
+
 use RewindTest;
 
 # Test that running pg_rewind if the two clusters are on the same
diff --git a/src/bin/pg_rewind/RewindTest.pm b/src/bin/pg_rewind/t/RewindTest.pm
similarity index 100%
rename from src/bin/pg_rewind/RewindTest.pm
rename to src/bin/pg_rewind/t/RewindTest.pm
diff --git a/src/test/ssl/t/001_ssltests.pl b/src/test/ssl/t/001_ssltests.pl
index 32df2739295..95e38efef30 100644
--- a/src/test/ssl/t/001_ssltests.pl
+++ b/src/test/ssl/t/001_ssltests.pl
@@ -3,9 +3,14 @@ use warnings;
 use PostgresNode;
 use TestLib;
 use Test::More tests => 40;
-use ServerSetup;
+
 use File::Copy;
 
+use FindBin;
+use lib $FindBin::RealBin;
+
+use SSLServer;
+
 #### Some configuration
 
 # This is the hostname used to connect to the server. This cannot be a
diff --git a/src/test/ssl/ServerSetup.pm b/src/test/ssl/t/SSLServer.pm
similarity index 99%
rename from src/test/ssl/ServerSetup.pm
rename to src/test/ssl/t/SSLServer.pm
index f63c81cfc67..c2a50300d27 100644
--- a/src/test/ssl/ServerSetup.pm
+++ b/src/test/ssl/t/SSLServer.pm
@@ -14,7 +14,7 @@
 # The server is configured to only accept connections from localhost. If you
 # want to run the client from another host, you'll have to configure that
 # manually.
-package ServerSetup;
+package SSLServer;
 
 use strict;
 use warnings;
-- 
GitLab