aboutsummaryrefslogtreecommitdiff
path: root/unit-tests/test/script
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2016-10-25 07:46:08 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2016-11-04 09:26:35 +0200
commite3ff4880273746c34d07e641110abaf38a1f1fca (patch)
tree2d8243a21c4b6f1415583f81b7fbc3095354a764 /unit-tests/test/script
parent52682b19b9e9055e99bb5f1988ae7764fa0e7158 (diff)
Add tests for first_token, second_token testscript lexer modes
Diffstat (limited to 'unit-tests/test/script')
-rw-r--r--unit-tests/test/script/lexer/driver.cxx4
-rw-r--r--unit-tests/test/script/lexer/first-token.test41
-rw-r--r--unit-tests/test/script/lexer/second-token.test37
3 files changed, 79 insertions, 3 deletions
diff --git a/unit-tests/test/script/lexer/driver.cxx b/unit-tests/test/script/lexer/driver.cxx
index bda21e4..c5beebb 100644
--- a/unit-tests/test/script/lexer/driver.cxx
+++ b/unit-tests/test/script/lexer/driver.cxx
@@ -30,8 +30,8 @@ namespace build2
string s (argv[1]);
if (s == "script-line") m = lexer_mode::script_line;
- else if (s == "first-token") m = lexer_mode::second_token;
- else if (s == "second-token") m = lexer_mode::first_token;
+ else if (s == "first-token") m = lexer_mode::first_token;
+ else if (s == "second-token") m = lexer_mode::second_token;
else if (s == "variable-line") m = lexer_mode::variable_line;
else if (s == "command-line") m = lexer_mode::command_line;
else if (s == "here-line") m = lexer_mode::here_line;
diff --git a/unit-tests/test/script/lexer/first-token.test b/unit-tests/test/script/lexer/first-token.test
index a665fed..fb75c8b 100644
--- a/unit-tests/test/script/lexer/first-token.test
+++ b/unit-tests/test/script/lexer/first-token.test
@@ -6,3 +6,44 @@ $* <";" >>EOO # semi-only
;
<newline>
EOO
+
+$* <"+foo" >>EOO # setup
++
+'foo'
+<newline>
+EOO
+
+$* <"- foo" >>EOO # tdown
+-
+'foo'
+<newline>
+EOO
+
+$* <"foo+bar" >>EOO # plus-leading
+'foo+bar'
+<newline>
+EOO
+
+$* <"foo- x" >>EOO # minus-leading
+'foo-'
+'x'
+<newline>
+EOO
+
+$* <"foo=" >>EOO # assign
+'foo'
+'='
+<newline>
+EOO
+
+$* <"foo+=" >>EOO # append
+'foo'
+'+='
+<newline>
+EOO
+
+$* <"foo=+" >>EOO # prepend
+'foo'
+'=+'
+<newline>
+EOO
diff --git a/unit-tests/test/script/lexer/second-token.test b/unit-tests/test/script/lexer/second-token.test
index a665fed..cc044dd 100644
--- a/unit-tests/test/script/lexer/second-token.test
+++ b/unit-tests/test/script/lexer/second-token.test
@@ -1,8 +1,43 @@
# Note: this mode auto-expires after each token.
#
-test.arguments += first-token
+test.arguments += second-token
$* <";" >>EOO # semi-only
;
<newline>
EOO
+
+$* <"=foo" >>EOO # assign
+=
+'foo'
+<newline>
+EOO
+
+$* <"+= foo" >>EOO # append
++=
+'foo'
+<newline>
+EOO
+
+$* <" =+ foo" >>EOO # prepend
+=+
+'foo'
+<newline>
+EOO
+
+$* <"foo=bar" >>EOO # assign-leading
+'foo=bar'
+<newline>
+EOO
+
+$* <"foo+= bar" >>EOO # append-leading
+'foo+='
+'bar'
+<newline>
+EOO
+
+$* <"foo =+bar" >>EOO # prepend-leading
+'foo'
+'=+bar'
+<newline>
+EOO