]> granicus.if.org Git - postgresql/commitdiff
Add new target modulescheck in vcregress.pl
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Fri, 17 Apr 2015 02:39:52 +0000 (23:39 -0300)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Fri, 17 Apr 2015 02:39:52 +0000 (23:39 -0300)
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
src/tools/msvc/vcregress.pl

index 9b77648627f34862de7aecc5cbc4ea220e02e609..d154b4408c926f1fb7edbaa5ea85fdd39ec2813e 100644 (file)
@@ -436,6 +436,7 @@ $ENV{CONFIG}="Debug";
 <userinput>vcregress installcheck</userinput>
 <userinput>vcregress plcheck</userinput>
 <userinput>vcregress contribcheck</userinput>
+<userinput>vcregress modulescheck</userinput>
 <userinput>vcregress ecpgcheck</userinput>
 <userinput>vcregress isolationcheck</userinput>
 <userinput>vcregress upgradecheck</userinput>
index 4812a0361f680f28393c6157f635d60f1d37c78c..c3143ac665b536de8897d4f2ccf58562729fa25c 100644 (file)
@@ -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 contribcheck
+sub subdircheck
 {
-       chdir "../../../contrib";
+       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 "$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
 {