diff options
-rw-r--r-- | unit-tests/test/script/lexer/driver.cxx | 4 | ||||
-rw-r--r-- | unit-tests/test/script/lexer/first-token.test | 41 | ||||
-rw-r--r-- | unit-tests/test/script/lexer/second-token.test | 37 |
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 |