xref: /openbsd-src/gnu/usr.bin/perl/t/lib/warnings/doio (revision d13be5d47e4149db2549a9828e244d59dbc43f15)
1  doio.c
2
3  Can't open bidirectional pipe		[Perl_do_open9]
4    open(F, "| true |");
5
6  Missing command in piped open		[Perl_do_open9]
7    open(F, "| ");
8
9  Missing command in piped open		[Perl_do_open9]
10    open(F, " |");
11
12  warn(warn_nl, "open");		[Perl_do_open9]
13    open(F, "true\ncd")
14
15  close() on unopened filehandle %s	[Perl_do_close]
16    $a = "fred";close("$a")
17
18  tell() on closed filehandle		[Perl_do_tell]
19    $a = "fred";$a = tell($a)
20
21  seek() on closed filehandle		[Perl_do_seek]
22    $a = "fred";$a = seek($a,1,1)
23
24  sysseek() on closed filehandle	[Perl_do_sysseek]
25    $a = "fred";$a = seek($a,1,1)
26
27  warn(warn_uninit);			[Perl_do_print]
28    print $a ;
29
30  -x on closed filehandle %s 		[Perl_my_stat]
31    close STDIN ; -x STDIN ;
32
33  warn(warn_nl, "stat");		[Perl_my_stat]
34    stat "ab\ncd"
35
36  warn(warn_nl, "lstat");		[Perl_my_lstat]
37    lstat "ab\ncd"
38
39  Use of -l on filehandle %s		[Perl_my_lstat]
40
41  Can't exec \"%s\": %s 		[Perl_do_aexec5]
42
43  Can't exec \"%s\": %s 		[Perl_do_exec3]
44
45  Filehandle %s opened only for output	[Perl_do_eof]
46	my $a = eof STDOUT
47
48  Mandatory Warnings ALL TODO
49  ------------------
50  Can't do inplace edit: %s is not a regular file	[Perl_nextargv]
51     edit a directory
52
53  Can't do inplace edit: %s would not be unique		[Perl_nextargv]
54  Can't rename %s to %s: %s, skipping file		[Perl_nextargv]
55  Can't rename %s to %s: %s, skipping file		[Perl_nextargv]
56  Can't remove %s: %s, skipping file			[Perl_nextargv]
57  Can't do inplace edit on %s: %s			[Perl_nextargv]
58
59
60__END__
61# doio.c [Perl_do_open9]
62use warnings 'io' ;
63open(F, '|'."$^X -e 1|");
64close(F);
65no warnings 'io' ;
66open(G, '|'."$^X -e 1|");
67close(G);
68EXPECT
69Can't open bidirectional pipe at - line 3.
70########
71# doio.c [Perl_do_open9]
72use warnings 'io' ;
73open(F, "|      ");
74no warnings 'io' ;
75open(G, "|      ");
76EXPECT
77Missing command in piped open at - line 3.
78########
79# doio.c [Perl_do_open9]
80use warnings 'io' ;
81open(F, "      |");
82no warnings 'io' ;
83open(G, "      |");
84EXPECT
85Missing command in piped open at - line 3.
86########
87# doio.c [Perl_do_open9]
88use warnings 'io' ;
89open(F, "<true\ncd");
90no warnings 'io' ;
91open(G, "<true\ncd");
92EXPECT
93Unsuccessful open on filename containing newline at - line 3.
94########
95# doio.c [Perl_do_close] <<TODO
96use warnings 'unopened' ;
97close "fred" ;
98no warnings 'unopened' ;
99close "joe" ;
100EXPECT
101close() on unopened filehandle fred at - line 3.
102########
103# doio.c [Perl_do_tell Perl_do_seek Perl_do_sysseek Perl_my_stat]
104use warnings 'io' ;
105close STDIN ;
106tell(STDIN);
107$a = seek(STDIN,1,1);
108$a = sysseek(STDIN,1,1);
109-x STDIN ;
110stat(STDIN) ;
111$a = "fred";
112tell($a);
113seek($a,1,1);
114sysseek($a,1,1);
115-x $a; # ok
116stat($a); # ok
117no warnings 'io' ;
118close STDIN ;
119tell(STDIN);
120$a = seek(STDIN,1,1);
121$a = sysseek(STDIN,1,1);
122-x STDIN ;
123stat(STDIN) ;
124$a = "fred";
125tell($a);
126seek($a,1,1);
127sysseek($a,1,1);
128-x $a;
129stat($a);
130EXPECT
131tell() on closed filehandle STDIN at - line 4.
132seek() on closed filehandle STDIN at - line 5.
133sysseek() on closed filehandle STDIN at - line 6.
134-x on closed filehandle STDIN at - line 7.
135stat() on closed filehandle STDIN at - line 8.
136tell() on unopened filehandle at - line 10.
137seek() on unopened filehandle at - line 11.
138sysseek() on unopened filehandle at - line 12.
139########
140# doio.c [Perl_do_print]
141use warnings 'uninitialized' ;
142print $a ;
143no warnings 'uninitialized' ;
144print $b ;
145EXPECT
146Use of uninitialized value $a in print at - line 3.
147########
148# doio.c [Perl_my_stat Perl_my_lstat]
149use warnings 'io' ;
150stat "ab\ncd";
151lstat "ab\ncd";
152no warnings 'io' ;
153stat "ab\ncd";
154lstat "ab\ncd";
155EXPECT
156Unsuccessful stat on filename containing newline at - line 3.
157Unsuccessful stat on filename containing newline at - line 4.
158########
159# doio.c [Perl_my_stat]
160use warnings 'io';
161-l STDIN;
162-l $fh;
163open $fh, $0 or die "# $!";
164-l $fh;
165no warnings 'io';
166-l STDIN;
167-l $fh;
168close $fh;
169EXPECT
170Use of -l on filehandle STDIN at - line 3.
171Use of -l on filehandle $fh at - line 6.
172########
173# doio.c [Perl_do_aexec5]
174use warnings 'io' ;
175exec "lskdjfalksdjfdjfkls","" ;
176no warnings 'io' ;
177exec "lskdjfalksdjfdjfkls","" ;
178EXPECT
179OPTION regex
180Can't exec "lskdjfalksdjfdjfkls": .+
181########
182# doio.c [Perl_do_exec3]
183use warnings 'io' ;
184exec "lskdjfalksdjfdjfkls", "abc" ;
185no warnings 'io' ;
186exec "lskdjfalksdjfdjfkls", "abc" ;
187EXPECT
188OPTION regex
189Can't exec "lskdjfalksdjfdjfkls(:? abc)?": .+
190########
191# doio.c [win32_execvp]
192use warnings 'exec' ;
193exec $^X, "-e0" ;
194EXPECT
195########
196# doio.c [Perl_nextargv]
197$^W = 0 ;
198my $filename = "./temp.dir" ;
199mkdir $filename, 0777
200  or die "Cannot create directory $filename: $!\n" ;
201{
202    local (@ARGV) = ($filename) ;
203    local ($^I) = "" ;
204    my $x = <> ;
205}
206{
207    no warnings 'inplace' ;
208    local (@ARGV) = ($filename) ;
209    local ($^I) = "" ;
210    my $x = <> ;
211}
212{
213    use warnings 'inplace' ;
214    local (@ARGV) = ($filename) ;
215    local ($^I) = "" ;
216    my $x = <> ;
217}
218rmdir $filename ;
219EXPECT
220Can't do inplace edit: ./temp.dir is not a regular file at - line 9.
221Can't do inplace edit: ./temp.dir is not a regular file at - line 21.
222
223########
224# doio.c [Perl_do_eof]
225use warnings 'io' ;
226my $a = eof STDOUT ;
227no warnings 'io' ;
228$a = eof STDOUT ;
229EXPECT
230Filehandle STDOUT opened only for output at - line 3.
231########
232# doio.c [Perl_do_openn]
233use Config;
234BEGIN {
235    if ($Config{useperlio}) {
236	print <<EOM;
237SKIPPED
238# warns only without perlio
239EOM
240	exit;
241    }
242}
243use warnings 'io';
244my $x = "foo";
245open FOO, '>', \$x;
246open BAR, '>&', \*STDOUT; # should not warn
247no warnings 'io';
248open FOO, '>', \$x;
249EXPECT
250Can't open a reference at - line 14.
251########
252# doio.c [Perl_do_openn]
253use Config;
254BEGIN {
255    if (!$Config{useperlio}) {
256	print <<EOM;
257SKIPPED
258# warns only with perlio
259EOM
260	exit;
261    }
262}
263use warnings 'io' ;
264close STDOUT;
265open FH1, "harness"; close FH1;
266no warnings 'io' ;
267open FH2, "harness"; close FH2;
268EXPECT
269Filehandle STDOUT reopened as FH1 only for input at - line 14.
270########
271# doio.c [Perl_do_openn]
272use Config;
273BEGIN {
274    if (!$Config{useperlio}) {
275	print <<EOM;
276SKIPPED
277# warns only with perlio
278EOM
279	exit;
280    }
281}
282use warnings 'io' ;
283close STDIN;
284open my $fh1, ">doiowarn.tmp"; close $fh1;
285no warnings 'io' ;
286open my $fh2, ">doiowarn.tmp"; close $fh2;
287unlink "doiowarn.tmp";
288EXPECT
289Filehandle STDIN reopened as $fh1 only for output at - line 14.
290