The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# 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" );
}