[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kdevelop] languages/clang/tests: Add test demonstrating incorrect missing include guard problem
From:       Olivier JG <olivier.jg () gmail ! com>
Date:       2015-10-20 18:01:04
Message-ID: E1ZobDc-00010n-37 () scm ! kde ! org
[Download RAW message or body]

Git commit 965bd77dd85d6ee02215d348cab7bd4743e2d253 by Olivier JG.
Committed on 20/10/2015 at 18:05.
Pushed by olivierjg into branch 'master'.

Add test demonstrating incorrect missing include guard problem

M  +19   -0    languages/clang/tests/test_duchain.cpp
M  +1    -0    languages/clang/tests/test_duchain.h

http://commits.kde.org/kdevelop/965bd77dd85d6ee02215d348cab7bd4743e2d253

diff --git a/languages/clang/tests/test_duchain.cpp \
b/languages/clang/tests/test_duchain.cpp index aae52f3..40e822e 100644
--- a/languages/clang/tests/test_duchain.cpp
+++ b/languages/clang/tests/test_duchain.cpp
@@ -1270,3 +1270,22 @@ void TestDUChain::testUsesCreatedForDeclarations()
     QVERIFY(!functionDeclaration->isDefinition());
     QCOMPARE(functionDeclaration->uses().count(), 1);
 }
+
+
+void TestDUChain::testReparseIncludeGuard()
+{
+    TestFile header("#ifndef GUARD\n#define GUARD\nint something;\n#endif\n", "h");
+    TestFile impl("#include \"" + header.url().byteArray() + "\"\n"
+                  "int main() { return foo(); }", "cpp", &header);
+
+    impl.parseAndWait(TopDUContext::Features(TopDUContext::AllDeclarationsContextsAndUses \
| TopDUContext::AST  )); +    {
+        DUChainReadLocker lock;
+        QCOMPARE(impl.topContext()->problems().size(), 0);
+    }
+    impl.parseAndWait(TopDUContext::Features(TopDUContext::AllDeclarationsContextsAndUses \
| TopDUContext::ForceUpdateRecursive)); +    {
+        DUChainReadLocker lock;
+        QCOMPARE(impl.topContext()->problems().size(), 0);
+    }
+}
diff --git a/languages/clang/tests/test_duchain.h \
b/languages/clang/tests/test_duchain.h index 77e706a..90bbe36 100644
--- a/languages/clang/tests/test_duchain.h
+++ b/languages/clang/tests/test_duchain.h
@@ -74,6 +74,7 @@ private slots:
     void testRangesOfOperatorsInsideMacro();
     void testActiveDocumentHasASTAttached();
     void testUsesCreatedForDeclarations();
+    void testReparseIncludeGuard();
 
     void benchDUChainBuilder();
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic