{ my $__ntest; my $__total; sub plan { @_ == 2 or die "usage: plan(tests => count)"; my $what = shift; $what eq 'tests' or die "cannot plan anything but tests"; $__total = shift; defined $__total && $__total > 0 or die "need a positive number of tests"; print "1..$__total\n"; } sub skip { my $reason = shift; ++$__ntest; print "ok $__ntest # skip: $reason\n" } sub ok ($;$$) { local($\,$,); my $ok = 0; my $result = shift; if (@_ == 0) { $ok = $result; } else { $expected = shift; if (!defined $expected) { $ok = !defined $result; } elsif (!defined $result) { $ok = 0; } elsif (ref($expected) eq 'Regexp') { die "using regular expression objects is not backwards compatible"; } else { $ok = $result eq $expected; } } ++$__ntest; if ($ok) { print "ok $__ntest\n" } else { print "not ok $__ntest\n" } } } 1;