X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=test.pl.in;h=3834d3c3ee9d6982016ab9641d477eeb6e795323;hb=47d04677b7a8b12b00e4f4c2a815514ad56b1239;hp=e88c473d56e41e10b07bac3e06d253c6ddef80c6;hpb=9fb440a991c532c7df026e7f83c5d0150ed3b5a9;p=nagiosplug.git diff --git a/test.pl.in b/test.pl.in index e88c473..3834d3c 100755 --- a/test.pl.in +++ b/test.pl.in @@ -1,91 +1,49 @@ -#!/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,$httphost,$mailhost,$dnshost,$noserver,$nullhost,$quickcheck); +use NPTest qw(DetermineTestHarnessDirectory TestsFrom); -use Getopt::Long; -GetOptions - ("tstdir:s"=>\$tstdir, - "spath:s"=>\$spath, - "hostname:s"=>\$hostname, - "httpname:s"=>\$httphost, - "mailhost:s"=>\$mailhost, - "dnshost:s"=>\$dnshost, - "noserver:s"=>\$noserver, - "nullhost:s"=>\$nullhost, - "quickcheck"=>\$quickcheck); +my $tstdir; + +if ( ! GetOptions( "testdir:s" => \$tstdir ) ) +{ + print "Usage: ${0} [--testdir=] [ ...]\n"; + exit 1; +} -$spath = "." unless ($spath); +my @tests; -unless ($quickcheck) { - - $hostname = get_option("hostname","host for FTP/UDP tests") unless ($hostname); - $httphost = get_option("httphost","host for HTTP tests") unless ($httphost); - $mailhost = get_option("mailhost","host for SMTP/IMAP/POP tests") unless ($mailhost); - $dnshost = get_option("dnshost","hostname to lookup for DNS tests") unless ($dnshost); - $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 );