diff --git a/NPTest.pm b/NPTest.pm
index f3fb896a3d7b210ed6d283c3e310190b48849564..54a535e77808b167741ba30ca744fcb3266acc5c 100644 (file)
--- a/NPTest.pm
+++ b/NPTest.pm
use Test;
use vars qw($VERSION);
-$VERSION = do { my @r = (q$Revision$ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker
+$VERSION = "1556."; # must be all one line, for MakeMaker
=head1 NAME
which will then be returned as "" for the test to skip if appropriate.
If a parameter needs to be entered and the test is run without a tty
-attached (such as a cronjob), this routine will die causing the test to
-fail.
+attached (such as a cronjob), the parameter will be assigned as if it
+was "none". Tests can check for the parameter and skip if not set.
-Responses are stored in an external, file-based
-cache so subsequent test runs will use these values. The user is able
-to change the values by amending the values in the file /var/tmp/NPTest.pm,
-or by setting the appropriate environment variable before running the test.
+Responses are stored in an external, file-based cache so subsequent test
+runs will use these values. The user is able to change the values by
+amending the values in the file /var/tmp/NPTest.cache, or by setting
+the appropriate environment variable before running the test.
The option exists to store parameters in a scoped means, allowing a
test harness to a localise a parameter should the need arise. This
return $default;
}
- die "Need to manually enter test parameter $param" unless (-t STDERR);
+ # Set "none" if no terminal attached (eg, tinderbox build servers when new variables set)
+ return "" unless (-t STDERR);
my $userResponse = "";
return $1 || "";
}
+sub only_output {
+ my $self = shift;
+ $_ = $self->{output};
+ /(.*?)\|/;
+ return $1 || "";
+}
+
sub testCmd {
my $class = shift;
my $command = shift or die "No command passed to testCmd";
my $object = $class->new;
my $output = `$command`;
+ $object->return_code($? >> 8);
+ $_ = $? & 127;
+ if ($_) {
+ die "Got signal $_ for command $command";
+ }
chomp $output;
-
$object->output($output);
- $object->return_code($? >> 8);
+ my ($pkg, $file, $line) = caller(0);
+ print "Testing: $command", $/;
if ($ENV{'NPTEST_DEBUG'}) {
- my ($pkg, $file, $line) = caller(0);
print "testCmd: Called from line $line in $file", $/;
- print "Testing: $command", $/;
print "Output: ", $object->output, $/;
print "Return code: ", $object->return_code, $/;
}