[ID 20011126.150] t/op/pack patch to fix Useless use of unpack in void context at...
[p5sagit/p5-mst-13.2.git] / t / op / exec.t
1 #!./perl
2
3 $| = 1;                         # flush stdout
4
5 $ENV{LC_ALL}   = 'C';           # Forge English error messages.
6 $ENV{LANGUAGE} = 'C';           # Ditto in GNU.
7
8 if ($^O eq 'MSWin32' || $^O eq 'NetWare') {
9     # XXX the system tests could be written to use ./perl and so work on Win32
10     print "1..0 # Skip: shh, win32\n";
11     exit(0);
12 }
13
14 if ($^O eq 'MacOS') {
15     # XXX the system tests could be written to use ./perl and so work on Win32
16     print "1..0 # Mostly useless tests for Mac OS\n";
17     exit(0);
18 }
19
20 print "1..8\n";
21
22 if ($^O ne 'os2') {
23   print "not ok 1\n" if system "echo ok \\1";   # shell interpreted
24
25 else {
26   print "ok 1 # skipped: bug/feature of pdksh\n"; # shell interpreted
27 }
28 print "not ok 2\n" if system "echo ok 2";       # split and directly called
29 print "not ok 3\n" if system "echo", "ok", "3"; # directly called
30
31 # these should probably be rewritten to match the examples in perlfunc.pod
32 if (system "true") {print "not ok 4\n";} else {print "ok 4\n";}
33
34 if ($^O eq 'mpeix') {
35     print "ok 5 # skipped: status broken on MPE/iX\n";
36 } else {
37     if ((system "/bin/sh -c 'exit 1'") != 256) { print "not "; }
38     print "ok 5\n";
39 }
40
41 $rc = system "lskdfj";
42 if ($rc == 255 << 8 or $rc == -1 and
43      (
44       $! == 2 or
45       $! =~ /\bno\b.*\bfile/i or
46       $! == 13 or
47       $! =~ /permission denied/i
48      )
49    )
50  {print "ok 6\n";} else {print "not ok 6\n";}
51
52 unless (exec "lskdjfalksdjfdjfkls") {print "ok 7\n";} else {print "not ok 7\n";}
53
54 exec "echo","ok","8";