diff options
Diffstat (limited to 'tests/scripts')
-rw-r--r-- | tests/scripts/targets/POSIX | 27 | ||||
-rw-r--r-- | tests/scripts/variables/SHELL | 22 |
2 files changed, 28 insertions, 21 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; diff --git a/tests/scripts/variables/SHELL b/tests/scripts/variables/SHELL index 0028d9f..7b7e7fe 100644 --- a/tests/scripts/variables/SHELL +++ b/tests/scripts/variables/SHELL @@ -58,27 +58,29 @@ one two:;@echo "$@: $(SHELL) $$SHELL" # Test .SHELLFLAGS -# We can't assume the value here: on Solaris for example, every line printed +# We don't know the output here: on Solaris for example, every line printed # by the shell in -x mode has a trailing space (!!) -my $script = 'true'; -my $out = `/bin/sh -xc '$script' 2>&1`; +my $script = 'true; true'; +my $flags = '-xc'; +my $out = `/bin/sh $flags '$script' 2>&1`; run_make_test(qq! -.SHELLFLAGS = -xc +.SHELLFLAGS = $flags all: ; \@$script !, '', $out); # We can't just use "false" because on different systems it provides a -# different exit code. - -my $script = 'r() { return 1; }; true; r; true'; -my $out = `/bin/sh -xec '$script' 2>&1`; +# different exit code--once again Solaris: false exits with 255 not 1 +$script = 'true; false; true'; +$flags = '-xec'; +$out = `/bin/sh $flags '$script' 2>&1`; +my $err = $? >> 8; run_make_test(qq! -.SHELLFLAGS = -xec +.SHELLFLAGS = $flags all: ; \@$script !, - '', "$out#MAKE#: *** [all] Error 1\n", 512); + '', "$out#MAKE#: *** [all] Error $err\n", 512); 1; |