This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Re: updated patch on the sysread, syswrite for VMS
[perl5.git] / t / op / magic.t
CommitLineData
8d063cd8
LW
1#!./perl
2
79072805 3# $RCSfile: magic.t,v $$Revision: 4.1 $$Date: 92/08/07 18:28:05 $
8d063cd8
LW
4
5$| = 1; # command buffering
6
ed6116ce 7print "1..6\n";
378cc40b
LW
8
9eval '$ENV{"foo"} = "hi there";'; # check that ENV is inited inside eval
8d063cd8
LW
10if (`echo \$foo` eq "hi there\n") {print "ok 1\n";} else {print "not ok 1\n";}
11
bf38876a 12unlink 'ajslkdfpqjsjfk';
8d063cd8 13$! = 0;
bf38876a 14open(foo,'ajslkdfpqjsjfk');
a0d0e21e 15if ($!) {print "ok 2\n";} else {print "not ok 2\n";}
8d063cd8 16
378cc40b
LW
17# the next tests are embedded inside system simply because sh spits out
18# a newline onto stderr when a child process kills itself with SIGINT.
19
79072805 20system './perl', '-e', <<'END';
378cc40b 21
79072805 22 $| = 1; # command buffering
378cc40b 23
79072805
LW
24 $SIG{"INT"} = "ok3"; kill "INT",$$;
25 $SIG{"INT"} = "IGNORE"; kill 2,$$; print "ok 4\n";
26 $SIG{"INT"} = "DEFAULT"; kill 2,$$; print "not ok\n";
27
28 sub ok3 {
29 if (($x = pop(@_)) eq "INT") {
30 print "ok 3\n";
31 }
32 else {
652ed9f8 33 print "not ok 3 ($x @_)\n";
79072805
LW
34 }
35 }
36
37END
a687059c
LW
38
39@val1 = @ENV{keys(%ENV)}; # can we slice ENV?
40@val2 = values(%ENV);
41
42print join(':',@val1) eq join(':',@val2) ? "ok 5\n" : "not ok 5\n";
ed6116ce
LW
43
44print @val1 > 1 ? "ok 6\n" : "not ok 6\n";
45