diff options
author | Nikolai Kosjar <nikolai.kosjar@digia.com> | 2013-11-29 11:25:47 +0100 |
---|---|---|
committer | Nikolai Kosjar <nikolai.kosjar@digia.com> | 2013-11-29 15:11:27 +0100 |
commit | 4c2daa90ce558c3b4287edc97127471486a411d9 (patch) | |
tree | 02250176caac60cb01e92cbefbe9166badf957c6 /tests | |
parent | 4edfe87b58ca8e5f92b6a10dcf98e3d240f38245 (diff) | |
download | qt-creator-4c2daa90ce558c3b4287edc97127471486a411d9.tar.gz |
C++: Fix highlighting for lines with predefined macros
This adds definitions for the macros __FILE__, __LINE__, __DATE__ and
__TIME__ on demand.
As a side effect, this also introduces highlighting for the uses of
these macros.
Task-number: QTCREATORBUG-8036
Change-Id: Ib7546c7d45d2eecbc50c7883fc684e3497154405
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/cplusplus/checksymbols/tst_checksymbols.cpp | 51 | ||||
-rw-r--r-- | tests/auto/cplusplus/preprocessor/tst_preprocessor.cpp | 6 |
2 files changed, 56 insertions, 1 deletions
diff --git a/tests/auto/cplusplus/checksymbols/tst_checksymbols.cpp b/tests/auto/cplusplus/checksymbols/tst_checksymbols.cpp index 26ece497a0..9afbd31573 100644 --- a/tests/auto/cplusplus/checksymbols/tst_checksymbols.cpp +++ b/tests/auto/cplusplus/checksymbols/tst_checksymbols.cpp @@ -175,6 +175,8 @@ private slots: void test_checksymbols_VirtualMethodUse(); void test_checksymbols_LabelUse(); void test_checksymbols_MacroUse(); + void test_checksymbols_Macros__FILE__LINE__DATE__TIME__1(); + void test_checksymbols_Macros__FILE__LINE__DATE__TIME__2(); void test_checksymbols_FunctionUse(); void test_checksymbols_PseudoKeywordUse(); void test_checksymbols_StaticUse(); @@ -326,6 +328,55 @@ void tst_CheckSymbols::test_checksymbols_MacroUse() TestData::check(source, expectedUses, macroUses); } +void tst_CheckSymbols::test_checksymbols_Macros__FILE__LINE__DATE__TIME__1() +{ + const QByteArray source = + "#define FILE_DATE_TIME __FILE__ \" / \" __DATE__ \" / \" __TIME__\n" + "#define LINE_NUMBER 0 + __LINE__\n" + "\n" + "void f()\n" + "{\n" + " class Printer;\n" + " Printer::printText(FILE_DATE_TIME); Printer::printInteger(LINE_NUMBER); Printer::nl();\n" + " return;\n" + "}\n"; + const QList<Use> expectedUses = QList<Use>() + << Use(4, 6, 1, CppHighlightingSupport::FunctionUse) + << Use(6, 11, 7, CppHighlightingSupport::TypeUse) + << Use(6, 11, 7, CppHighlightingSupport::TypeUse) + << Use(7, 5, 7, CppHighlightingSupport::TypeUse) + << Use(7, 41, 7, CppHighlightingSupport::TypeUse) + << Use(7, 77, 7, CppHighlightingSupport::TypeUse) + ; + + TestData::check(source, expectedUses); +} + +void tst_CheckSymbols::test_checksymbols_Macros__FILE__LINE__DATE__TIME__2() +{ + const QByteArray source = + "void f()\n" + "{\n" + " class Printer;\n" + " Printer::printInteger(__LINE__); Printer::printText(__FILE__); Printer::nl();\n" + " Printer::printText(__DATE__); Printer::printText(__TIME__); Printer::nl();\n" + " return;\n" + "}\n"; + const QList<Use> expectedUses = QList<Use>() + << Use(1, 6, 1, CppHighlightingSupport::FunctionUse) + << Use(3, 11, 7, CppHighlightingSupport::TypeUse) + << Use(3, 11, 7, CppHighlightingSupport::TypeUse) + << Use(4, 5, 7, CppHighlightingSupport::TypeUse) + << Use(4, 38, 7, CppHighlightingSupport::TypeUse) + << Use(4, 68, 7, CppHighlightingSupport::TypeUse) + << Use(5, 5, 7, CppHighlightingSupport::TypeUse) + << Use(5, 35, 7, CppHighlightingSupport::TypeUse) + << Use(5, 65, 7, CppHighlightingSupport::TypeUse) + ; + + TestData::check(source, expectedUses); +} + void tst_CheckSymbols::test_checksymbols_FunctionUse() { const QByteArray source = diff --git a/tests/auto/cplusplus/preprocessor/tst_preprocessor.cpp b/tests/auto/cplusplus/preprocessor/tst_preprocessor.cpp index 2594bc692f..489722d675 100644 --- a/tests/auto/cplusplus/preprocessor/tst_preprocessor.cpp +++ b/tests/auto/cplusplus/preprocessor/tst_preprocessor.cpp @@ -796,7 +796,11 @@ void tst_Preprocessor::builtin__FILE__() )); const QByteArray result____ = "# 1 \"some-file.c\"\n" - "const char *f = \"some-file.c\"\n"; + "const char *f =\n" + "# expansion begin 16,8 ~1\n" + "\"some-file.c\"\n" + "# expansion end\n" + "# 2 \"some-file.c\"\n"; QCOMPARE(preprocessed, result____); } |