aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2018-02-26 09:53:46 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2018-05-03 15:23:09 +0200
commit57c4e39dcb8eb6013e22cfe82597111c5c6a55af (patch)
treeeaf81473dbda167a187f01a632d39ba2f4908c71 /tests
parent4b9de5c80934772dbc5503e65e265da452ca356a (diff)
Regularize directory target/scope-specific variable assignment syntax
Diffstat (limited to 'tests')
-rw-r--r--tests/eval/qual.test2
-rw-r--r--tests/search/dir/testscript4
-rw-r--r--tests/variable/override/testscript6
-rw-r--r--tests/variable/scope-specific/buildfile5
-rw-r--r--tests/variable/scope-specific/testscript54
-rw-r--r--tests/variable/target-specific/buildfile5
-rw-r--r--tests/variable/target-specific/testscript61
7 files changed, 131 insertions, 6 deletions
diff --git a/tests/eval/qual.test b/tests/eval/qual.test
index f6e6592..341b315 100644
--- a/tests/eval/qual.test
+++ b/tests/eval/qual.test
@@ -12,7 +12,7 @@ $* <'print (foo/dir{}: bar)' >'dir{foo/}:bar' : scope
: attribute
:
$* <'([string] foo:bar)' 2>>EOE != 0
-<stdin>:1:2: error: attributes before qualified variable name
+<stdin>:1:2: error: attributes before target-qualified variable name
EOE
: leader
diff --git a/tests/search/dir/testscript b/tests/search/dir/testscript
index 4cd368b..e9ffa6a 100644
--- a/tests/search/dir/testscript
+++ b/tests/search/dir/testscript
@@ -30,14 +30,14 @@ $* <'./: bar/' >'bar'
: existing-scope
:
$* <<EOI >'bar'
-bar/: x = y
+bar/ x = y
./: bar/
EOI
: existing-target-implied
:
$* <<EOI >'bar'
-dir{bar/}: x = y
+dir{bar/}: x = y # @@ TMP
./: bar/
EOI
diff --git a/tests/variable/override/testscript b/tests/variable/override/testscript
index 9b8efdf..3529574 100644
--- a/tests/variable/override/testscript
+++ b/tests/variable/override/testscript
@@ -34,15 +34,15 @@
x = [string] 0
print $x
- dir/:
+ dir/
{
print $x
}
- dir/: x = [uint64] 1
+ dir/ x = [uint64] 1
print $x
- dir/:
+ dir/
{
print $x
}
diff --git a/tests/variable/scope-specific/buildfile b/tests/variable/scope-specific/buildfile
new file mode 100644
index 0000000..2f3de77
--- /dev/null
+++ b/tests/variable/scope-specific/buildfile
@@ -0,0 +1,5 @@
+# file : tests/variable/scope-specific/buildfile
+# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd
+# license : MIT; see accompanying LICENSE file
+
+./: test{testscript} $b
diff --git a/tests/variable/scope-specific/testscript b/tests/variable/scope-specific/testscript
new file mode 100644
index 0000000..1f5f5fb
--- /dev/null
+++ b/tests/variable/scope-specific/testscript
@@ -0,0 +1,54 @@
+# file : tests/variable/scope-specific/testscript
+# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd
+# license : MIT; see accompanying LICENSE file
+
+.include ../../common.test
+
+: basic-line
+:
+$* <<EOI >>EOO
+x = x
+foo/ x = X
+foo/ [uint64] y=00
+print $x
+print $(foo/ x)
+print $(foo/ y)
+EOI
+x
+X
+0
+EOO
+
+: basic-block
+:
+$* <<EOI >>EOO
+x = x
+foo/
+{
+ x = X
+ [uint64] y = 00
+ print $x
+}
+print $x
+print $(foo/ y)
+EOI
+X
+x
+0
+EOO
+
+: expect-assignment
+:
+$* <<EOI 2>>EOE != 0
+foo/ [uint64] y
+EOI
+<stdin>:1:16: error: variable assignment expected instead of <newline>
+EOE
+
+: unexpected-attribute
+:
+$* <<EOI 2>>EOE != 0
+[uint64] foo/ y = 0
+EOI
+<stdin>:1:1: error: attributes before scope directory
+EOE
diff --git a/tests/variable/target-specific/buildfile b/tests/variable/target-specific/buildfile
new file mode 100644
index 0000000..5a8178b
--- /dev/null
+++ b/tests/variable/target-specific/buildfile
@@ -0,0 +1,5 @@
+# file : tests/variable/target-specific/buildfile
+# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd
+# license : MIT; see accompanying LICENSE file
+
+./: test{testscript} $b
diff --git a/tests/variable/target-specific/testscript b/tests/variable/target-specific/testscript
new file mode 100644
index 0000000..e8cc9c2
--- /dev/null
+++ b/tests/variable/target-specific/testscript
@@ -0,0 +1,61 @@
+# file : tests/variable/scope-specific/testscript
+# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd
+# license : MIT; see accompanying LICENSE file
+
+.include ../../common.test
+
+: basic-line
+:
+$* <<EOI >>EOO
+x = x
+#./: x = X @@ TMP
+dir{./}: x = X
+file{foo}: [uint64] y=00
+sub/
+{
+ file{foo}: z = Z
+}
+print $x
+print $(./: x)
+print $(file{foo}: y)
+print $(sub/file{foo}: z)
+EOI
+x
+X
+0
+Z
+EOO
+
+: eval-qual
+:
+$* <<EOI >>EOO
+print (foo:bar)
+print (foo :bar)
+print (foo: bar)
+print (foo : bar)
+print (foo/: bar)
+print (foo/file{fox}: bar)
+EOI
+foo:bar
+foo:bar
+foo:bar
+foo:bar
+foo/:bar
+foo/file{fox}:bar
+EOO
+
+: eval-qual-name-expected
+:
+$* <<EOI 2>>EOE != 0
+print (foo:)
+EOI
+<stdin>:1:12: error: expected name instead of ')'
+EOE
+
+: eval-qual-target-expected
+:
+$* <<EOI 2>>EOE != 0
+print (:foo)
+EOI
+<stdin>:1:8: error: expected target before ':'
+EOE