1#!/usr/bin/perl -Tw 2 3use Test::More tests => 11; 4use_ok "UNIVERSAL::require"; 5 6use lib qw(t); 7 8 9is( Dummy->require, 23, 'require()' ); 10is( $UNIVERSAL::require::ERROR, '', ' $ERROR empty' ); 11ok( $Dummy::VERSION, ' $VERSION ok' ); 12 13{ 14 $SIG{__WARN__} = sub { warn @_ 15 unless $_[0] =~ /^Subroutine \w+ redefined/ }; 16 delete $INC{'Dummy.pm'}; 17 is( Dummy->require(0.4), 23, 'require($version)' ); 18 is( $UNIVERSAL::require::ERROR, '', ' $ERROR empty' ); 19 20 delete $INC{'Dummy.pm'}; 21 ok( !Dummy->require(1.0), 'require($version) fail' ); 22 like( $UNIVERSAL::require::ERROR, 23 '/^Dummy version 1.* required--this is only version 0.5/' ); 24} 25 26{ 27 my $warning = ''; 28 local $SIG{__WARN__} = sub { $warning = join '', @_ }; 29 eval 'use UNIVERSAL'; 30 is( $warning, '', 'use UNIVERSAL doesnt interfere' ); 31} 32 33 34my $evil = "Dummy; Test::More::fail('this should never be called');"; 35ok !$evil->require; 36isnt $@, ''; 37