aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2018-11-16 14:00:07 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2018-11-16 14:00:07 +0200
commit655121741560d62c1ae82c13a9d2aad18f130603 (patch)
tree6b14cd73073a0f2d1ad3ad46cc8d157a838beba9 /tests
parent17609d9831e592f5985ed1bfb1ef59f712025ae9 (diff)
Implement support for dependency chains
Now instead of: ./: exe{foo} exe{foo}: cxx{*} We can write: ./: exe{foo}: cxx{*} Or even: ./: exe{foo}: libue{foo}: cxx{*} This can be combined with prerequisite-specific variables (which naturally only apply to the last set of prerequisites in the chain): ./: exe{foo}: libue{foo}: bin.whole = false
Diffstat (limited to 'tests')
-rw-r--r--tests/dependency/chain/buildfile5
-rw-r--r--tests/dependency/chain/testscript39
-rw-r--r--tests/variable/prerequisite-specific/testscript13
3 files changed, 53 insertions, 4 deletions
diff --git a/tests/dependency/chain/buildfile b/tests/dependency/chain/buildfile
new file mode 100644
index 0000000..a27681e
--- /dev/null
+++ b/tests/dependency/chain/buildfile
@@ -0,0 +1,5 @@
+# file : tests/dependency/chain/buildfile
+# copyright : Copyright (c) 2014-2018 Code Synthesis Ltd
+# license : MIT; see accompanying LICENSE file
+
+./: testscript $b
diff --git a/tests/dependency/chain/testscript b/tests/dependency/chain/testscript
new file mode 100644
index 0000000..09ea4a6
--- /dev/null
+++ b/tests/dependency/chain/testscript
@@ -0,0 +1,39 @@
+# file : tests/dependency/chain/testscript
+# copyright : Copyright (c) 2014-2018 Code Synthesis Ltd
+# license : MIT; see accompanying LICENSE file
+
+.include ../../common.testscript
+
+: basic
+:
+$* <<EOI 2>>/~%EOE%
+./: dir{x}: dir{a}
+dump dir{x}
+EOI
+<stdin>:2:1: dump:
+% .+/dir\{x/\}: .+:dir\{a/\}%
+EOE
+
+: long
+:
+$* <<EOI 2>>/~%EOE%
+./: dir{x}: dir{y}: dir{a}
+dump dir{x} dir{y}
+EOI
+<stdin>:2:1: dump:
+% .+/dir\{x/\}: .+:dir\{y/\}%
+
+% .+/dir\{y/\}: .+:dir\{a/\}%
+EOE
+
+: multiple
+:
+$* <<EOI 2>>/~%EOE%
+./: dir{x} dir{y}: dir{a} dir{b}
+dump dir{x} dir{y}
+EOI
+<stdin>:2:1: dump:
+% .+/dir\{x/\}: .+:dir\{a/\} .+:dir\{b/\}%
+
+% .+/dir\{y/\}: .+:dir\{a/\} .+:dir\{b/\}%
+EOE
diff --git a/tests/variable/prerequisite-specific/testscript b/tests/variable/prerequisite-specific/testscript
index 1c7e7bd..ef14cfc 100644
--- a/tests/variable/prerequisite-specific/testscript
+++ b/tests/variable/prerequisite-specific/testscript
@@ -62,10 +62,15 @@ EOI
}
EOE
-: expect-assignment
+: chain
:
-$* <<EOI 2>>EOE != 0
-dir{x}: dir{a}:
+$* <<EOI 2>>/~%EOE%
+dir{x}: dir{y}: dir{a}: foo = FOO
+dump dir{y}
EOI
-<stdin>:1:16: error: expected name instead of <newline>
+<stdin>:2:1: dump:
+% .+/dir\{y/\}: .+:dir\{a/\}:%
+ {
+ foo = FOO
+ }
EOE