diff options
author | Chris Wilson <chris+github@qwirx.com> | 2006-10-12 22:18:33 +0000 |
---|---|---|
committer | Chris Wilson <chris+github@qwirx.com> | 2006-10-12 22:18:33 +0000 |
commit | 120ebb0d01633707755e66f424d8faf3b144f417 (patch) | |
tree | 3960884d9704a70819a82104210a26f7a8ae3fb6 | |
parent | 249ca67c9a2e98e768dbe7293e690f9f7b096d4e (diff) |
* Use strict and warnings for code safety.
* Exit with status 2 on invalid usage.
* Allow running multiple tests, comma separated.
* Exit with status 2 if make fails for any test.
* Exit with status 1 if any test fails.
-rwxr-xr-x | runtest.pl.in | 31 |
1 files changed, 27 insertions, 4 deletions
diff --git a/runtest.pl.in b/runtest.pl.in index f2b70a14..db58726d 100755 --- a/runtest.pl.in +++ b/runtest.pl.in @@ -1,11 +1,14 @@ #!@PERL@ +use strict; +use warnings; + use lib 'infrastructure'; use BoxPlatform; my ($test_name,$test_mode) = @ARGV; -$test_mode = 'debug' if $test_mode eq ''; +$test_mode = 'debug' if not defined $test_mode or $test_mode eq ''; if($test_name eq '' || ($test_mode ne 'debug' && $test_mode ne 'release')) { @@ -17,15 +20,26 @@ runtest.pl (test|ALL) [release|debug] Mode defaults to debug. __E - exit(0); + exit(2); } my @results; +my $exit_code = 0; if($test_name ne 'ALL') { - # run one test - runtest($test_name); + # run one or more specified test + if ($test_name =~ m/,/) + { + foreach my $test (split m/,/, $test_name) + { + runtest($test); + } + } + else + { + runtest($test_name); + } } else { @@ -57,6 +71,8 @@ else # report results print "--------\n",join("\n",@results),"\n"; +exit $exit_code; + sub runtest { my ($t) = @_; @@ -67,6 +83,7 @@ sub runtest if($make_res != 0) { push @results,"$t: make failed"; + $exit_code = 2; return; } @@ -82,8 +99,14 @@ sub runtest $last = $_ if m/\w/; } close RESULTS; + chomp $last; push @results,"$t: $last"; + + if ($last ne "PASSED") + { + $exit_code = 1; + } } else { |