aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/tools/msvc/vcregress.pl22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/tools/msvc/vcregress.pl b/src/tools/msvc/vcregress.pl
index 599b5210144..4018313bf28 100644
--- a/src/tools/msvc/vcregress.pl
+++ b/src/tools/msvc/vcregress.pl
@@ -361,6 +361,10 @@ sub plcheck
{
@lang_args = ();
}
+
+ # Move on if no tests are listed.
+ next if (scalar @tests == 0);
+
print
"============================================================\n";
print "Checking $lang\n";
@@ -391,6 +395,14 @@ sub subdircheck
chdir $module;
my @tests = fetchTests();
+
+ # Leave if no tests are listed in the module.
+ if (scalar @tests == 0)
+ {
+ chdir "..";
+ return;
+ }
+
my @opts = fetchRegressOpts();
# Special processing for python transform modules, see their respective
@@ -638,6 +650,8 @@ sub fetchRegressOpts
return @opts;
}
+# Fetch the list of tests by parsing a module's Makefile. An empty
+# list is returned if the module does not need to run anything.
sub fetchTests
{
@@ -651,6 +665,14 @@ sub fetchTests
my $t = "";
$m =~ s{\\\r?\n}{}g;
+
+ # A module specifying NO_INSTALLCHECK does not support installcheck,
+ # so bypass its run by returning an empty set of tests.
+ if ($m =~ /^\s*NO_INSTALLCHECK\s*=\s*\S+/m)
+ {
+ return ();
+ }
+
if ($m =~ /^REGRESS\s*=\s*(.*)$/gm)
{
$t = $1;