doio revision 7c478bd95313f5f23a4c958a745db2134aa03244
doio.c
Can't open bidirectional pipe [Perl_do_open9]
open(F, "| true |");
Missing command in piped open [Perl_do_open9]
open(F, "| ");
Missing command in piped open [Perl_do_open9]
open(F, " |");
warn(warn_nl, "open"); [Perl_do_open9]
open(F, "true\ncd")
close() on unopened filehandle %s [Perl_do_close]
$a = "fred";close("$a")
tell() on closed filehandle [Perl_do_tell]
$a = "fred";$a = tell($a)
seek() on closed filehandle [Perl_do_seek]
$a = "fred";$a = seek($a,1,1)
sysseek() on closed filehandle [Perl_do_sysseek]
$a = "fred";$a = seek($a,1,1)
warn(warn_uninit); [Perl_do_print]
print $a ;
-x on closed filehandle %s [Perl_my_stat]
close STDIN ; -x STDIN ;
warn(warn_nl, "stat"); [Perl_my_stat]
stat "ab\ncd"
warn(warn_nl, "lstat"); [Perl_my_lstat]
lstat "ab\ncd"
Use of -l on filehandle %s [Perl_my_lstat]
Can't exec \"%s\": %s [Perl_do_aexec5]
Can't exec \"%s\": %s [Perl_do_exec3]
Filehandle %s opened only for output [Perl_do_eof]
my $a = eof STDOUT
Mandatory Warnings ALL TODO
------------------
Can't do inplace edit: %s is not a regular file [Perl_nextargv]
edit a directory
Can't do inplace edit: %s would not be unique [Perl_nextargv]
Can't rename %s to %s: %s, skipping file [Perl_nextargv]
Can't rename %s to %s: %s, skipping file [Perl_nextargv]
Can't remove %s: %s, skipping file [Perl_nextargv]
Can't do inplace edit on %s: %s [Perl_nextargv]
__END__
# doio.c [Perl_do_open9]
use warnings 'io' ;
open(F, '|'.($^O eq 'VMS' ? 'mcr ':'')."$^X -e 1|");
close(F);
no warnings 'io' ;
open(G, '|'.($^O eq 'VMS' ? 'mcr ':'')."$^X -e 1|");
close(G);
EXPECT
Can't open bidirectional pipe at - line 3.
########
# doio.c [Perl_do_open9]
use warnings 'io' ;
open(F, "| ");
no warnings 'io' ;
open(G, "| ");
EXPECT
Missing command in piped open at - line 3.
########
# doio.c [Perl_do_open9]
use warnings 'io' ;
open(F, " |");
no warnings 'io' ;
open(G, " |");
EXPECT
Missing command in piped open at - line 3.
########
# doio.c [Perl_do_open9]
use warnings 'io' ;
open(F, "<true\ncd");
no warnings 'io' ;
open(G, "<true\ncd");
EXPECT
Unsuccessful open on filename containing newline at - line 3.
########
# doio.c [Perl_do_close] <<TODO
use warnings 'unopened' ;
close "fred" ;
no warnings 'unopened' ;
close "joe" ;
EXPECT
close() on unopened filehandle fred at - line 3.
########
# doio.c [Perl_do_tell Perl_do_seek Perl_do_sysseek Perl_my_stat]
use warnings 'io' ;
close STDIN ;
tell(STDIN);
$a = seek(STDIN,1,1);
$a = sysseek(STDIN,1,1);
-x STDIN ;
stat(STDIN) ;
$a = "fred";
tell($a);
seek($a,1,1);
sysseek($a,1,1);
-x $a; # ok
stat($a); # ok
no warnings 'io' ;
close STDIN ;
tell(STDIN);
$a = seek(STDIN,1,1);
$a = sysseek(STDIN,1,1);
-x STDIN ;
stat(STDIN) ;
$a = "fred";
tell($a);
seek($a,1,1);
sysseek($a,1,1);
-x $a;
stat($a);
EXPECT
tell() on closed filehandle STDIN at - line 4.
seek() on closed filehandle STDIN at - line 5.
sysseek() on closed filehandle STDIN at - line 6.
-x on closed filehandle STDIN at - line 7.
stat() on closed filehandle STDIN at - line 8.
tell() on unopened filehandle at - line 10.
seek() on unopened filehandle at - line 11.
sysseek() on unopened filehandle at - line 12.
########
# doio.c [Perl_do_print]
use warnings 'uninitialized' ;
print $a ;
no warnings 'uninitialized' ;
print $b ;
EXPECT
Use of uninitialized value in print at - line 3.
########
# doio.c [Perl_my_stat Perl_my_lstat]
use warnings 'io' ;
stat "ab\ncd";
lstat "ab\ncd";
no warnings 'io' ;
stat "ab\ncd";
lstat "ab\ncd";
EXPECT
Unsuccessful stat on filename containing newline at - line 3.
Unsuccessful stat on filename containing newline at - line 4.
########
# doio.c [Perl_my_stat]
use warnings 'io';
-l STDIN;
-l $fh;
open $fh, $0 or die "# $!";
-l $fh;
no warnings 'io';
-l STDIN;
-l $fh;
close $fh;
EXPECT
Use of -l on filehandle STDIN at - line 3.
Use of -l on filehandle $fh at - line 6.
########
# doio.c [Perl_do_aexec5]
BEGIN {
if ($^O eq 'MacOS') {
print <<EOM;
SKIPPED
# no exec on Mac OS
EOM
exit;
}
}
use warnings 'io' ;
exec "lskdjfalksdjfdjfkls","" ;
no warnings 'io' ;
exec "lskdjfalksdjfdjfkls","" ;
EXPECT
OPTION regex
Can't exec "lskdjfalksdjfdjfkls": .+
########
# doio.c [Perl_do_exec3]
BEGIN {
if ($^O eq 'MacOS') {
print <<EOM;
SKIPPED
# no exec on Mac OS
EOM
exit;
}
}
use warnings 'io' ;
exec "lskdjfalksdjfdjfkls", "abc" ;
no warnings 'io' ;
exec "lskdjfalksdjfdjfkls", "abc" ;
EXPECT
OPTION regex
Can't exec "lskdjfalksdjfdjfkls(:? abc)?": .+
########
# doio.c [win32_execvp]
BEGIN {
if ($^O eq 'MacOS') {
print <<EOM;
SKIPPED
# no exec on Mac OS
EOM
exit;
}
}
use warnings 'exec' ;
exec $^X, "-e0" ;
EXPECT
########
# doio.c [Perl_nextargv]
$^W = 0 ;
my $filename = "./temp.dir" ;
mkdir $filename, 0777
or die "Cannot create directory $filename: $!\n" ;
{
local (@ARGV) = ($filename) ;
local ($^I) = "" ;
my $x = <> ;
}
{
no warnings 'inplace' ;
local (@ARGV) = ($filename) ;
local ($^I) = "" ;
my $x = <> ;
}
{
use warnings 'inplace' ;
local (@ARGV) = ($filename) ;
local ($^I) = "" ;
my $x = <> ;
}
rmdir $filename ;
EXPECT
Can't do inplace edit: ./temp.dir is not a regular file at - line 9.
Can't do inplace edit: ./temp.dir is not a regular file at - line 21.
########
# doio.c [Perl_do_eof]
use warnings 'io' ;
my $a = eof STDOUT ;
no warnings 'io' ;
$a = eof STDOUT ;
EXPECT
Filehandle STDOUT opened only for output at - line 3.
########
# doio.c [Perl_do_openn]
use Config;
BEGIN {
if ($Config{useperlio}) {
print <<EOM;
SKIPPED
# warns only without perlio
EOM
exit;
}
}
use warnings 'io';
my $x = "foo";
open FOO, '>', \$x;
open BAR, '>&', \*STDOUT; # should not warn
no warnings 'io';
open FOO, '>', \$x;
EXPECT
Can't open a reference at - line 14.
########
# doio.c [Perl_do_openn]
use Config;
BEGIN {
if (!$Config{useperlio}) {
print <<EOM;
SKIPPED
# warns only with perlio
EOM
exit;
}
}
use warnings 'io' ;
close STDOUT;
open FH1, "harness"; close FH1;
no warnings 'io' ;
open FH2, "harness"; close FH2;
EXPECT
Filehandle STDOUT reopened as FH1 only for input at - line 14.
########
# doio.c [Perl_do_openn]
use Config;
BEGIN {
if (!$Config{useperlio}) {
print <<EOM;
SKIPPED
# warns only with perlio
EOM
exit;
}
}
use warnings 'io' ;
close STDIN;
open my $fh1, ">doiowarn.tmp"; close $fh1;
no warnings 'io' ;
open my $fh2, ">doiowarn.tmp"; close $fh2;
unlink "doiowarn.tmp";
EXPECT
Filehandle STDIN reopened as $fh1 only for output at - line 14.