This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Test case for C<undef %File::Glob::>
[perl5.git] / t / op / exec.t
CommitLineData
8d063cd8
LW
1#!./perl
2
8d063cd8 3$| = 1; # flush stdout
68dc0745 4
9429f27a
JH
5$ENV{LC_ALL} = 'C'; # Forge English error messages.
6$ENV{LANGUAGE} = 'C'; # Ditto in GNU.
7
68dc0745 8if ($^O eq 'MSWin32') {
1d3434b8 9 # XXX the system tests could be written to use ./perl and so work on Win32
45c0de28 10 print "1..0 # Skip: shh, win32\n";
68dc0745 11 exit(0);
12}
13
378cc40b 14print "1..8\n";
8d063cd8 15
ec40c0cd
IZ
16if ($^O ne 'os2') {
17 print "not ok 1\n" if system "echo ok \\1"; # shell interpreted
18}
19else {
20 print "ok 1 # skipped: bug/feature of pdksh\n"; # shell interpreted
21}
378cc40b
LW
22print "not ok 2\n" if system "echo ok 2"; # split and directly called
23print "not ok 3\n" if system "echo", "ok", "3"; # directly called
8d063cd8 24
1d3434b8 25# these should probably be rewritten to match the examples in perlfunc.pod
378cc40b
LW
26if (system "true") {print "not ok 4\n";} else {print "ok 4\n";}
27
0994c4d0
JH
28if ($^O eq 'mpeix') {
29 print "ok 5 # skipped: status broken on MPE/iX\n";
30} else {
31 if ((system "/bin/sh -c 'exit 1'") != 256) { print "not "; }
32 print "ok 5\n";
33}
378cc40b 34
d5a9bfb0 35$rc = system "lskdfj";
9429f27a
JH
36if ($rc == 255 << 8 or $rc == -1 and
37 (
38 $! == 2 or
39 $! =~ /\bno\b.*\bfile/i or
40 $! == 13 or
41 $! =~ /permission denied/i
42 )
43 )
d5a9bfb0 44 {print "ok 6\n";} else {print "not ok 6\n";}
378cc40b
LW
45
46unless (exec "lskdjfalksdjfdjfkls") {print "ok 7\n";} else {print "not ok 7\n";}
47
48exec "echo","ok","8";