summaryrefslogtreecommitdiff
path: root/tests/scripts/functions/shell
diff options
context:
space:
mode:
Diffstat (limited to 'tests/scripts/functions/shell')
-rw-r--r--tests/scripts/functions/shell32
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/scripts/functions/shell b/tests/scripts/functions/shell
new file mode 100644
index 0000000..723cd0e
--- /dev/null
+++ b/tests/scripts/functions/shell
@@ -0,0 +1,32 @@
+# -*-perl-*-
+
+$description = 'Test the $(shell ...) function.';
+
+$details = '';
+
+
+# Test shells inside rules.
+run_make_test('.PHONY: all
+all: ; @echo $(shell echo hi)
+','','hi');
+
+
+# Test unescaped comment characters in shells. Savannah bug #20513
+if ($all_tests) {
+ run_make_test(q!
+FOO := $(shell echo '#')
+foo: ; echo '$(FOO)'
+!,
+ '', "#\n");
+}
+
+# Test shells inside exported environment variables.
+# This is the test that fails if we try to put make exported variables into
+# the environment for a $(shell ...) call.
+run_make_test('
+export HI = $(shell echo hi)
+.PHONY: all
+all: ; @echo $$HI
+','','hi');
+
+1;