# Can't use Test.pm, that's a 5.005 thing. package My::Test; my $test_num = 1; # Utility testing functions. sub ok ($;$) { my($test, $name) = @_; my $ok = ''; $ok .= "not " unless $test; $ok .= "ok $test_num"; $ok .= " - $name" if defined $name; $ok .= "\n"; print $ok; $test_num++; } package main; my %Tests = ( 'success.plx' => 0, 'one_fail.plx' => 1, 'two_fail.plx' => 2, 'five_fail.plx' => 5, 'extras.plx' => 3, 'too_few.plx' => 4, 'death.plx' => 255, 'last_minute_death.plx' => 255, 'death_in_eval.plx' => 0, 'require.plx' => 0, ); print "1..".keys(%Tests)."\n"; chdir 't' if -d 't'; use File::Spec; my $lib = File::Spec->catdir('lib', 'Test', 'Simple', 'sample_tests'); while( my($test_name, $exit_code) = each %Tests ) { my $file = File::Spec->catfile($lib, $test_name); my $wait_stat = system(qq{$^X -"I../lib" -"Ilib/Test/Simple" $file}); My::Test::ok( $wait_stat >> 8 == $exit_code, "$test_name exited with $exit_code" ); }