Commit | Line | Data |
0cff2cf3 |
1 | #!./perl |
2 | |
3 | BEGIN { |
4 | chdir 't' if -d 't'; |
5 | @INC = '../lib'; |
6 | require "../t/test.pl"; |
7 | skip_all("No perlio") unless (find PerlIO::Layer 'perlio'); |
8 | plan (16); |
9 | } |
10 | |
11 | use warnings 'layer'; |
12 | my $warn; |
13 | my $file = "fail$$"; |
14 | $SIG{__WARN__} = sub { $warn = shift }; |
15 | |
16 | END { 1 while unlink($file) } |
17 | |
18 | ok(open(FH,">",$file),"Create works"); |
19 | close(FH); |
20 | ok(open(FH,"<",$file),"Normal open works"); |
21 | |
22 | $warn = ''; $! = 0; |
23 | ok(!binmode(FH,":-)"),"All punctuation fails binmode"); |
24 | like($!,'Invalid',"Got errno"); |
25 | like($warn,qr/in layer/,"Got warning"); |
26 | |
27 | $warn = ''; $! = 0; |
28 | ok(!binmode(FH,":nonesuch"),"Bad package fails binmode"); |
29 | like($!,'No such',"Got errno"); |
30 | like($warn,qr/nonesuch/,"Got warning"); |
31 | close(FH); |
32 | |
33 | $warn = ''; $! = 0; |
34 | ok(!open(FH,"<:-)",$file),"All punctuation fails open"); |
35 | like($!,"Invalid","Got errno"); |
36 | like($warn,qr/in layer/,"Got warning"); |
37 | isnt($!,"","Got errno"); |
38 | |
39 | $warn = ''; $! = 0; |
40 | ok(!open(FH,"<:nonesuch",$file),"Bad package fails open"); |
41 | like($!,"No such","Got errno"); |
42 | like($warn,qr/nonesuch/,"Got warning"); |
43 | |
44 | ok(open(FH,"<",$file),"Normal open (still) works"); |
45 | close(FH); |