#!perl -w
BEGIN {
- chdir 't' if -d 't';
- @INC = '../lib';
+ if( $ENV{PERL_CORE} ) {
+ chdir 't';
+ @INC = ('../lib', 'lib');
+ }
+ else {
+ unshift @INC, 't/lib';
+ }
}
use strict;
-use lib '../t/lib';
require Test::Simple::Catch;
my($out, $err) = Test::Simple::Catch::caught();
package main;
require Test::More;
-Test::More->import(tests => 12);
+my $Total = 28;
+Test::More->import(tests => $Total);
# Preserve the line numbers.
#line 38
ok( 0, 'failing' );
-is( "foo", "bar", 'foo is bar?');
+
+#line 40
+is( "foo", "bar", 'foo is bar?');
+is( undef, '', 'undef is empty string?');
+is( undef, 0, 'undef is 0?');
+is( '', 0, 'empty string is 0?' );
+
isnt("foo", "foo", 'foo isnt foo?' );
isn't("foo", "foo",'foo isn\'t foo?' );
like( "foo", '/that/', 'is foo like that' );
+unlike( "foo", '/foo/', 'is foo unlike foo' );
+
+# Nick Clark found this was a bug. Fixed in 0.40.
+like( "bug", '/(%)/', 'regex with % in it' );
fail('fail()');
+#line 52
can_ok('Mooble::Hooble::Yooble', qw(this that));
+can_ok('Mooble::Hooble::Yooble', ());
+
isa_ok(bless([], "Foo"), "Wibble");
isa_ok(42, "Wibble", "My Wibble");
isa_ok(undef, "Wibble", "Another Wibble");
-
+isa_ok([], "HASH");
+
+#line 68
+cmp_ok( 'foo', 'eq', 'bar', 'cmp_ok eq' );
+cmp_ok( 42.1, '==', 23, , ' ==' );
+cmp_ok( 42, '!=', 42 , ' !=' );
+cmp_ok( 1, '&&', 0 , ' &&' );
+cmp_ok( 42, '==', "foo", ' == with strings' );
+cmp_ok( 42, 'eq', "foo", ' eq with numbers' );
+cmp_ok( undef, 'eq', 'foo', ' eq with undef' );
+
+# generate a $!, it changes its value by context.
+-e "wibblehibble";
+my $Errno_Number = $!+0;
+my $Errno_String = $!.'';
+cmp_ok( $!, 'eq', '', ' eq with stringified errno' );
+cmp_ok( $!, '==', -1, ' eq with numerified errno' );
+
+#line 84
use_ok('Hooble::mooble::yooble');
require_ok('ALL::YOUR::BASE::ARE::BELONG::TO::US::wibble');
+#line 88
END {
My::Test::ok($$out eq <<OUT, 'failing output');
-1..12
+1..$Total
not ok 1 - failing
not ok 2 - foo is bar?
-not ok 3 - foo isnt foo?
-not ok 4 - foo isn't foo?
-not ok 5 - is foo like that
-not ok 6 - fail()
-not ok 7 - Mooble::Hooble::Yooble->can(...)
-not ok 8 - The object isa Wibble
-not ok 9 - My Wibble isa Wibble
-not ok 10 - Another Wibble isa Wibble
-not ok 11 - use Hooble::mooble::yooble;
-not ok 12 - require ALL::YOUR::BASE::ARE::BELONG::TO::US::wibble;
+not ok 3 - undef is empty string?
+not ok 4 - undef is 0?
+not ok 5 - empty string is 0?
+not ok 6 - foo isnt foo?
+not ok 7 - foo isn't foo?
+not ok 8 - is foo like that
+not ok 9 - is foo unlike foo
+not ok 10 - regex with % in it
+not ok 11 - fail()
+not ok 12 - Mooble::Hooble::Yooble->can(...)
+not ok 13 - Mooble::Hooble::Yooble->can(...)
+not ok 14 - The object isa Wibble
+not ok 15 - My Wibble isa Wibble
+not ok 16 - Another Wibble isa Wibble
+not ok 17 - The object isa HASH
+not ok 18 - cmp_ok eq
+not ok 19 - ==
+not ok 20 - !=
+not ok 21 - &&
+not ok 22 - == with strings
+not ok 23 - eq with numbers
+not ok 24 - eq with undef
+not ok 25 - eq with stringified errno
+not ok 26 - eq with numerified errno
+not ok 27 - use Hooble::mooble::yooble;
+not ok 28 - require ALL::YOUR::BASE::ARE::BELONG::TO::US::wibble;
OUT
my $err_re = <<ERR;
# Failed test ($0 at line 38)
-# Failed test ($0 at line 39)
+# Failed test ($0 at line 40)
# got: 'foo'
# expected: 'bar'
-# Failed test ($0 at line 40)
-# it should not be 'foo'
-# but it is.
# Failed test ($0 at line 41)
-# it should not be 'foo'
-# but it is.
+# got: undef
+# expected: ''
+# Failed test ($0 at line 42)
+# got: undef
+# expected: '0'
# Failed test ($0 at line 43)
+# got: ''
+# expected: '0'
+# Failed test ($0 at line 45)
+# 'foo'
+# ne
+# 'foo'
+# Failed test ($0 at line 46)
+# 'foo'
+# ne
+# 'foo'
+# Failed test ($0 at line 48)
# 'foo'
# doesn't match '/that/'
-# Failed test ($0 at line 45)
-# Failed test ($0 at line 47)
+# Failed test ($0 at line 49)
+# 'foo'
+# matches '/foo/'
+# Failed test ($0 at line 52)
+# 'bug'
+# doesn't match '/(%)/'
+# Failed test ($0 at line 54)
+# Failed test ($0 at line 52)
# Mooble::Hooble::Yooble->can('this') failed
# Mooble::Hooble::Yooble->can('that') failed
-# Failed test ($0 at line 48)
-# The object isn't a 'Wibble'
-# Failed test ($0 at line 49)
+# Failed test ($0 at line 53)
+# can_ok() called with no methods
+# Failed test ($0 at line 55)
+# The object isn't a 'Wibble' its a 'Foo'
+# Failed test ($0 at line 56)
# My Wibble isn't a reference
-# Failed test ($0 at line 50)
+# Failed test ($0 at line 57)
# Another Wibble isn't defined
+# Failed test ($0 at line 58)
+# The object isn't a 'HASH' its a 'ARRAY'
+# Failed test ($0 at line 68)
+# got: 'foo'
+# expected: 'bar'
+# Failed test ($0 at line 69)
+# got: 42.1
+# expected: 23
+# Failed test ($0 at line 70)
+# '42'
+# !=
+# '42'
+# Failed test ($0 at line 71)
+# '1'
+# &&
+# '0'
+# Failed test ($0 at line 72)
+# got: 42
+# expected: 0
+# Failed test ($0 at line 73)
+# got: '42'
+# expected: 'foo'
+# Failed test ($0 at line 74)
+# got: undef
+# expected: 'foo'
+# Failed test ($0 at line 80)
+# got: '$Errno_String'
+# expected: ''
+# Failed test ($0 at line 81)
+# got: $Errno_Number
+# expected: -1
ERR
my $filename = quotemeta $0;
my $more_err_re = <<ERR;
-# Failed test \\($filename at line 52\\)
+# Failed test \\($filename at line 84\\)
# Tried to use 'Hooble::mooble::yooble'.
# Error: Can't locate Hooble.* in \\\@INC .*
-# Failed test \\($filename at line 53\\)
+# Failed test \\($filename at line 85\\)
# Tried to require 'ALL::YOUR::BASE::ARE::BELONG::TO::US::wibble'.
# Error: Can't locate ALL.* in \\\@INC .*
-# Looks like you failed 12 tests of 12.
+# Looks like you failed $Total tests of $Total.
ERR
unless( My::Test::ok($$err =~ /^\Q$err_re\E$more_err_re$/,
'failing errors') ) {
- print map "# $_", $$err;
+ print $$err;
}
exit(0);