Forgot to add the ONESHELL regression tests.
authorPaul Smith <psmith@gnu.org>
Mon, 12 Jul 2010 05:29:25 +0000 (05:29 +0000)
committerPaul Smith <psmith@gnu.org>
Mon, 12 Jul 2010 05:29:25 +0000 (05:29 +0000)
tests/scripts/targets/ONESHELL [new file with mode: 0644]

diff --git a/tests/scripts/targets/ONESHELL b/tests/scripts/targets/ONESHELL
new file mode 100644 (file)
index 0000000..5b86e48
--- /dev/null
@@ -0,0 +1,70 @@
+#                                                                    -*-perl-*-
+
+$description = "Test the behaviour of the .ONESHELL target.";
+
+$details = "";
+
+
+# Simple
+
+run_make_test(q!
+.ONESHELL:
+all:
+       a=$$$$
+       [ 0"$$a" -eq "$$$$" ] || echo fail
+!,
+              '', 'a=$$
+[ 0"$a" -eq "$$" ] || echo fail
+');
+
+# Again, but this time with inner prefix chars
+
+run_make_test(q!
+.ONESHELL:
+all:
+       a=$$$$
+       @-+    [ 0"$$a" -eq "$$$$" ] || echo fail
+!,
+              '', 'a=$$
+[ 0"$a" -eq "$$" ] || echo fail
+');
+
+# This time with outer prefix chars
+
+run_make_test(q!
+.ONESHELL:
+all:
+          @a=$$$$
+           [ 0"$$a" -eq "$$$$" ] || echo fail
+!,
+              '', '');
+
+
+# This time with outer and inner prefix chars
+
+run_make_test(q!
+.ONESHELL:
+all:
+          @a=$$$$
+           -@     +[ 0"$$a" -eq "$$$$" ] || echo fail
+!,
+              '', '');
+
+
+# Now try using a different interpreter
+
+run_make_test(q!
+.RECIPEPREFIX = >
+.ONESHELL:
+SHELL = #PERL#
+.SHELLFLAGS = -e
+all:
+>         @$$a=5
+>          +7;
+>      @y=qw(a b c);
+>print "a = $$a, \
+y = (@y)\n";
+!,
+              '', "a = 12, y = (a b c)\n");
+
+1;