diff --git a/test.pl.in b/test.pl.in
index 0b895a31a346b87b8308fc359ab804ee0eae4d75..3834d3c3ee9d6982016ab9641d477eeb6e795323 100755 (executable)
--- a/test.pl.in
+++ b/test.pl.in
-#!/usr/bin/perl -w
+#!/usr/bin/perl -w -I .. -I ../..
+#
+# Wrapper for running the test harnesses
+#
+
use strict;
-my $file = '../Cache';
-unless (-f "$file.pm") {
- open(CACHE,">$file.pm") or die "Cannot open cache";
- print CACHE "package Cache;
-require Exporter;
-\@ISA=qw(Exporter);
-\@EXPORT=qw();
-1;
-";
- close CACHE;
-}
+use Getopt::Long;
-use Helper;
-my ($tstdir,$spath,$hostname,$mailhost,$noserver,$nullhost,$quickcheck);
+use NPTest qw(DetermineTestHarnessDirectory TestsFrom);
-use Getopt::Long;
-GetOptions
- ("tstdir:s"=>\$tstdir,
- "spath:s"=>\$spath,
- "hostname:s"=>\$hostname,
- "mailhost:s"=>\$mailhost,
- "noserver:s"=>\$noserver,
- "nullhost:s"=>\$nullhost,
- "quickcheck"=>\$quickcheck);
+my $tstdir;
+
+if ( ! GetOptions( "testdir:s" => \$tstdir ) )
+{
+ print "Usage: ${0} [--testdir=<directory>] [<test_harness.t> ...]\n";
+ exit 1;
+}
-$spath = "." unless ($spath);
+my @tests;
-unless ($quickcheck) {
-
- $hostname = get_option("hostname","host for FTP/HTTP/UDP tests") unless ($hostname);
- $mailhost = get_option("mailhost","host for SMTP/IMAP/POP tests") unless ($mailhost);
- $noserver = get_option("noserver","host that rejects above services") unless ($noserver);
- # This machine should not be locatable from your network. Use IP
- # private addresses like 10.x.x.x and pick one that does not exist
- # on your LAN/WAN
- $nullhost = get_option("nullhost","nonexistent IP address (e.g., 10.0.0.0)") unless ($nullhost);
+if ( scalar( @ARGV ) )
+{
+ @tests = @ARGV;
}
+else
+{
+ my $directory = DetermineTestHarnessDirectory( $tstdir );
+
+ if ( !defined( $directory ) )
+ {
+ print STDERR "$0: Unable to determine the test harness directory - ABORTING\n";
+ exit 2;
+ }
-my @dots;
-if (@ARGV) {
- @dots = @ARGV;
-} else {
- unless ($tstdir) {
- if (-d './t') {
- $tstdir = './t';
- } else {
- $tstdir = $ENV{PWD};
- $tstdir = `/bin/pwd` unless defined($tstdir);
- chomp $tstdir;
- if (defined($tstdir)) {
- $tstdir =~ s|^(.*)/([^/]+)/?$|$1/$2|;
- if (-d "../../$2/t") {
- $tstdir = "../../$2/t";
- } elsif (-d "$tstdir/t") {
- $tstdir = "$tstdir/t";
- }
- } else {
- die "Could not get PWD from environment\n";
- }
- }
- }
- $tstdir = './t' unless ($tstdir);
- opendir(DIR, $tstdir) || die "can't opendir $tstdir: $!";
- while ($file = readdir(DIR)) {
- push @dots, "$tstdir/$file" if ($file =~ m/^[^\.]+\.t$/);
- }
- closedir DIR;
+ @tests = TestsFrom( $directory, 1 );
}
-my $prog;
-my $test;
-my @progs;
-foreach $test (@dots) {
- $prog=`basename $test .t`;
- chomp $prog;
- if ( -e "$prog" ){
- push @progs, "$test";
- }else{
- print "No binary found for $prog\n";
- }
+
+if ( ! scalar( @tests ) )
+{
+ print STDERR "$0: Unable to determine the test harnesses to run - ABORTING\n";
+ exit 3;
}
use Test::Harness;
-#$Test::Harness::verbose=1;
-runtests(@progs);
+
+$Test::Harness::verbose=1;
+
+runtests( @tests );