summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cpppreprocessor_test.cpp
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@digia.com>2014-06-02 16:06:26 -0400
committerNikolai Kosjar <nikolai.kosjar@digia.com>2014-06-03 14:54:17 +0200
commitff1203de9ec11fb70792bd601fa4c56f6ae85447 (patch)
tree49fdbefe0df16f0fb323ec6d37768d50393b8af4 /src/plugins/cpptools/cpppreprocessor_test.cpp
parentc7f0c4a743056ff553e727844f2ec8abd2711380 (diff)
downloadqt-creator-ff1203de9ec11fb70792bd601fa4c56f6ae85447.tar.gz
C++: Fix Macrouse::utf16charsBegin()
This caused displaced highlighting of macro uses after #if constructs. MacroUse::utf16charBegin() was based on the last "continuation token", which was wrong. Change-Id: I89983d82fcf804ba853c04a59a7533c489785d05 Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Diffstat (limited to 'src/plugins/cpptools/cpppreprocessor_test.cpp')
-rw-r--r--src/plugins/cpptools/cpppreprocessor_test.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/plugins/cpptools/cpppreprocessor_test.cpp b/src/plugins/cpptools/cpppreprocessor_test.cpp
index 61a6c4a7b5..398c694687 100644
--- a/src/plugins/cpptools/cpppreprocessor_test.cpp
+++ b/src/plugins/cpptools/cpppreprocessor_test.cpp
@@ -180,3 +180,25 @@ void CppToolsPlugin::test_cpppreprocessor_includes_allDiagnostics()
QCOMPARE(document->unresolvedIncludes().size(), 3);
QCOMPARE(document->diagnosticMessages().size(), 3);
}
+
+void CppToolsPlugin::test_cpppreprocessor_macroUses()
+{
+ QByteArray source =
+ "#define SOMEDEFINE 1\n"
+ "#if SOMEDEFINE == 1\n"
+ " int someNumber;\n"
+ "#endif\n"
+ ;
+
+ SourcePreprocessor processor;
+ Document::Ptr document = processor.run(source);
+ QVERIFY(document);
+ const QList<Document::MacroUse> macroUses = document->macroUses();
+ QCOMPARE(macroUses.size(), 1);
+ const Document::MacroUse macroUse = macroUses.at(0);
+ QCOMPARE(macroUse.bytesBegin(), 25U);
+ QCOMPARE(macroUse.bytesEnd(), 35U);
+ QCOMPARE(macroUse.utf16charsBegin(), 25U);
+ QCOMPARE(macroUse.utf16charsEnd(), 35U);
+ QCOMPARE(macroUse.beginLine(), 2U);
+}