t/lib/strict/subs Tests of "use strict 'subs'" for strict.t
t/lib/strict/vars Tests of "use strict 'vars'" for strict.t
t/lib/subs/subs Tests of "use subs"
+t/lib/test_require.pm A test file for t/op/inccode.t
t/lib/test_use_14937.pm A test pragma for t/comp/use.t
t/lib/test_use.pm A test pragma for t/comp/use.t
t/lib/universal.t Tests for functions in universal.c
use strict;
-plan(tests => 53 + !is_miniperl() * (3 + 14 * $can_fork));
+plan(tests => 60 + !is_miniperl() * (3 + 14 * $can_fork));
sub get_temp_fh {
my $f = tempfile();
is( $ret, 'abc', 'do "abc.pl" sees return value' );
{
- my $filename = './Foo.pm';
+ my $got;
#local @INC; # local fails on tied @INC
my @old_INC = @INC; # because local doesn't work on tied arrays
- @INC = sub { $filename = 'seen'; return undef; };
- eval { require $filename; };
- is( $filename, 'seen', 'the coderef sees fully-qualified pathnames' );
+ @INC = ('lib', 'lib/Devel', sub { $got = $_[1]; return undef; });
+ foreach my $filename ('/test_require.pm', './test_require.pm',
+ '../test_require.pm') {
+ local %INC;
+ undef $got;
+ undef $test_require::loaded;
+ eval { require $filename; };
+ is($got, $filename, "the coderef sees the pathname $filename");
+ is($test_require::loaded, undef, 'no module is loaded' );
+ }
+
+ local %INC;
+ undef $got;
+ undef $test_require::loaded;
+
+ eval { require 'test_require.pm'; };
+ is($got, undef, 'the directory is scanned for test_require.pm');
+ is($test_require::loaded, 1, 'the module is loaded');
@INC = @old_INC;
}