On 11/1/21 21:23, Michael Paquier wrote:
> On Mon, Nov 01, 2021 at 11:33:21AM -0400, Andrew Dunstan wrote:
>> As I mentioned recently at
>> <https://postgr.es/m/5d72f199-dc11-89a8-29d1-f20f9687c...@dunslane.net>, 
>> I want to get USE_MODULE_DB working for vcregress.pl. I started out
>> writing code to strip this from the command line or get it from the
>> environment, but then it struck me that if would be better to implement
>> a general Makefile-like mechanism for handling FOO=bar type arguments on
>> the command line, along the lines of the attached.
> I am not sure to understand how that will that work with USE_MODULE_DB
> which sets up the database names used by the regression tests.  Each
> target's module has its own needs in terms of settings that can be
> used, meaning that you would still need some boilerplate to do the
> mapping between a variable and its command argument?



I think you misunderstood the purpose of my email. It wasn't meant to
be  complete patch.


But here's an untested patch that should do almost all of what I want
for USE_MODULE_DB.


cheers


andrew


-- 

Andrew Dunstan
EDB: https://www.enterprisedb.com
diff --git a/src/tools/msvc/vcregress.pl b/src/tools/msvc/vcregress.pl
index fc826da3ff..840931b210 100644
--- a/src/tools/msvc/vcregress.pl
+++ b/src/tools/msvc/vcregress.pl
@@ -39,6 +39,14 @@ if (-e "src/tools/msvc/buildenv.pl")
 	do "./src/tools/msvc/buildenv.pl";
 }
 
+my %settings;
+
+while (@ARGV && $ARGV[0] =~ /([A-Za-z]\w*)=(.*)/)
+{
+	$settings{$1}={$2};
+	shift;
+}
+
 my $what = shift || "";
 if ($what =~
 	/^(check|installcheck|plcheck|contribcheck|modulescheck|ecpgcheck|isolationcheck|upgradecheck|bincheck|recoverycheck|taptest)$/i
@@ -411,10 +419,12 @@ sub plcheck
 		print
 		  "============================================================\n";
 		print "Checking $lang\n";
+		my $dbname =  "pl_regression";
+		$dbname = "pl_regression_$lang" if $settings{USE_MODULE_DB};
 		my @args = (
 			"$topdir/$Config/pg_regress/pg_regress",
 			"--bindir=$topdir/$Config/psql",
-			"--dbname=pl_regression", @lang_args, @tests);
+			"--dbname=$dbname", @lang_args, @tests);
 		system(@args);
 		my $status = $? >> 8;
 		exit $status if $status;
@@ -692,6 +702,12 @@ sub fetchRegressOpts
 	{
 		push @opts, "--no-locale";
 	}
+	if ($settings{USE_MODULE_DB} && $m =~ /^\s*MODULE(?:S|_big)\s*=\s*(\S+)/m)
+	{
+		my $dbname = $1;
+		$dbname =~ s/plpython.*/plpython/;
+		push @opts, "--dbname=contrib_regression_$dbname";
+	}
 	return @opts;
 }
 

Reply via email to