aboutsummaryrefslogtreecommitdiff
path: root/tests/variable
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2016-04-05 12:53:45 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2016-04-05 12:53:45 +0200
commit77e7dc1ac70976e39f2bd3bb91f49ab1f25ef524 (patch)
treec3a1e736c326473bd611b4c0bc74d45b2f9beb76 /tests/variable
parent86cdcdcf11982281aa286682faf604cff3b1c7d1 (diff)
Add support for scope/target-qualified variable expansion
For example: print $(dir/:var) print $(file{target}:var) print $(dir/file{target}:var) Note that if the scope/target does not (yet) exists, it will be created.
Diffstat (limited to 'tests/variable')
-rw-r--r--tests/variable/qualified/buildfile27
-rw-r--r--tests/variable/qualified/test.out12
-rwxr-xr-xtests/variable/qualified/test.sh3
3 files changed, 42 insertions, 0 deletions
diff --git a/tests/variable/qualified/buildfile b/tests/variable/qualified/buildfile
new file mode 100644
index 0000000..90e75c7
--- /dev/null
+++ b/tests/variable/qualified/buildfile
@@ -0,0 +1,27 @@
+#v = (:bar) # error: expected name instead of ':'
+#v = (foo:) # error: scope/target expected after ':'
+
+print (foo:bar)
+print (foo :bar)
+print (foo: bar)
+print (foo : bar)
+print (foo/: bar)
+print (foo/file{fox}: bar)
+
+bar=bar
+sub/:
+{
+ bar=Bar
+ fsdir{./}: bar=BAR
+ file{x}: bar=BBAARR
+}
+
+print $(./:bar)
+print $(sub/:bar)
+print $(fsdir{sub/}:bar)
+print $(sub/file{x}:bar)
+
+print $(sub/file{y}:bar)
+print $(sup/:bar)
+
+./:
diff --git a/tests/variable/qualified/test.out b/tests/variable/qualified/test.out
new file mode 100644
index 0000000..5bf062e
--- /dev/null
+++ b/tests/variable/qualified/test.out
@@ -0,0 +1,12 @@
+foo:bar
+foo:bar
+foo:bar
+foo:bar
+foo/:bar
+foo/file{fox}:bar
+bar
+Bar
+BAR
+BBAARR
+Bar
+bar
diff --git a/tests/variable/qualified/test.sh b/tests/variable/qualified/test.sh
new file mode 100755
index 0000000..afcb3bd
--- /dev/null
+++ b/tests/variable/qualified/test.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+b -q | diff -u test.out -