Clang: Add Symbol Indexing

It is a first step and now a database is generated if you start QtCreator.
Some code is now shared with the PchManager which can be improved in the
future.

Change-Id: Ic267fe7960f6c455d91832859a673ce98f269aa2
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
Marco Bubke
2017-08-17 12:44:52 +02:00
parent 8488ce627b
commit 3adb71d45e
65 changed files with 1195 additions and 175 deletions

View File

@@ -47,6 +47,11 @@ using ::testing::Args;
using ::testing::Property;
using ::testing::Eq;
using ClangBackEnd::UpdatePchProjectPartsMessage;
using ClangBackEnd::V2::FileContainer;
using ClangBackEnd::V2::ProjectPartContainer;
using ClangBackEnd::RemovePchProjectPartsMessage;
class RefactoringClientServerInProcess : public ::testing::Test
{
protected:
@@ -169,6 +174,31 @@ TEST_F(RefactoringClientServerInProcess, RequestSourceRangesForQueryMessage)
scheduleServerMessages();
}
TEST_F(RefactoringClientServerInProcess, SendUpdatePchProjectPartsMessage)
{
ProjectPartContainer projectPart2{"projectPartId",
{"-x", "c++-header", "-Wno-pragma-once-outside-header"},
{TESTDATA_DIR "/includecollector_header.h"},
{TESTDATA_DIR "/includecollector_main.cpp"}};
FileContainer fileContainer{{"/path/to/", "file"}, "content", {}};
UpdatePchProjectPartsMessage message{{projectPart2}, {fileContainer}};
EXPECT_CALL(mockRefactoringServer, updatePchProjectParts(message));
serverProxy.updatePchProjectParts(message.clone());
scheduleServerMessages();
}
TEST_F(RefactoringClientServerInProcess, SendRemovePchProjectPartsMessage)
{
RemovePchProjectPartsMessage message{{"projectPartId1", "projectPartId2"}};
EXPECT_CALL(mockRefactoringServer, removePchProjectParts(message));
serverProxy.removePchProjectParts(message.clone());
scheduleServerMessages();
}
TEST_F(RefactoringClientServerInProcess, CancelMessage)
{
EXPECT_CALL(mockRefactoringServer, cancel());