diff options
Diffstat (limited to 'unit-tests/test/script/lexer')
-rw-r--r-- | unit-tests/test/script/lexer/buildfile | 2 | ||||
-rw-r--r-- | unit-tests/test/script/lexer/comment.test | 113 |
2 files changed, 114 insertions, 1 deletions
diff --git a/unit-tests/test/script/lexer/buildfile b/unit-tests/test/script/lexer/buildfile index 70be793..856d35d 100644 --- a/unit-tests/test/script/lexer/buildfile +++ b/unit-tests/test/script/lexer/buildfile @@ -8,6 +8,6 @@ import libs = libbutl%lib{butl} src = token lexer diagnostics utility variable name test/script/{token lexer} exe{driver}: cxx{driver} ../../../../build2/cxx{$src} $libs \ -test{script-line assign-line variable-line variable} +test{script-line assign-line variable-line variable comment} include ../../../../build2/ diff --git a/unit-tests/test/script/lexer/comment.test b/unit-tests/test/script/lexer/comment.test new file mode 100644 index 0000000..0092ed9 --- /dev/null +++ b/unit-tests/test/script/lexer/comment.test @@ -0,0 +1,113 @@ +# @@ This one should be moved to build2/lexer since we use base lexer +# functionality as is. +# +test.arguments += script-line + +# Single-line comments. + +$* <<EOI >>:EOO # single-only +# comment +EOI +EOO + +$* <<EOI >>EOO # single-first +# comment +foo +EOI +'foo' +<newline> +EOO + +$* <<EOI >>EOO # single-last +foo +# comment +EOI +'foo' +<newline> +EOO + +$* <<EOI >>EOO # single-few +foo +# comment +# comment +EOI +'foo' +<newline> +EOO + +$* <<EOI >>EOO # single-cont +foo +# comment\\ +bar +EOI +'foo' +<newline> +'bar' +<newline> +EOO + +$* <<EOI >>EOO # single-same +foo # comment +bar # comment +EOI +'foo' +<newline> +'bar' +<newline> +EOO + +# Multi-line comments. +# + +$* <<EOI >>:EOO # multi-only +#\\ +comment +comment +#\\ +EOI +EOO + +$* <<EOI >>:EOO # multi-empty +#\\ +#\\ +EOI +EOO + +$* <<EOI >>EOO # multi-start-same +foo #\\ +comment +comment +#\\ +EOI +'foo' +<newline> +EOO + +$* <<EOI >>EOO # multi-end-same +#\\ +comment +comment +foo #\\ +bar +EOI +'bar' +<newline> +EOO + +$* <<EOI >>EOO # multi-end-not +#\\ +comment +#\\ not an end +foo #\\ +bar +EOI +'bar' +<newline> +EOO + +$* <<EOI 2>>EOE != 0 # multi-unterm +#\\ +comment +EOI +stdin:3:1: error: unterminated multi-line comment +EOE |