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; }