diff options
Diffstat (limited to 'unit-tests/cc/lexer/raw-string-literal.test')
-rw-r--r-- | unit-tests/cc/lexer/raw-string-literal.test | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/unit-tests/cc/lexer/raw-string-literal.test b/unit-tests/cc/lexer/raw-string-literal.test new file mode 100644 index 0000000..e8e8b6b --- /dev/null +++ b/unit-tests/cc/lexer/raw-string-literal.test @@ -0,0 +1,90 @@ +# file : unit-tests/cc/lexer/raw-string-literal.test +# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd +# license : MIT; see accompanying LICENSE file + +# Test raw string literals. +# + +: normal +: +$* <<EOI >>EOO +R"()" +R"(ab)" +R"(a"b)" +R"(a)b)" +R"%(a%)b)%" +R"X(a + b)X" +R"X(a\ + b)X" +EOI +<string literal> +<string literal> +<string literal> +<string literal> +<string literal> +<string literal> +<string literal> +EOO + +: prefix +: +$* <<EOI >>EOO +LR"(ab)" +UR"(ab)" +uR"(ab)" +u8R"(ab)" +EOI +<string literal> +<string literal> +<string literal> +<string literal> +EOO + +: suffix +: +$* <<EOI >>EOO +R"(ab)"x +R"(ab)"_X123 +EOI +<string literal> +<string literal> +EOO + +: escape +: +$* <<EOI >>EOO +R"(\)" +EOI +<string literal> +EOO + +: invalid-no-paren +: +$* <'R"a"' 2>>EOE != 0 +stdin:1:2: error: invalid raw literal +EOE + +: invalid-paren +: +$* <'R")()("' 2>>EOE != 0 +stdin:1:2: error: invalid raw literal +EOE + +: invalid-unterminated-paren +: +$* <'R"(abc"' 2>>EOE != 0 +stdin:1:2: error: invalid raw literal +EOE + +: invalid-unterminated-delimiter +: +$* <'R"X(abc)"' 2>>EOE != 0 +stdin:1:2: error: invalid raw literal +EOE + +: invalid-unterminated-quote +: +$* <'R"X(abc)X' 2>>EOE != 0 +stdin:1:2: error: invalid raw literal +EOE |