| #!/usr/bin/perl -w |
| |
| # Test _is_of_type() |
| |
| BEGIN { |
| chdir 't' if -d 't'; |
| } |
| |
| use lib './lib'; |
| use strict; |
| use ExtUtils::MakeMaker; |
| |
| use Test::More "no_plan"; |
| |
| my $is_of_type = \&ExtUtils::MakeMaker::_is_of_type; |
| |
| my @tests = ( |
| [23, "", 1], |
| [[], "", 0], |
| [{}, "", 0], |
| [[], "HASH", 0], |
| [{}, "HASH", 1], |
| [bless({}, "Foo"), "Foo", 1], |
| [bless({}, "Bar"), "Foo", 0], |
| [bless([], "Foo"), "", 0], |
| [bless([], "Foo"), "HASH", 0], |
| [bless([], "Foo"), "ARRAY", 1], |
| ); |
| |
| for my $test (@tests) { |
| my($thing, $type, $want) = @$test; |
| |
| # [rt.cpan.org 41060] |
| local $SIG{__DIE__} = sub { fail("sigdie should be ignored") }; |
| is !!$is_of_type->($thing, $type), !!$want, qq[_is_of_type($thing, '$type'): $want]; |
| } |