  pp_sys.c 	AOK

  fileno() on unopened filehandle abc		[pp_fileno]
    $a = "abc"; fileno($a)

  binmode() on unopened filehandle abc		[pp_binmode]
    $a = "abc"; fileno($a)

  printf() on unopened filehandle abc		[pp_prtf]
    $a = "abc"; printf $a "fred"

  printf() on unopened filehandle abc		[pp_prtf]
    $a = "abc"; printf $a "fred"

  Filehandle %s opened only for input		[pp_prtf]
    $a = "abc"; 
    printf $a "fred"

  printf() on closed filehandle %s		[pp_prtf]
    close STDIN ;
    printf STDIN "fred"

  syswrite() on closed filehandle %s		[pp_send]
    close STDIN; 
    syswrite STDIN, "fred", 1;

  send() on closed socket %s			[pp_send]
    close STDIN; 
    send STDIN, "fred", 1

  bind() on closed socket %s			[pp_bind]
    close STDIN; 
    bind STDIN, "fred" ;


  connect() on closed socket %s			[pp_connect]
    close STDIN; 
    connect STDIN, "fred" ;

  listen() on closed socket %s			[pp_listen]
    close STDIN; 
    listen STDIN, 2;

  accept() on closed socket %s			[pp_accept]
    close STDIN; 
    accept "fred", STDIN ;

  shutdown() on closed socket %s		[pp_shutdown]
    close STDIN; 
    shutdown STDIN, 0;

  setsockopt() on closed socket %s		[pp_ssockopt]
  getsockopt() on closed socket	%s		[pp_ssockopt]
    close STDIN; 
    setsockopt STDIN, 1,2,3;
    getsockopt STDIN, 1,2;

  getsockname() on closed socket %s		[pp_getpeername]
  getpeername() on closed socket %s		[pp_getpeername]
    close STDIN; 
    getsockname STDIN;
    getpeername STDIN;

  flock() on closed socket %s			[pp_flock]
  flock() on closed socket			[pp_flock]
    close STDIN;
    flock STDIN, 8;
    flock $a, 8;

  warn(warn_nl, "stat");			[pp_stat]

  -T on closed filehandle %s
  stat() on closed filehandle %s
	close STDIN ; -T STDIN ; stat(STDIN) ;

  warn(warn_nl, "open");			[pp_fttext]
    -T "abc\ndef" ;

  Filehandle %s opened only for output		[pp_sysread]
	my $file = "./xcv" ;
	open(F, ">$file") ; 
	my $a = sysread(F, $a,10) ;

  lstat on filehandle %s			[pp_lstat]

  getc() on unopened filehandle			[pp_getc]

  getc() on closed filehandle			[pp_getc]

  Non-string passed as bitmask			[pp_sselect]

__END__
# pp_sys.c [pp_send]
use warnings 'closed' ;
close $^STDIN; 
syswrite $^STDIN, "fred", 1;
opendir $^STDIN, ".";
syswrite $^STDIN, "fred", 1;
closedir $^STDIN;
no warnings 'closed' ;
syswrite $^STDIN, "fred", 1;
opendir $^STDIN, ".";
syswrite $^STDIN, "fred", 1;
EXPECT
syswrite() on closed filehandle STDIN at - line 4 character 1.
syswrite() on closed filehandle STDIN at - line 6 character 1.
	(Are you trying to call syswrite() on dirhandle STDIN?)
 at - line 6 character 1.
########
# pp_sys.c [pp_flock]
use Config; 
BEGIN { 
  if ( !config_value("d_flock") &&
       !config_value("d_fcntl_can_lock") &&
       !config_value("d_lockf") ) {
    print $^STDOUT, <<EOM ;
SKIPPED
# flock not present
EOM
    exit ;
  } 
}
use warnings < qw(unopened closed);
close $^STDIN;
flock $^STDIN, 8;
opendir $^STDIN, ".";
flock $^STDIN, 8;
flock \*FOO, 8;
flock $a, 8;
no warnings < qw(unopened closed);
flock $^STDIN, 8;
opendir $^STDIN, ".";
flock $^STDIN, 8;
flock \*FOO, 8;
flock $a, 8;
EXPECT
flock() on closed filehandle STDIN at - line 16 character 1.
flock() on closed filehandle STDIN at - line 18 character 1.
	(Are you trying to call flock() on dirhandle STDIN?)
 at - line 18 character 1.
flock() on unopened filehandle at - line 19 character 1.
Can't use an undefined value as a symbol reference at - line 20 character 7.
########
# pp_sys.c [pp_prtf pp_send pp_bind pp_connect pp_listen pp_accept pp_shutdown pp_ssockopt ppp_getpeername]
use warnings 'io' ;
use Config; 
BEGIN { 
  if ( $^OS_NAME ne 'VMS' and ! config_value("d_socket")) {
    print $^STDOUT, <<EOM ;
SKIPPED
# send not present
# bind not present
# connect not present
# accept not present
# shutdown not present
# setsockopt not present
# getsockopt not present
# getsockname not present
# getpeername not present
EOM
    exit ;
  } 
}
close $^STDIN; 
send $^STDIN, "fred", 1;
bind $^STDIN, "fred" ;
connect $^STDIN, "fred" ;
listen $^STDIN, 2;
accept \*fred, $^STDIN;
shutdown $^STDIN, 0;
setsockopt $^STDIN, 1,2,3;
getsockopt $^STDIN, 1,2;
getsockname $^STDIN;
getpeername $^STDIN;
opendir $^STDIN, ".";
send $^STDIN, "fred", 1;
bind $^STDIN, "fred" ;
connect $^STDIN, "fred" ;
listen $^STDIN, 2;
accept \*fred, $^STDIN;
shutdown $^STDIN, 0;
setsockopt $^STDIN, 1,2,3;
getsockopt $^STDIN, 1,2;
getsockname $^STDIN;
getpeername $^STDIN;
closedir $^STDIN;
no warnings 'io' ;
send $^STDIN, "fred", 1;
bind $^STDIN, "fred" ;
connect $^STDIN, "fred" ;
listen $^STDIN, 2;
accept $^STDIN, \*fred ;
shutdown $^STDIN, 0;
setsockopt $^STDIN, 1,2,3;
getsockopt $^STDIN, 1,2;
getsockname $^STDIN;
getpeername $^STDIN;
opendir $^STDIN, ".";
send $^STDIN, "fred", 1;
bind $^STDIN, "fred" ;
connect $^STDIN, "fred" ;
listen $^STDIN, 2;
accept \*fred, $^STDIN;
shutdown $^STDIN, 0;
setsockopt $^STDIN, 1,2,3;
getsockopt $^STDIN, 1,2;
getsockname $^STDIN;
getpeername $^STDIN;
EXPECT
send() on closed socket STDIN at - line 22 character 1.
bind() on closed socket STDIN at - line 23 character 1.
connect() on closed socket STDIN at - line 24 character 1.
listen() on closed socket STDIN at - line 25 character 1.
accept() on closed socket STDIN at - line 26 character 1.
shutdown() on closed socket STDIN at - line 27 character 1.
setsockopt() on closed socket STDIN at - line 28 character 1.
getsockopt() on closed socket STDIN at - line 29 character 1.
getsockname() on closed socket STDIN at - line 30 character 1.
getpeername() on closed socket STDIN at - line 31 character 1.
send() on closed socket STDIN at - line 33 character 1.
	(Are you trying to call send() on dirhandle STDIN?)
 at - line 33 character 1.
bind() on closed socket STDIN at - line 34 character 1.
	(Are you trying to call bind() on dirhandle STDIN?)
 at - line 34 character 1.
connect() on closed socket STDIN at - line 35 character 1.
	(Are you trying to call connect() on dirhandle STDIN?)
 at - line 35 character 1.
listen() on closed socket STDIN at - line 36 character 1.
	(Are you trying to call listen() on dirhandle STDIN?)
 at - line 36 character 1.
accept() on closed socket STDIN at - line 37 character 1.
	(Are you trying to call accept() on dirhandle STDIN?)
 at - line 37 character 1.
shutdown() on closed socket STDIN at - line 38 character 1.
	(Are you trying to call shutdown() on dirhandle STDIN?)
 at - line 38 character 1.
setsockopt() on closed socket STDIN at - line 39 character 1.
	(Are you trying to call setsockopt() on dirhandle STDIN?)
 at - line 39 character 1.
getsockopt() on closed socket STDIN at - line 40 character 1.
	(Are you trying to call getsockopt() on dirhandle STDIN?)
 at - line 40 character 1.
getsockname() on closed socket STDIN at - line 41 character 1.
	(Are you trying to call getsockname() on dirhandle STDIN?)
 at - line 41 character 1.
getpeername() on closed socket STDIN at - line 42 character 1.
	(Are you trying to call getpeername() on dirhandle STDIN?)
 at - line 42 character 1.
########
# pp_sys.c [pp_stat]
use warnings 'newline' ;
stat "abc\ndef";
no warnings 'newline' ;
stat "abc\ndef";
EXPECT
Unsuccessful stat on filename containing newline at - line 3 character 1.

########
# pp_sys.c [pp_fttext]
use warnings < qw(unopened closed) ;
close $^STDIN ; 
-T $^STDIN ;
stat($^STDIN) ;
-T \*HOCUS;
stat(\*POCUS);
no warnings < qw(unopened closed) ;
-T $^STDIN ;
stat($^STDIN);
-T \*HOCUS;
stat(\*POCUS);
EXPECT
-T on closed filehandle STDIN at - line 4 character 2.
stat() on closed filehandle STDIN at - line 5 character 1.
-T on unopened filehandle at - line 6 character 2.
stat() on unopened filehandle at - line 7 character 1.
########
# pp_sys.c [pp_fttext]
use warnings 'newline' ;
-T "abc\ndef" ;
no warnings 'newline' ;
-T "abc\ndef" ;
EXPECT
Unsuccessful open on filename containing newline at - line 3 character 2.
########
# pp_sys.c [pp_sysread]
use warnings 'io' ;
if ($^OS_NAME eq 'dos') {
    print $^STDOUT, <<EOM ;
SKIPPED
# skipped on dos
EOM
    exit ;
}
my $file = "./xcv" ;
open(my $f, ">", "$file") ; 
my $a = sysread($f, $a,10) ;
no warnings 'io' ;
my $a = sysread($f, $a,10) ;
close $f ;
use warnings 'io' ;
sysread($f, $a, 10);
read($f, $a, 10);
sysread(\*NONEXISTENT, $a, 10);
read(\*NONEXISTENT, $a, 10);
unlink $file ;
EXPECT
Filehandle opened only for output at - line 12 character 9.
sysread() on closed filehandle at - line 17 character 1.
read() on closed filehandle at - line 18 character 1.
sysread() on unopened filehandle at - line 19 character 1.
read() on unopened filehandle at - line 20 character 1.
########
# pp_sys.c [pp_binmode]
use warnings 'unopened' ;
binmode(\*BLARG);
$a = \*BLERG;binmode($a);
EXPECT
binmode() on unopened filehandle at - line 3 character 1.
binmode() on unopened filehandle at - line 4 character 14.
########
# pp_sys.c [pp_lstat]
use warnings 'io';
open my $fh, "<", "TEST" or die "# $^OS_ERROR";
lstat \*$fh;
no warnings 'io';
lstat $fh;
close $fh;
EXPECT
lstat() on filehandle  at - line 4 character 1.
########
# pp_sys.c [pp_sselect]
use warnings 'misc';
my $x = 1;
select $x, undef, undef, 1;
no warnings 'misc';
select $x, undef, undef, 1;
EXPECT
Non-string passed as bitmask at - line 4 character 1.
########
use Config;
BEGIN {
    if (!config_value("d_fchdir")) {
	print $^STDOUT, <<EOM;
SKIPPED
# fchdir not present
EOM
	exit;
    }
}
opendir \*FOO, '.'; closedir \*FOO;
open \*BAR, "<", '.'; close \*BAR;
opendir my $dh, '.'; closedir $dh;
open my $fh, "<", '.'; close $fh;
chdir \*FOO;
chdir \*BAR;
chdir $dh;
chdir $fh;
use warnings < qw(unopened closed) ;
chdir \*FOO;
chdir \*BAR;
chdir $dh;
chdir $fh;
EXPECT
chdir() on unopened filehandle at - line 20 character 1.
chdir() on closed filehandle at - line 21 character 1.
chdir() on unopened filehandle at - line 22 character 1.
chdir() on closed filehandle at - line 23 character 1.
########
# pp_sys.c [pp_open]
use warnings;
opendir my $foo, ".";
open $foo, "<", "TEST";
no warnings < qw(io deprecated);
open $foo, "<", "TEST";
EXPECT
Opening dirhandle $foo also as a file at - line 4 character 1.
########
# pp_sys.c [pp_open_dir]
use warnings;
open my $foo, "<", "TEST";
opendir $foo, ".";
no warnings < qw(io deprecated);
opendir $foo, ".";
EXPECT
Opening filehandle $foo also as a directory at - line 4 character 1.
########
