X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2Fautouse.t;h=d4ca15a272e0b927f8f0ff0bf78d05705280545d;hb=50109ad0d28b27abe5ee82def070e14b4526321c;hp=0a2d68003f42ff0944e07bac6c0d3a2fa459c715;hpb=b695f709e8a342e35e482b0437eb6cdacdc58b6b;p=p5sagit%2Fp5-mst-13.2.git diff --git a/lib/autouse.t b/lib/autouse.t index 0a2d680..d4ca15a 100644 --- a/lib/autouse.t +++ b/lib/autouse.t @@ -3,10 +3,15 @@ BEGIN { chdir 't' if -d 't'; @INC = '../lib'; + require Config; + if (($Config::Config{'extensions'} !~ m!\bList/Util\b!) ){ + print "1..0 # Skip -- Perl configured without List::Util module\n"; + exit 0; + } } use Test; -BEGIN { plan tests => 10; } +BEGIN { plan tests => 12; } BEGIN { require autouse; @@ -39,19 +44,28 @@ use autouse 'Carp' => qw(carp croak); local $SIG{__WARN__} = sub { push @warning, @_ }; carp "this carp was predeclared and autoused\n"; ok( scalar @warning, 1 ); - ok( $warning[0], "this carp was predeclared and autoused\n" ); + ok( $warning[0], qr/^this carp was predeclared and autoused\n/ ); eval { croak "It is but a scratch!" }; ok( $@, qr/^It is but a scratch!/); } -# Test that autouse's lazy module loading works. We assume that nothing -# involved in this test uses Text::Soundex, which is pretty safe. -use autouse 'Text::Soundex' => qw(soundex); +# Test that autouse's lazy module loading works. +use autouse 'Errno' => qw(EPERM); -my $mod_file = 'Text/Soundex.pm'; # just fine and portable for %INC +my $mod_file = 'Errno.pm'; # just fine and portable for %INC ok( !exists $INC{$mod_file} ); -ok( soundex('Basset'), 'B230' ); +ok( EPERM ); # test if non-zero ok( exists $INC{$mod_file} ); +use autouse Env => "something"; +eval { something() }; +ok( $@, qr/^\Qautoused module Env has unique import() method/ ); + +# Check that UNIVERSAL.pm doesn't interfere with modules that don't use +# Exporter and have no import() of their own. +require UNIVERSAL; +autouse->import("Class::ISA" => 'self_and_super_versions'); +my %versions = self_and_super_versions("Class::ISA"); +ok( $versions{"Class::ISA"}, $Class::ISA::VERSION );