summaryrefslogtreecommitdiff
path: root/tests/scripts/variables
diff options
context:
space:
mode:
authorPaul Smith <psmith@gnu.org>2010-07-19 07:10:53 +0000
committerPaul Smith <psmith@gnu.org>2010-07-19 07:10:53 +0000
commitfba20a776da6d4a36db21d9b21e9e937bef00ac3 (patch)
tree4cf2063962595ca40234d4832a00f7eeb7ebb321 /tests/scripts/variables
parentdf2fa7c5a5726b4e0a50e0eff209a3518ab19603 (diff)
downloadgunmake-fba20a776da6d4a36db21d9b21e9e937bef00ac3.tar.gz
- Many fixup patches from Savannah.
- Fix the test suite on Solaris (from Boris) - Update the manual for .ONESHELL
Diffstat (limited to 'tests/scripts/variables')
-rw-r--r--tests/scripts/variables/SHELL23
1 files changed, 17 insertions, 6 deletions
diff --git a/tests/scripts/variables/SHELL b/tests/scripts/variables/SHELL
index 69871d2..0028d9f 100644
--- a/tests/scripts/variables/SHELL
+++ b/tests/scripts/variables/SHELL
@@ -58,16 +58,27 @@ one two:;@echo "$@: $(SHELL) $$SHELL"
# Test .SHELLFLAGS
-run_make_test(q!
+# We can't assume the value 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`;
+
+run_make_test(qq!
.SHELLFLAGS = -xc
-all: ; @true
+all: ; \@$script
!,
- '', "+ true\n");
+ '', $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`;
-run_make_test(q!
+run_make_test(qq!
.SHELLFLAGS = -xec
-all: ; @true; false; true
+all: ; \@$script
!,
- '', "+ true\n+ false\n#MAKE#: *** [all] Error 1\n", 512);
+ '', "$out#MAKE#: *** [all] Error 1\n", 512);
1;