From 724315b64cb1c3eb20da9532be391a30c77bafb8 Mon Sep 17 00:00:00 2001
From: Justin Pryzby <pryzbyj@telsasoft.com>
Date: Sun, 1 May 2022 07:55:57 -0500
Subject: [PATCH 16/21] msvc: do not install libpq test tools by default

See also:
https://www.postgresql.org/message-id/flat/20220501080706.GA1542365%40rfd.leadboat.com
a17fd67d2f2861ae0ce00d1aeefdf2facc47cd5e Build libpq test programs under MSVC.
https://www.postgresql.org/message-id/74952229-b3b0-fe47-f958-4088529a3f21@dunslane.net MSVC build system installs extra executables
https://www.postgresql.org/message-id/e4233934-98a6-6f76-46a0-992c0f4f1208@dunslane.net Re: set TESTDIR from perl rather than Makefile

ci-os-only: linux, windows
---
 .cirrus.yml               |  1 +
 src/tools/msvc/Install.pm | 13 +++++++++++++
 2 files changed, 14 insertions(+)

diff --git a/.cirrus.yml b/.cirrus.yml
index fd8f27ff593..d37761c6be2 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -444,6 +444,7 @@ task:
 
   tempinstall_script:
     # Installation on windows currently only completely works from src/tools/msvc
+    - set INSTALL_TESTS=1
     - cd src/tools/msvc && perl install.pl %CIRRUS_WORKING_DIR%/tmp_install
 
   this_tap_script: |
diff --git a/src/tools/msvc/Install.pm b/src/tools/msvc/Install.pm
index 8de79c618cb..f70dbb1daf2 100644
--- a/src/tools/msvc/Install.pm
+++ b/src/tools/msvc/Install.pm
@@ -29,6 +29,10 @@ my @client_program_files = (
 	'pg_config',     'pg_dump',        'pg_dumpall', 'pg_isready',
 	'pg_receivewal', 'pg_recvlogical', 'pg_restore', 'psql',
 	'reindexdb',     'vacuumdb',       @client_contribs);
+my @test_program_files = (
+	'isolationtester',	'libpq_pipeline',	'libpq_testclient',
+	'libpq_uri_regress',	'pg_isolation_regress', 'pg_regress_ecpg',
+	'pg_regress',		'zic');
 
 sub lcopy
 {
@@ -264,10 +268,19 @@ sub CopySolutionOutput
 
 		$sln =~ s/$rem//;
 
+		# Only install client tools
 		next
 		  if ($insttype eq "client" && !grep { $_ eq $pf }
 			@client_program_files);
 
+		# Install test tools only in test mode
+		if (!$ENV{INSTALL_TESTS} && grep { $_ eq $pf }
+			@test_program_files)
+		{
+			print "Skipping install: $pf\n";
+			next;
+		}
+
 		my $proj = read_file("$pf.$vcproj")
 		  || croak "Could not open $pf.$vcproj\n";
 
-- 
2.17.1

