summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@digia.com>2013-11-29 11:25:47 +0100
committerNikolai Kosjar <nikolai.kosjar@digia.com>2013-11-29 15:11:27 +0100
commit4c2daa90ce558c3b4287edc97127471486a411d9 (patch)
tree02250176caac60cb01e92cbefbe9166badf957c6 /tests
parent4edfe87b58ca8e5f92b6a10dcf98e3d240f38245 (diff)
downloadqt-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.cpp51
-rw-r--r--tests/auto/cplusplus/preprocessor/tst_preprocessor.cpp6
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____);
}