blob: 5bdf732e2cd197431ed59a354eacea17eee6d83d [file] [log] [blame]
#!/usr/bin/perl -w
package main;
use strict;
use Test::More;
# We may see failures with package filehandles if Fatal/autodie
# incorrectly pulls out a cached subroutine from a different package.
# We're using Fatal because package filehandles are likely to
# see more use with Fatal than autodie.
use Fatal qw(open);
eval {
open(FILE, '<', $0);
};
if ($@) {
# Holy smokes! We couldn't even open our own file, bail out...
plan skip_all => q{Can't open $0 for filehandle tests}
}
plan tests => 4;
my $line = <FILE>;
like($line, qr{perl}, 'Looks like we opened $0 correctly');
close(FILE);
package autodie::test;
use Test::More;
use Fatal qw(open);
eval {
open(FILE2, '<', $0);
};
is($@,"",'Opened $0 in autodie::test');
my $line2 = <FILE2>;
like($line2, qr{perl}, '...and we can read from $0 fine');
close(FILE2);
package main;
# This shouldn't read anything, because FILE2 should be inside
# autodie::test
no warnings; # Otherwise we see problems with FILE2
my $wrong_line = <FILE2>;
ok(! defined($wrong_line),q{Filehandles shouldn't leak between packages});