summaryrefslogtreecommitdiff
path: root/t/test.pl
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>2001-09-25 14:27:01 +0000
committerJarkko Hietaniemi <jhi@iki.fi>2001-09-25 14:27:01 +0000
commit69026470e9d2e2c7bf7b03f351d6e98a6d6f29f3 (patch)
treec194809a1212142d6e379732826ee7e74db2bded /t/test.pl
parent81ba8d9690fde862b2e9f40e3edd1700854de746 (diff)
downloadperl-69026470e9d2e2c7bf7b03f351d6e98a6d6f29f3.tar.gz
Replace the use Test::More in t/{op,io,run} with t/test.pl.
Note: io/binmode is failing, have to figure out why. p4raw-id: //depot/perl@12198
Diffstat (limited to 't/test.pl')
-rw-r--r--t/test.pl146
1 files changed, 146 insertions, 0 deletions
diff --git a/t/test.pl b/t/test.pl
new file mode 100644
index 0000000000..c7c9908424
--- /dev/null
+++ b/t/test.pl
@@ -0,0 +1,146 @@
+#
+# t/test.pl - most of Test::More functionality without the fuss
+#
+
+my $test = 1;
+my $planned;
+
+sub plan {
+ my $n;
+ if (@_ == 1) {
+ $n = shift;
+ } else {
+ my %plan = @_;
+ $n = $plan{tests};
+ }
+ print "1..$n\n";
+ $planned = $n;
+}
+
+END {
+ my $ran = $test - 1;
+ if (defined $planned && $planned != $ran) {
+ print "# Looks like you planned $planned tests but ran $ran.\n";
+ }
+}
+
+sub skip_all {
+ if (@_) {
+ print "1..0 - @_\n";
+ } else {
+ print "1..0\n";
+ }
+ exit(0);
+}
+
+sub _ok {
+ my ($pass, $where, @mess) = @_;
+ # Do not try to microoptimize by factoring out the "not ".
+ # VMS will avenge.
+ if (@mess) {
+ print $pass ? "ok $test - @mess\n" : "not ok $test - @mess\n";
+ } else {
+ print $pass ? "ok $test\n" : "not ok $test\n";
+ }
+ unless ($pass) {
+ print "# Failed $where\n";
+ }
+ $test++;
+}
+
+sub _where {
+ my @caller = caller(1);
+ return "at $caller[1] line $caller[2]";
+}
+
+sub ok {
+ my ($pass, @mess) = @_;
+ _ok($pass, _where(), @mess);
+}
+
+sub _expect {
+ my ($got, $pass, @mess) = @_;
+ if ($pass) {
+ ok(1, @mess);
+ } else {
+ ok(0, @mess);
+ }
+}
+
+sub is {
+ my ($got, $expected, @mess) = @_;
+ my $pass = $got eq $expected;
+ unless ($pass) {
+ unshift(@mess, "\n",
+ "# got '$got'\n",
+ "# expected '$expected'\n");
+ }
+ _expect($pass, _where(), @mess);
+}
+
+# Note: this isn't quite as fancy as Test::More::like().
+sub like {
+ my ($got, $expected, @mess) = @_;
+ my $pass;
+ if (ref $expected eq 'Regexp') {
+ $pass = $got =~ $expected;
+ unless ($pass) {
+ unshift(@mess, "\n",
+ "# got '$got'\n");
+ }
+ } else {
+ $pass = $got =~ /$expected/;
+ unless ($pass) {
+ unshift(@mess, "\n",
+ "# got '$got'\n",
+ "# expected /$expected/\n");
+ }
+ }
+ _expect($pass, _where(), @mess);
+}
+
+sub pass {
+ _ok(1, '', @_);
+}
+
+sub fail {
+ _ok(0, _where(), @_);
+}
+
+# Note: can't pass multipart messages since we try to
+# be compatible with Test::More::skip().
+sub skip {
+ my ($mess, $n) = @_;
+ for (1..$n) {
+ ok(1, "# skip:", $mess);
+ }
+ local $^W = 0;
+ last SKIP;
+}
+
+sub eq_array {
+ my ($ra, $rb) = @_;
+ return 0 unless $#$ra == $#$rb;
+ for my $i (0..$#$ra) {
+ return 0 unless $ra->[$i] eq $rb->[$i];
+ }
+ return 1;
+}
+
+sub require_ok {
+ my ($require) = @_;
+ eval <<REQUIRE_OK;
+require $require;
+REQUIRE_OK
+ ok(!$@, "require $require");
+}
+
+sub use_ok {
+ my ($use) = @_;
+ eval <<USE_OK;
+use $use;
+USE_OK
+ ok(!$@, "use $use");
+}
+
+1;