aboutsummaryrefslogtreecommitdiff
path: root/unit-tests/test
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2017-01-04 17:44:39 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2017-01-04 17:44:39 +0200
commita63e1809afd9a837821d6e8376cb14a36e7fc26e (patch)
tree92a79a14dbab94c7893dee8994d03ab645690852 /unit-tests/test
parentaab54ca12373bc7df1323017e4fb0b9594dcb835 (diff)
Treat any testscript line that starts with dot as directive
Even though we currently only recognize the include directive, we reserve any line that begins with a dot for future.
Diffstat (limited to 'unit-tests/test')
-rw-r--r--unit-tests/test/script/lexer/first-token.test5
-rw-r--r--unit-tests/test/script/parser/buildfile6
-rw-r--r--unit-tests/test/script/parser/directive.test70
-rw-r--r--unit-tests/test/script/parser/include.test50
4 files changed, 79 insertions, 52 deletions
diff --git a/unit-tests/test/script/lexer/first-token.test b/unit-tests/test/script/lexer/first-token.test
index d42e0b2..8a6d39b 100644
--- a/unit-tests/test/script/lexer/first-token.test
+++ b/unit-tests/test/script/lexer/first-token.test
@@ -2,6 +2,11 @@
#
test.arguments = first-token
+$* <"." >>EOO # dot
+.
+<newline>
+EOO
+
$* <";" >>EOO # semi
;
<newline>
diff --git a/unit-tests/test/script/parser/buildfile b/unit-tests/test/script/parser/buildfile
index db75a4f..41fe34d 100644
--- a/unit-tests/test/script/parser/buildfile
+++ b/unit-tests/test/script/parser/buildfile
@@ -15,8 +15,8 @@ test/{target script/{token lexer parser regex script}} \
scheduler
exe{driver}: cxx{driver} ../../../../build2/cxx{$src} $libs \
-test{cleanup command-if command-re-parse description exit expansion \
- here-document here-string include pipe-expr pre-parse redirect \
- scope scope-if setup-teardown}
+test{cleanup command-if command-re-parse description directive exit \
+ expansion here-document here-string include pipe-expr pre-parse \
+ redirect scope scope-if setup-teardown}
include ../../../../build2/
diff --git a/unit-tests/test/script/parser/directive.test b/unit-tests/test/script/parser/directive.test
new file mode 100644
index 0000000..07cb65c
--- /dev/null
+++ b/unit-tests/test/script/parser/directive.test
@@ -0,0 +1,70 @@
+: not-directive
+:
+$* <<EOI >>EOO
+x = x
+".include" foo.test
+\.include foo.test
+EOI
+.include foo.test
+.include foo.test
+EOO
+
+: expected-name
+:
+$* <<EOI 2>>EOE != 0
+.$
+EOI
+testscript:1:2: error: expected directive name instead of '$'
+EOE
+
+: unknown-name
+:
+$* <<EOI 2>>EOE != 0
+.bogus
+EOI
+testscript:1:2: error: unknown directive 'bogus'
+EOE
+
+: separated
+:
+touch foo.test;
+$* <<EOI
+. include foo.test
+EOI
+
+: not-separated
+:
+touch foo.test;
+$* <<EOI
+x = foo.test
+.include$x
+EOI
+
+: var-expansion
+:
+cat <<EOI >>>"foo-$(build.version).test";
+cmd
+EOI
+$* <<EOI >>EOO
+.include "foo-$(build.version).test"
+EOI
+cmd
+EOO
+
+: after-semi
+:
+$* <<EOI 2>>EOE != 0
+cmd;
+.include foo.test
+EOI
+testscript:2:1: error: directive after ';'
+EOE
+
+: semi-after
+:
+$* <<EOI 2>>EOE != 0
+.include foo.test;
+cmd
+EOI
+testscript:1:18: error: ';' after directive
+EOE
diff --git a/unit-tests/test/script/parser/include.test b/unit-tests/test/script/parser/include.test
index 1639d37..7910919 100644
--- a/unit-tests/test/script/parser/include.test
+++ b/unit-tests/test/script/parser/include.test
@@ -1,22 +1,3 @@
-: not-directive
-:
-$* <<EOI >>EOO
-x = x
-".include" foo.test
-.include'' foo.test
-EOI
-.include foo.test
-.include foo.test
-EOO
-
-: not-separated
-:
-touch foo.test;
-$* <<EOI
-x = foo.test
-.include$x
-EOI
-
: none
:
$* <<EOI
@@ -102,41 +83,12 @@ EOI
}
EOO
-: var-expansion
-:
-cat <<EOI >>>"foo-$(build.version).test";
-cmd
-EOI
-$* <<EOI >>EOO
-.include "foo-$(build.version).test"
-EOI
-cmd
-EOO
-
-: after-semi
-:
-$* <<EOI 2>>EOE != 0
-cmd;
-.include foo.test
-EOI
-testscript:2:1: error: directive after ';'
-EOE
-
-: semi-after
-:
-$* <<EOI 2>>EOE != 0
-.include foo.test;
-cmd
-EOI
-testscript:1:18: error: ';' after directive
-EOE
-
: invalid-path
:
$* <<EOI 2>>EOE != 0
.include ""
EOI
-testscript:1:1: error: invalid testscript include path ''
+testscript:1:2: error: invalid testscript include path ''
EOE
: unable-open