aboutsummaryrefslogtreecommitdiff
path: root/test.pl.in
diff options
context:
space:
mode:
Diffstat (limited to 'test.pl.in')
-rwxr-xr-xtest.pl.in87
1 files changed, 87 insertions, 0 deletions
diff --git a/test.pl.in b/test.pl.in
new file mode 100755
index 00000000..0b895a31
--- /dev/null
+++ b/test.pl.in
@@ -0,0 +1,87 @@
+#!/usr/bin/perl -w
+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 Helper;
+my ($tstdir,$spath,$hostname,$mailhost,$noserver,$nullhost,$quickcheck);
+
+use Getopt::Long;
+GetOptions
+ ("tstdir:s"=>\$tstdir,
+ "spath:s"=>\$spath,
+ "hostname:s"=>\$hostname,
+ "mailhost:s"=>\$mailhost,
+ "noserver:s"=>\$noserver,
+ "nullhost:s"=>\$nullhost,
+ "quickcheck"=>\$quickcheck);
+
+$spath = "." unless ($spath);
+
+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);
+}
+
+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;
+}
+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";
+ }
+}
+
+use Test::Harness;
+#$Test::Harness::verbose=1;
+runtests(@progs);