On 10/1/21 6:34 PM, Andres Freund wrote:
> Reference test binary using TESTDIR in 001_libpq_pipeline.pl.
>
> The previous approach didn't really work on windows, due to the PATH separator
> being ';' not ':'. Instead of making the PATH change more complicated,
> reference the binary using the TESTDIR environment.
>
> Reported-By: Andres Freund <[email protected]>
> Suggested-By: Andrew Dunstan <[email protected]>
> Discussion: 
> https://postgr.es/m/[email protected]
> Backpatch: 14-, where the test was introduced.
>

I don't think any of us were thinking very clearly about this. Of
course, MSVC doesn't build executables in $TESTDIR. If we want to pick
up the executable from where it's built we'll need a little help from
vcregress.pl. I haven't tested it but What I have in mind is something
like the attached.


cheers


andrew

--
Andrew Dunstan
EDB: https://www.enterprisedb.com

diff --git a/src/test/modules/libpq_pipeline/t/001_libpq_pipeline.pl b/src/test/modules/libpq_pipeline/t/001_libpq_pipeline.pl
index 6721edfa71..7951600697 100644
--- a/src/test/modules/libpq_pipeline/t/001_libpq_pipeline.pl
+++ b/src/test/modules/libpq_pipeline/t/001_libpq_pipeline.pl
@@ -14,7 +14,15 @@ $node->init;
 $node->start;
 
 my $numrows = 700;
-my $libpq_pipeline = "$ENV{TESTDIR}/libpq_pipeline";
+my $libpq_pipeline;
+if (defined $ENV{MSBUILDDIR})
+{
+	$libpq_pipeline = "$ENV{MSBUILDDIR}/libpq_pipeline/libpq_pipeline.exe";
+}
+else
+{
+	$libpq_pipeline = "$ENV{TESTDIR}/libpq_pipeline";
+}
 
 my ($out, $err) = run_command([ $libpq_pipeline, 'tests' ]);
 die "oops: $err" unless $err eq '';
diff --git a/src/tools/msvc/vcregress.pl b/src/tools/msvc/vcregress.pl
index 35e8f67f01..7d46b9f0cc 100644
--- a/src/tools/msvc/vcregress.pl
+++ b/src/tools/msvc/vcregress.pl
@@ -60,6 +60,7 @@ copy("$Config/regress/regress.dll",               "src/test/regress");
 copy("$Config/dummy_seclabel/dummy_seclabel.dll", "src/test/regress");
 
 $ENV{PATH} = "$topdir/$Config/libpq;$ENV{PATH}";
+$ENV{MSBUILDDIR} = "$topdir/$Config";
 
 if ($ENV{PERL5LIB})
 {

Reply via email to