lexical warnings update (warning.t fails one test
[p5sagit/p5-mst-13.2.git] / t / pragma / warn / pp_hot
1   pp_hot.c      AOK
2
3   Filehandle %s never opened
4     $f = $a = "abc" ; print $f $a
5
6   Filehandle %s opened only for input
7     print STDIN "abc" ;
8
9   Filehandle %s opened only for output
10     print <STDOUT> ;
11
12   print on closed filehandle %s
13     close STDIN ; print STDIN "abc" ;
14
15   uninitialized
16         my $a = undef ; my @b = @$a
17
18   uninitialized 
19         my $a = undef ; my %b = %$a
20
21   Odd number of elements in hash list
22         %X = (1,2,3) ;
23
24   Reference found where even-sized list expected 
25         $X = [ 1 ..3 ];
26
27   Read on closed filehandle %s
28     close STDIN ; $a = <STDIN>;
29
30   Deep recursion on subroutine \"%s\"
31      sub fred { fred() if $a++ < 200} fred()
32
33   Deep recursion on anonymous subroutine 
34      $a = sub { &$a if $a++ < 200} &$a
35
36 __END__
37 # pp_hot.c
38 use warning 'unopened' ;
39 $f = $a = "abc" ; 
40 print $f $a;
41 no warning 'unopened' ;
42 print $f $a;
43 EXPECT
44 Filehandle main::abc never opened at - line 4.
45 ########
46 # pp_hot.c
47 use warning 'io' ;
48 print STDIN "anc";
49 print <STDOUT>;
50 print <STDERR>;
51 open(FOO, ">&STDOUT") and print <FOO>;
52 print getc(STDERR);
53 print getc(FOO);
54 read(FOO,$_,1);
55 no warning 'io' ;
56 print STDIN "anc";
57 EXPECT
58 Filehandle main::STDIN opened only for input at - line 3.
59 Filehandle main::STDOUT opened only for output at - line 4.
60 Filehandle main::STDERR opened only for output at - line 5.
61 Filehandle main::FOO opened only for output at - line 6.
62 Filehandle main::STDERR opened only for output at - line 7.
63 Filehandle main::FOO opened only for output at - line 8.
64 Filehandle main::FOO opened only for output at - line 9.
65 ########
66 # pp_hot.c
67 use warning 'closed' ;
68 close STDIN ;
69 print STDIN "anc";
70 no warning 'closed' ;
71 print STDIN "anc";
72 EXPECT
73 print on closed filehandle main::STDIN at - line 4.
74 ########
75 # pp_hot.c
76 use warning 'uninitialized' ;
77 my $a = undef ;
78 my @b = @$a;
79 no warning 'uninitialized' ;
80 my @c = @$a;
81 EXPECT
82 Use of uninitialized value at - line 4.
83 ########
84 # pp_hot.c
85 use warning 'uninitialized' ;
86 my $a = undef ;
87 my %b = %$a;
88 no warning 'uninitialized' ;
89 my %c = %$a;
90 EXPECT
91 Use of uninitialized value at - line 4.
92 ########
93 # pp_hot.c
94 use warning 'unsafe' ;
95 my %X ; %X = (1,2,3) ;
96 no warning 'unsafe' ;
97 my %Y ; %Y = (1,2,3) ;
98 EXPECT
99 Odd number of elements in hash assignment at - line 3.
100 ########
101 # pp_hot.c
102 use warning 'unsafe' ;
103 my %X ; %X = [1 .. 3] ;
104 no warning 'unsafe' ;
105 my %Y ; %Y = [1 .. 3] ;
106 EXPECT
107 Reference found where even-sized list expected at - line 3.
108 ########
109 # pp_hot.c
110 use warning 'closed' ;
111 close STDIN ; $a = <STDIN> ;
112 no warning 'closed' ;
113 $a = <STDIN> ;
114 EXPECT
115 Read on closed filehandle main::STDIN at - line 3.
116 ########
117 # pp_hot.c
118 use warning 'recursion' ;
119 sub fred 
120
121     fred() if $a++ < 200
122
123 {
124   local $SIG{__WARN__} = sub {
125     die "ok\n" if $_[0] =~ /^Deep recursion on subroutine "main::fred"/
126   };
127   fred();
128 }
129 EXPECT
130 ok
131 ########
132 # pp_hot.c
133 no warning 'recursion' ;
134 sub fred 
135
136     fred() if $a++ < 200
137
138 {
139   local $SIG{__WARN__} = sub {
140     die "ok\n" if $_[0] =~ /^Deep recursion on subroutine "main::fred"/
141   };
142   fred();
143 }
144 EXPECT
145
146 ########
147 # pp_hot.c
148 use warning 'recursion' ;
149 $b = sub 
150
151     &$b if $a++ < 200
152 }  ;
153
154 &$b ;
155 EXPECT
156 Deep recursion on anonymous subroutine at - line 5.
157 ########
158 # pp_hot.c
159 no warning 'recursion' ;
160 $b = sub 
161
162     &$b if $a++ < 200
163 }  ;
164
165 &$b ;
166 EXPECT
167