my $what = shift || "";
if ($what =~
-/^(check|installcheck|plcheck|contribcheck|modulescheck|ecpgcheck|isolationcheck|upgradecheck|tapcheck)$/i
+/^(check|installcheck|plcheck|contribcheck|modulescheck|ecpgcheck|isolationcheck|upgradecheck|bincheck)$/i
)
{
$what = uc $what;
$schedule = "parallel" if ($what eq 'CHECK' || $what =~ /PARALLEL/);
}
-$ENV{PERL5LIB} = "$topdir/src/tools/msvc;$ENV{PERL5LIB}";
+if ($ENV{PERL5LIB})
+{
+ $ENV{PERL5LIB} = "$topdir/src/tools/msvc;$ENV{PERL5LIB}";
+}
+else
+{
+ $ENV{PERL5LIB} = "$topdir/src/tools/msvc";
+}
my $maxconn = "";
$maxconn = "--max_connections=$ENV{MAX_CONNECTIONS}"
CONTRIBCHECK => \&contribcheck,
MODULESCHECK => \&modulescheck,
ISOLATIONCHECK => \&isolationcheck,
- TAPCHECK => \&tapcheck,
+ BINCHECK => \&bincheck,
UPGRADECHECK => \&upgradecheck,);
my $proc = $command{$what};
exit $status if $status;
}
-sub tapcheck
+sub tap_check
{
- InstallTemp();
+ die "Tap tests not enabled in configuration"
+ unless $config->{tap_tests};
+
+ my $dir = shift;
+ chdir $dir;
my @args = ( "prove", "--verbose", "t/*.pl");
- my $mstat = 0;
+ # adjust the environment for just this test
+ local %ENV = %ENV;
$ENV{PERL5LIB} = "$topdir/src/test/perl;$ENV{PERL5LIB}";
$ENV{PG_REGRESS} = "$topdir/$Config/pg_regress/pg_regress";
+ $ENV{TESTDIR} = "$dir";
+
+ system(@args);
+ my $status = $? >> 8;
+ return $status;
+}
+
+sub bincheck
+{
+ InstallTemp();
+
+ my $mstat = 0;
+
# Find out all the existing TAP tests by looking for t/ directories
# in the tree.
- my $tap_dirs = [];
- my @top_dir = ($topdir);
- File::Find::find(
- { wanted => sub {
- /^t\z/s
- && push(@$tap_dirs, $File::Find::name);
- }
- },
- @top_dir);
+ my @bin_dirs = glob("$topdir/src/bin/*");
# Process each test
- foreach my $test_path (@$tap_dirs)
+ foreach my $dir (@$bin_dirs)
{
- # Like on Unix "make check-world", don't run the SSL test suite
- # automatically.
- next if ($test_path =~ /\/src\/test\/ssl\//);
-
- my $dir = dirname($test_path);
- chdir $dir;
- # Reset those values, they may have been changed by another test.
- $ENV{TESTDIR} = "$dir";
- system(@args);
- my $status = $? >> 8;
+ next unless -d "$dir/t";
+ my $status = tap_check($dir);
$mstat ||= $status;
}
exit $mstat if $mstat;