diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2017-01-04 17:44:39 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2017-01-04 17:44:39 +0200 |
commit | a63e1809afd9a837821d6e8376cb14a36e7fc26e (patch) | |
tree | 92a79a14dbab94c7893dee8994d03ab645690852 /unit-tests | |
parent | aab54ca12373bc7df1323017e4fb0b9594dcb835 (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')
-rw-r--r-- | unit-tests/test/script/lexer/first-token.test | 5 | ||||
-rw-r--r-- | unit-tests/test/script/parser/buildfile | 6 | ||||
-rw-r--r-- | unit-tests/test/script/parser/directive.test | 70 | ||||
-rw-r--r-- | unit-tests/test/script/parser/include.test | 50 |
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 |