summaryrefslogtreecommitdiff
path: root/tests/auto/cplusplus/lexer
diff options
context:
space:
mode:
authorFrancois Ferrand <thetypz@gmail.com>2015-03-12 23:15:38 +0100
committerFrancois Ferrand <thetypz@gmail.com>2016-03-08 17:24:28 +0000
commitdc7b6ca6c376714dc65d170f693e40263f422739 (patch)
tree1dbace9faec97f025ab1a648769705898fb22df2 /tests/auto/cplusplus/lexer
parent41b232962a9222ddc594ef7d564041af0c476cb9 (diff)
downloadqt-creator-dc7b6ca6c376714dc65d170f693e40263f422739.tar.gz
C++: fix lexing POUND_POUND token with digraphs.
Change-Id: I9204b827c60b283cc4e6b88c810b31eb7587c7db Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
Diffstat (limited to 'tests/auto/cplusplus/lexer')
-rw-r--r--tests/auto/cplusplus/lexer/tst_lexer.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/auto/cplusplus/lexer/tst_lexer.cpp b/tests/auto/cplusplus/lexer/tst_lexer.cpp
index 6f32622cfc..53da805a68 100644
--- a/tests/auto/cplusplus/lexer/tst_lexer.cpp
+++ b/tests/auto/cplusplus/lexer/tst_lexer.cpp
@@ -70,6 +70,8 @@ private slots:
void literals_data();
void preprocessor();
void preprocessor_data();
+ void digraph();
+ void digraph_data();
void trigraph();
void trigraph_data();
@@ -740,6 +742,36 @@ void tst_SimpleLexer::incremental_data()
<< (TokenKindList() << T_IDENTIFIER);
}
+void tst_SimpleLexer::digraph()
+{
+ QFETCH(QByteArray, source);
+ QFETCH(TokenKindList, expectedTokenKindList);
+
+ run(source, toTokens(expectedTokenKindList), false, CompareKind);
+}
+
+void tst_SimpleLexer::digraph_data()
+{
+ QTest::addColumn<QByteArray>("source");
+ QTest::addColumn<TokenKindList>("expectedTokenKindList");
+
+ QTest::newRow("lbracket_digraph") << _("<:") << (TokenKindList() << T_LBRACKET);
+
+ QTest::newRow("rbracket_digraph") << _(":>") << (TokenKindList() << T_RBRACKET);
+
+ QTest::newRow("lbrace_digraph") << _("<%") << (TokenKindList() << T_LBRACE);
+
+ QTest::newRow("rbrace_digraph") << _("%>") << (TokenKindList() << T_RBRACE);
+
+ QTest::newRow("pound_digraph") << _("%:") << (TokenKindList() << T_POUND);
+
+ QTest::newRow("pound_pound_digraph") << _("%:%:") << (TokenKindList() << T_POUND_POUND);
+
+ QTest::newRow("pound_pound_mixed_digraph_1") << _("#%:") << (TokenKindList() << T_POUND << T_POUND);
+
+ QTest::newRow("pound_pound_mixed_digraph_2") << _("%:#") << (TokenKindList() << T_POUND << T_POUND);
+}
+
void tst_SimpleLexer::trigraph()
{
QFETCH(QByteArray, source);