From 4cb7d671fddc8855c8def2de51fb23df1c8ac0af Mon Sep 17 00:00:00 2001 From: Alvaro Herrera Date: Thu, 16 Apr 2015 23:39:52 -0300 Subject: [PATCH] Add new target modulescheck in vcregress.pl This allows an MSVC build to run regression tests related to modules in src/test/modules. Author: Michael Paquier Reviewed by: Andrew Dunstan --- doc/src/sgml/install-windows.sgml | 1 + src/tools/msvc/vcregress.pl | 68 ++++++++++++++++++++----------- 2 files changed, 46 insertions(+), 23 deletions(-) diff --git a/doc/src/sgml/install-windows.sgml b/doc/src/sgml/install-windows.sgml index 9b77648627..d154b4408c 100644 --- a/doc/src/sgml/install-windows.sgml +++ b/doc/src/sgml/install-windows.sgml @@ -436,6 +436,7 @@ $ENV{CONFIG}="Debug"; vcregress installcheck vcregress plcheck vcregress contribcheck +vcregress modulescheck vcregress ecpgcheck vcregress isolationcheck vcregress upgradecheck diff --git a/src/tools/msvc/vcregress.pl b/src/tools/msvc/vcregress.pl index 4812a0361f..c3143ac665 100644 --- a/src/tools/msvc/vcregress.pl +++ b/src/tools/msvc/vcregress.pl @@ -31,7 +31,7 @@ if (-e "src/tools/msvc/buildenv.pl") my $what = shift || ""; if ($what =~ -/^(check|installcheck|plcheck|contribcheck|ecpgcheck|isolationcheck|upgradecheck)$/i +/^(check|installcheck|plcheck|contribcheck|modulescheck|ecpgcheck|isolationcheck|upgradecheck)$/i ) { $what = uc $what; @@ -49,7 +49,7 @@ copy("$Config/autoinc/autoinc.dll", "src/test/regress"); copy("$Config/regress/regress.dll", "src/test/regress"); copy("$Config/dummy_seclabel/dummy_seclabel.dll", "src/test/regress"); -$ENV{PATH} = "../../../$Config/libpq;../../$Config/libpq;$ENV{PATH}"; +$ENV{PATH} = "$topdir/$Config/libpq;$topdir/$Config/libpq;$ENV{PATH}"; my $schedule = shift; unless ($schedule) @@ -76,6 +76,7 @@ my %command = ( INSTALLCHECK => \&installcheck, ECPGCHECK => \&ecpgcheck, CONTRIBCHECK => \&contribcheck, + MODULESCHECK => \&modulescheck, ISOLATIONCHECK => \&isolationcheck, UPGRADECHECK => \&upgradecheck,); @@ -213,10 +214,39 @@ sub plcheck chdir "../../.."; } +sub subdircheck +{ + my $subdir = shift; + my $module = shift; + my $mstat = 0; + + if ( ! -d "$module/sql" || + ! -d "$module/expected" || + ( ! -f "$module/GNUmakefile" && ! -f "$module/Makefile")) + { + return; + } + chdir $module; + print + "============================================================\n"; + print "Checking $module\n"; + my @tests = fetchTests(); + my @opts = fetchRegressOpts(); + my @args = ( + "$topdir/$Config/pg_regress/pg_regress", + "--psqldir=$topdir/$Config/psql", + "--dbname=contrib_regression", @opts, @tests); + system(@args); + my $status = $? >> 8; + $mstat ||= $status; + chdir ".."; + + exit $mstat if $mstat; +} + sub contribcheck { - chdir "../../../contrib"; - my $mstat = 0; + chdir "$topdir/contrib"; foreach my $module (glob("*")) { # these configuration-based exclusions must match Install.pm @@ -225,28 +255,20 @@ sub contribcheck next if ($module eq "xml2" && !defined($config->{xml})); next if ($module eq "sepgsql"); - next - unless -d "$module/sql" - && -d "$module/expected" - && (-f "$module/GNUmakefile" || -f "$module/Makefile"); - chdir $module; - print - "============================================================\n"; - print "Checking $module\n"; - my @tests = fetchTests(); - my @opts = fetchRegressOpts(); - my @args = ( - "../../$Config/pg_regress/pg_regress", - "--psqldir=../../$Config/psql", - "--dbname=contrib_regression", @opts, @tests); - system(@args); - my $status = $? >> 8; - $mstat ||= $status; - chdir ".."; + subdircheck("$topdir/contrib", $module); } - exit $mstat if $mstat; } +sub modulescheck +{ + chdir "$topdir/src/test/modules"; + foreach my $module (glob("*")) + { + subdircheck("$topdir/src/test/modules", $module); + } +} + + # Run "initdb", then reconfigure authentication. sub standard_initdb {