xref: /openbsd-src/gnu/usr.bin/perl/lib/File/stat-7896.t (revision 91f110e064cd7c194e59e019b83bb7496c1c84d4)
1*91f110e0Safresh1#!./perl -w
2*91f110e0Safresh1use strict;
3*91f110e0Safresh1
4*91f110e0Safresh1use Test::More;
5*91f110e0Safresh1use File::stat;
6*91f110e0Safresh1
7*91f110e0Safresh1# This is possibly a bit black-box, but for now it works.
8*91f110e0Safresh1# If (either) File::stat stops lazy loading Symbol, or Test::More starts, it
9*91f110e0Safresh1# should be revisited
10*91f110e0Safresh1is($INC{'Symbol.pm'}, undef, "Symbol isn't loaded yet");
11*91f110e0Safresh1
12*91f110e0Safresh1# ID 20011110.104 (RT #7896)
13*91f110e0Safresh1$! = 0;
14*91f110e0Safresh1is($!, '', '$! is empty');
15*91f110e0Safresh1is(File::stat::stat('/notafile'), undef, 'invalid file should fail');
16*91f110e0Safresh1isnt($!, '', 'should populate $!, given invalid file');
17*91f110e0Safresh1my $e = $!;
18*91f110e0Safresh1
19*91f110e0Safresh1isnt($INC{'Symbol.pm'}, undef, "Symbol has been loaded");
20*91f110e0Safresh1
21*91f110e0Safresh1# Repeat twice
22*91f110e0Safresh1is(File::stat::stat('/notafile'), undef, 'invalid file should fail again');
23*91f110e0Safresh1is($!, $e, '$! should be consistent for an invalid file');
24*91f110e0Safresh1$e = $!;
25*91f110e0Safresh1is(File::stat::stat('/notafile'), undef, 'invalid file should fail again');
26*91f110e0Safresh1is($!, $e, '$! should be consistent for an invalid file');
27*91f110e0Safresh1
28*91f110e0Safresh1done_testing();
29