summaryrefslogtreecommitdiffstats
path: root/contrib/perl5/t/op/exec.t
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/perl5/t/op/exec.t')
-rwxr-xr-xcontrib/perl5/t/op/exec.t27
1 files changed, 20 insertions, 7 deletions
diff --git a/contrib/perl5/t/op/exec.t b/contrib/perl5/t/op/exec.t
index 098a455..23e9ec1 100755
--- a/contrib/perl5/t/op/exec.t
+++ b/contrib/perl5/t/op/exec.t
@@ -1,13 +1,13 @@
#!./perl
-# $RCSfile: exec.t,v $$Revision: 4.1 $$Date: 92/08/07 18:27:49 $
-
$| = 1; # flush stdout
+$ENV{LC_ALL} = 'C'; # Forge English error messages.
+$ENV{LANGUAGE} = 'C'; # Ditto in GNU.
+
if ($^O eq 'MSWin32') {
- print "# exec is unsupported on Win32\n";
# XXX the system tests could be written to use ./perl and so work on Win32
- print "1..0\n";
+ print "1..0 # Skip: shh, win32\n";
exit(0);
}
@@ -25,10 +25,23 @@ print "not ok 3\n" if system "echo", "ok", "3"; # directly called
# these should probably be rewritten to match the examples in perlfunc.pod
if (system "true") {print "not ok 4\n";} else {print "ok 4\n";}
-if ((system "/bin/sh -c 'exit 1'") != 256) { print "not "; }
-print "ok 5\n";
+if ($^O eq 'mpeix') {
+ print "ok 5 # skipped: status broken on MPE/iX\n";
+} else {
+ if ((system "/bin/sh -c 'exit 1'") != 256) { print "not "; }
+ print "ok 5\n";
+}
-if ((system "lskdfj") == 255 << 8) {print "ok 6\n";} else {print "not ok 6\n";}
+$rc = system "lskdfj";
+if ($rc == 255 << 8 or $rc == -1 and
+ (
+ $! == 2 or
+ $! =~ /\bno\b.*\bfile/i or
+ $! == 13 or
+ $! =~ /permission denied/i
+ )
+ )
+ {print "ok 6\n";} else {print "not ok 6\n";}
unless (exec "lskdjfalksdjfdjfkls") {print "ok 7\n";} else {print "not ok 7\n";}
OpenPOWER on IntegriCloud