aboutsummaryrefslogtreecommitdiff
path: root/unit-tests
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2016-10-26 13:38:27 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2016-11-04 09:26:35 +0200
commit616690fd06d1c5d05de97b88119dd8d328522df0 (patch)
treea7e212f33d30efb598464571b23531621064e5c9 /unit-tests
parent8fabd86e687ef9455f1b31abbe0b44876afdecab (diff)
Implement support for testscript scopes
Diffstat (limited to 'unit-tests')
-rw-r--r--unit-tests/test/script/lexer/first-token.test12
-rw-r--r--unit-tests/test/script/lexer/second-token.test2
-rw-r--r--unit-tests/test/script/parser/scope.test71
3 files changed, 78 insertions, 7 deletions
diff --git a/unit-tests/test/script/lexer/first-token.test b/unit-tests/test/script/lexer/first-token.test
index fb75c8b..a433362 100644
--- a/unit-tests/test/script/lexer/first-token.test
+++ b/unit-tests/test/script/lexer/first-token.test
@@ -2,11 +2,21 @@
#
test.arguments += first-token
-$* <";" >>EOO # semi-only
+$* <";" >>EOO # semi
;
<newline>
EOO
+$* <"{" >>EOO # lcbrace
+{
+<newline>
+EOO
+
+$* <"}" >>EOO # rcbrace
+}
+<newline>
+EOO
+
$* <"+foo" >>EOO # setup
+
'foo'
diff --git a/unit-tests/test/script/lexer/second-token.test b/unit-tests/test/script/lexer/second-token.test
index cc044dd..058dc65 100644
--- a/unit-tests/test/script/lexer/second-token.test
+++ b/unit-tests/test/script/lexer/second-token.test
@@ -2,7 +2,7 @@
#
test.arguments += second-token
-$* <";" >>EOO # semi-only
+$* <";" >>EOO # semi
;
<newline>
EOO
diff --git a/unit-tests/test/script/parser/scope.test b/unit-tests/test/script/parser/scope.test
index 4e358f3..593dbb2 100644
--- a/unit-tests/test/script/parser/scope.test
+++ b/unit-tests/test/script/parser/scope.test
@@ -12,7 +12,68 @@ wd += foo;
wd += 1;
$* foo.test <'cmd $~' >"cmd $wd" # wd
-$* -s <<EOI >>EOO # compound-2
+$* -s <<EOI >>EOO # group-empty
+{
+}
+EOI
+{
+ {
+ }
+}
+EOO
+
+$* -s <<EOI >>EOO # group
+{
+ cmd1
+ cmd2
+}
+EOI
+{
+ {
+ {
+ cmd1
+ }
+ {
+ cmd2
+ }
+ }
+}
+EOO
+
+$* <:"{x" 2>>EOE != 0 # expected-newline-lcbrace
+testscript:1:2: error: expected newline after '{'
+EOE
+
+$* <"{" 2>>EOE != 0 # expected-rcbrace
+testscript:2:1: error: expected '}' at the end of the scope
+EOE
+
+$* <<EOI 2>>EOE != 0 # expected-line-rcbrace
+{
+ cmd;
+}
+EOI
+testscript:3:1: error: expected another line after semicolon
+EOE
+
+$* <<:EOI 2>>EOE != 0 # expected-newline-rcbrace
+{
+}
+EOI
+testscript:2:2: error: expected newline after '}'
+EOE
+
+$* -s <<EOI >>EOO # test-1
+cmd1
+EOI
+{
+ {
+ cmd1
+ }
+}
+EOO
+
+$* -s <<EOI >>EOO # test-2
cmd1;
cmd2
EOI
@@ -24,7 +85,7 @@ EOI
}
EOO
-$* -s <<EOI >>EOO # compound-3
+$* -s <<EOI >>EOO # test-3
cmd1;
cmd2;
cmd3
@@ -38,7 +99,7 @@ EOI
}
EOO
-$* -s <<EOI >>EOO # compound-var
+$* -s <<EOI >>EOO # test-var
cmd1;
x = abc;
cmd2 \$x
@@ -51,7 +112,7 @@ EOI
}
EOO
-$* -s <<EOI >>EOO # compound-var-first
+$* -s <<EOI >>EOO # test-var-first
x = abc;
cmd \$x
EOI
@@ -83,7 +144,7 @@ testscript:3:1: error: test after teardown
testscript:2:1: info: last teardown line appears here
EOE
-$* <<EOI 2>>EOE != 0 # expected-line
+$* <<EOI 2>>EOE != 0 # expected-line-eof
cmd;
EOI
testscript:2:1: error: expected another line after semicolon