aboutsummaryrefslogtreecommitdiff
path: root/tests/variable/override
diff options
context:
space:
mode:
Diffstat (limited to 'tests/variable/override')
-rw-r--r--tests/variable/override/buildfile5
-rw-r--r--tests/variable/override/testscript78
2 files changed, 83 insertions, 0 deletions
diff --git a/tests/variable/override/buildfile b/tests/variable/override/buildfile
new file mode 100644
index 0000000..5831ecd
--- /dev/null
+++ b/tests/variable/override/buildfile
@@ -0,0 +1,5 @@
+# file : tests/variable/override/buildfile
+# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd
+# license : MIT; see accompanying LICENSE file
+
+./: test{testscript} $b
diff --git a/tests/variable/override/testscript b/tests/variable/override/testscript
new file mode 100644
index 0000000..9b8efdf
--- /dev/null
+++ b/tests/variable/override/testscript
@@ -0,0 +1,78 @@
+# file : tests/variable/override/testscript
+# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd
+# license : MIT; see accompanying LICENSE file
+
+.include ../../common.test
+
+: cache-invalidation
+:
+{
+ : value-version
+ :
+ $* x+=01 y+=01 <<EOI >>EOO
+ x = [string] 0
+ print $x
+
+ x = [uint64] 1
+ print $x
+
+ y = 0
+ print $y
+
+ [uint64] y = [null]
+ print $y
+ EOI
+ 001
+ 2
+ 0 01
+ 1
+ EOO
+
+ : value-position
+ :
+ $* x+=01 <<EOI >>EOO
+ x = [string] 0
+
+ print $x
+ dir/:
+ {
+ print $x
+ }
+
+ dir/: x = [uint64] 1
+
+ print $x
+ dir/:
+ {
+ print $x
+ }
+
+ EOI
+ 001
+ 001
+ 001
+ 2
+ EOO
+}
+
+: override-cached
+: Test overriding cached target type/pattern-specific prepend/append
+:
+{
+ $* x+=X <<EOI >>EOO
+ x = 0
+ file{*}: x += a
+
+ print $(file{foo}:x)
+
+ x = 1 # Should invalidate both caches.
+ print $(file{foo}:x)
+
+ file{*}: x += b # Should invalidate both caches.
+ print $(file{foo}:x)
+ EOI
+ 0 a X
+ 1 a X
+ 1 a b X
+ EOO
+}