diff options
Diffstat (limited to 'tests/scripts/targets/POSIX')
-rw-r--r-- | tests/scripts/targets/POSIX | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/tests/scripts/targets/POSIX b/tests/scripts/targets/POSIX index 1b57448..9c30e18 100644 --- a/tests/scripts/targets/POSIX +++ b/tests/scripts/targets/POSIX @@ -6,23 +6,28 @@ $details = ""; # Ensure turning on .POSIX enables the -e flag for the shell -# We can't just use "false" because on different systems it provides a -# different exit code. - -run_make_test(q! +# We can't assume the exit value of "false" because on different systems it's +# different. + +my $script = 'false; true'; +my $flags = '-ec'; +my $out = `/bin/sh $flags '$script' 2>&1`; +my $err = $? >> 8; +run_make_test(qq! .POSIX: -all: ; @r() { return 1; }; r; true +all: ; \@$script !, - '', "#MAKE#: *** [all] Error 1\n", 512); + '', "#MAKE#: *** [all] Error $err\n", 512); # User settings must override .POSIX - -run_make_test(q! -.SHELLFLAGS = -xc +$flags = '-xc'; +$out = `/bin/sh $flags '$script' 2>&1`; +run_make_test(qq! +.SHELLFLAGS = $flags .POSIX: -all: ; @r() { return 1; }; r; true +all: ; \@$script !, - '', "+ r\n+ return 1\n+ true\n"); + '', $out); # This tells the test driver that the perl test script executed properly. 1; |