summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarco Bubke <marco.bubke@qt.io>2018-08-06 19:14:00 +0200
committerMarco Bubke <marco.bubke@qt.io>2018-08-08 13:13:35 +0000
commit0bef7610a1cb7a923736f5f1ebd34c093f016e26 (patch)
treeb24673e1945c7f965f1aae5da995b99742d20de2
parent613db15cea6bdee29adb21dbabd36f03391f4a4f (diff)
downloadqt-creator-0bef7610a1cb7a923736f5f1ebd34c093f016e26.tar.gz
ClangRefactoring: Move generated files to own messages
There must be a management about it but this will be added in a different change set. Change-Id: I47b6ce7f671f1c8ae07083d6d99c534069e3cc1a Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
-rw-r--r--src/libs/clangsupport/clangrefactoringservermessages.h4
-rw-r--r--src/libs/clangsupport/clangsupport-lib.pri8
-rw-r--r--src/libs/clangsupport/clangsupport_global.h4
-rw-r--r--src/libs/clangsupport/pchmanagerserverinterface.cpp8
-rw-r--r--src/libs/clangsupport/pchmanagerserverinterface.h2
-rw-r--r--src/libs/clangsupport/pchmanagerserverproxy.cpp12
-rw-r--r--src/libs/clangsupport/pchmanagerserverproxy.h2
-rw-r--r--src/libs/clangsupport/projectmanagementserverinterface.h4
-rw-r--r--src/libs/clangsupport/refactoringserverinterface.cpp6
-rw-r--r--src/libs/clangsupport/refactoringserverproxy.cpp10
-rw-r--r--src/libs/clangsupport/refactoringserverproxy.h2
-rw-r--r--src/libs/clangsupport/removegeneratedfilesmessage.cpp37
-rw-r--r--src/libs/clangsupport/removegeneratedfilesmessage.h79
-rw-r--r--src/libs/clangsupport/updategeneratedfilesmessage.cpp38
-rw-r--r--src/libs/clangsupport/updategeneratedfilesmessage.h77
-rw-r--r--src/libs/clangsupport/updateprojectpartsmessage.h20
-rw-r--r--src/plugins/clangpchmanager/projectupdater.cpp8
-rw-r--r--src/tools/clangpchmanagerbackend/source/pchmanagerserver.cpp13
-rw-r--r--src/tools/clangpchmanagerbackend/source/pchmanagerserver.h2
-rw-r--r--src/tools/clangrefactoringbackend/source/refactoringserver.cpp12
-rw-r--r--src/tools/clangrefactoringbackend/source/refactoringserver.h4
-rw-r--r--src/tools/clangrefactoringbackend/source/symbolindexer.cpp2
-rw-r--r--src/tools/clangrefactoringbackend/source/symbolindexer.h2
-rw-r--r--src/tools/clangrefactoringbackend/source/symbolindexing.cpp5
-rw-r--r--src/tools/clangrefactoringbackend/source/symbolindexing.h2
-rw-r--r--src/tools/clangrefactoringbackend/source/symbolindexinginterface.h2
-rw-r--r--tests/unit/unittest/mockpchmanagerserver.h14
-rw-r--r--tests/unit/unittest/mockrefactoringserver.h16
-rw-r--r--tests/unit/unittest/mocksymbolindexing.h2
-rw-r--r--tests/unit/unittest/pchmanagerclient-test.cpp3
-rw-r--r--tests/unit/unittest/pchmanagerclientserverinprocess-test.cpp30
-rw-r--r--tests/unit/unittest/pchmanagerserver-test.cpp40
-rw-r--r--tests/unit/unittest/projectupdater-test.cpp15
-rw-r--r--tests/unit/unittest/refactoringclientserverinprocess-test.cpp28
-rw-r--r--tests/unit/unittest/refactoringserver-test.cpp22
35 files changed, 469 insertions, 66 deletions
diff --git a/src/libs/clangsupport/clangrefactoringservermessages.h b/src/libs/clangsupport/clangrefactoringservermessages.h
index cdcc309c2d..dd1cb3a6d7 100644
--- a/src/libs/clangsupport/clangrefactoringservermessages.h
+++ b/src/libs/clangsupport/clangrefactoringservermessages.h
@@ -30,5 +30,7 @@
#include "requestsourcelocationforrenamingmessage.h"
#include "requestsourcerangesanddiagnosticsforquerymessage.h"
#include "requestsourcerangesforquerymessage.h"
-#include "updateprojectpartsmessage.h"
+#include "removegeneratedfilesmessage.h"
#include "removeprojectpartsmessage.h"
+#include "updategeneratedfilesmessage.h"
+#include "updateprojectpartsmessage.h"
diff --git a/src/libs/clangsupport/clangsupport-lib.pri b/src/libs/clangsupport/clangsupport-lib.pri
index 857bc39ddd..5934d2c522 100644
--- a/src/libs/clangsupport/clangsupport-lib.pri
+++ b/src/libs/clangsupport/clangsupport-lib.pri
@@ -87,7 +87,9 @@ SOURCES += \
$$PWD/writemessageblock.cpp \
$$PWD/filepathcaching.cpp \
$$PWD/filepathid.cpp \
- $$PWD/baseserverproxy.cpp
+ $$PWD/baseserverproxy.cpp \
+ $$PWD/updategeneratedfilesmessage.cpp \
+ $$PWD/removegeneratedfilesmessage.cpp
HEADERS += \
$$PWD/cancelmessage.h \
@@ -202,6 +204,8 @@ HEADERS += \
$$PWD/nativefilepath.h \
$$PWD/filepathview.h \
$$PWD/compilermacro.h \
- $$PWD/projectpartpchproviderinterface.h
+ $$PWD/projectpartpchproviderinterface.h \
+ $$PWD/updategeneratedfilesmessage.h \
+ $$PWD/removegeneratedfilesmessage.h
contains(QT_CONFIG, reduce_exports):CONFIG += hide_symbols
diff --git a/src/libs/clangsupport/clangsupport_global.h b/src/libs/clangsupport/clangsupport_global.h
index 01e9e2c7f4..75454a5288 100644
--- a/src/libs/clangsupport/clangsupport_global.h
+++ b/src/libs/clangsupport/clangsupport_global.h
@@ -177,7 +177,9 @@ enum class MessageType : quint8 {
CancelMessage,
UpdateProjectPartsMessage,
RemoveProjectPartsMessage,
- PrecompiledHeadersUpdatedMessage
+ PrecompiledHeadersUpdatedMessage,
+ UpdateGeneratedFilesMessage,
+ RemoveGeneratedFilesMessage
};
template<MessageType messageEnumeration>
diff --git a/src/libs/clangsupport/pchmanagerserverinterface.cpp b/src/libs/clangsupport/pchmanagerserverinterface.cpp
index 549e835450..256aa228ac 100644
--- a/src/libs/clangsupport/pchmanagerserverinterface.cpp
+++ b/src/libs/clangsupport/pchmanagerserverinterface.cpp
@@ -26,7 +26,9 @@
#include "pchmanagerserverinterface.h"
#include "messageenvelop.h"
+#include "removegeneratedfilesmessage.h"
#include "removeprojectpartsmessage.h"
+#include "updategeneratedfilesmessage.h"
#include "updateprojectpartsmessage.h"
#include <QDebug>
@@ -45,6 +47,12 @@ void PchManagerServerInterface::dispatch(const MessageEnvelop &messageEnvelop)
case MessageType::RemoveProjectPartsMessage:
removeProjectParts(messageEnvelop.message<RemoveProjectPartsMessage>());
break;
+ case MessageType::UpdateGeneratedFilesMessage:
+ updateGeneratedFiles(messageEnvelop.message<UpdateGeneratedFilesMessage>());
+ break;
+ case MessageType::RemoveGeneratedFilesMessage:
+ removeGeneratedFiles(messageEnvelop.message<RemoveGeneratedFilesMessage>());
+ break;
default:
qWarning() << "Unknown IpcClientMessage";
}
diff --git a/src/libs/clangsupport/pchmanagerserverinterface.h b/src/libs/clangsupport/pchmanagerserverinterface.h
index 48ac0d3679..eb2a4310a5 100644
--- a/src/libs/clangsupport/pchmanagerserverinterface.h
+++ b/src/libs/clangsupport/pchmanagerserverinterface.h
@@ -32,8 +32,6 @@
namespace ClangBackEnd {
class PchManagerClientInterface;
-class RemoveProjectPartsMessage;
-class UpdateProjectPartsMessage;
class CLANGSUPPORT_EXPORT PchManagerServerInterface : public ProjectManagementServerInterface
{
diff --git a/src/libs/clangsupport/pchmanagerserverproxy.cpp b/src/libs/clangsupport/pchmanagerserverproxy.cpp
index fbf4866542..dedbb23d50 100644
--- a/src/libs/clangsupport/pchmanagerserverproxy.cpp
+++ b/src/libs/clangsupport/pchmanagerserverproxy.cpp
@@ -28,7 +28,9 @@
#include "endmessage.h"
#include "messageenvelop.h"
#include "pchmanagerclientinterface.h"
+#include "removegeneratedfilesmessage.h"
#include "removeprojectpartsmessage.h"
+#include "updategeneratedfilesmessage.h"
#include "updateprojectpartsmessage.h"
#include <QIODevice>
@@ -56,4 +58,14 @@ void PchManagerServerProxy::removeProjectParts(RemoveProjectPartsMessage &&messa
m_writeMessageBlock.write(message);
}
+void PchManagerServerProxy::updateGeneratedFiles(UpdateGeneratedFilesMessage &&message)
+{
+ m_writeMessageBlock.write(message);
+}
+
+void PchManagerServerProxy::removeGeneratedFiles(RemoveGeneratedFilesMessage &&message)
+{
+ m_writeMessageBlock.write(message);
+}
+
} // namespace ClangBackEnd
diff --git a/src/libs/clangsupport/pchmanagerserverproxy.h b/src/libs/clangsupport/pchmanagerserverproxy.h
index 30ae12782c..570de91a03 100644
--- a/src/libs/clangsupport/pchmanagerserverproxy.h
+++ b/src/libs/clangsupport/pchmanagerserverproxy.h
@@ -52,6 +52,8 @@ public:
void end() override;
void updateProjectParts(UpdateProjectPartsMessage &&message) override;
void removeProjectParts(RemoveProjectPartsMessage &&message) override;
+ void updateGeneratedFiles(UpdateGeneratedFilesMessage &&message) override;
+ void removeGeneratedFiles(RemoveGeneratedFilesMessage &&message) override;
};
} // namespace ClangBackEnd
diff --git a/src/libs/clangsupport/projectmanagementserverinterface.h b/src/libs/clangsupport/projectmanagementserverinterface.h
index eb06960dc3..08d6edbb0c 100644
--- a/src/libs/clangsupport/projectmanagementserverinterface.h
+++ b/src/libs/clangsupport/projectmanagementserverinterface.h
@@ -29,7 +29,9 @@
namespace ClangBackEnd {
+class RemoveGeneratedFilesMessage;
class RemoveProjectPartsMessage;
+class UpdateGeneratedFilesMessage;
class UpdateProjectPartsMessage;
class ProjectManagementServerInterface : public IpcServerInterface
@@ -37,6 +39,8 @@ class ProjectManagementServerInterface : public IpcServerInterface
public:
virtual void updateProjectParts(UpdateProjectPartsMessage &&message) = 0;
virtual void removeProjectParts(RemoveProjectPartsMessage &&message) = 0;
+ virtual void updateGeneratedFiles(UpdateGeneratedFilesMessage &&message) = 0;
+ virtual void removeGeneratedFiles(RemoveGeneratedFilesMessage &&message) = 0;
protected:
~ProjectManagementServerInterface() = default;
diff --git a/src/libs/clangsupport/refactoringserverinterface.cpp b/src/libs/clangsupport/refactoringserverinterface.cpp
index e9a2456d74..a95837f80a 100644
--- a/src/libs/clangsupport/refactoringserverinterface.cpp
+++ b/src/libs/clangsupport/refactoringserverinterface.cpp
@@ -50,9 +50,15 @@ void RefactoringServerInterface::dispatch(const MessageEnvelop &messageEnvelop)
case MessageType::UpdateProjectPartsMessage:
updateProjectParts(messageEnvelop.message<UpdateProjectPartsMessage>());
break;
+ case MessageType::UpdateGeneratedFilesMessage:
+ updateGeneratedFiles(messageEnvelop.message<UpdateGeneratedFilesMessage>());
+ break;
case MessageType::RemoveProjectPartsMessage:
removeProjectParts(messageEnvelop.message<RemoveProjectPartsMessage>());
break;
+ case MessageType::RemoveGeneratedFilesMessage:
+ removeGeneratedFiles(messageEnvelop.message<RemoveGeneratedFilesMessage>());
+ break;
case MessageType::CancelMessage:
cancel();
break;
diff --git a/src/libs/clangsupport/refactoringserverproxy.cpp b/src/libs/clangsupport/refactoringserverproxy.cpp
index 809a66fe57..3bc8fe20af 100644
--- a/src/libs/clangsupport/refactoringserverproxy.cpp
+++ b/src/libs/clangsupport/refactoringserverproxy.cpp
@@ -69,6 +69,16 @@ void RefactoringServerProxy::removeProjectParts(RemoveProjectPartsMessage &&mess
m_writeMessageBlock.write(message);
}
+void RefactoringServerProxy::updateGeneratedFiles(UpdateGeneratedFilesMessage &&message)
+{
+ m_writeMessageBlock.write(message);
+}
+
+void RefactoringServerProxy::removeGeneratedFiles(RemoveGeneratedFilesMessage &&message)
+{
+ m_writeMessageBlock.write(message);
+}
+
void RefactoringServerProxy::cancel()
{
m_writeMessageBlock.write(CancelMessage());
diff --git a/src/libs/clangsupport/refactoringserverproxy.h b/src/libs/clangsupport/refactoringserverproxy.h
index e5006e66e9..55ae20d441 100644
--- a/src/libs/clangsupport/refactoringserverproxy.h
+++ b/src/libs/clangsupport/refactoringserverproxy.h
@@ -55,6 +55,8 @@ public:
void requestSourceRangesForQueryMessage(RequestSourceRangesForQueryMessage &&message) override;
void updateProjectParts(UpdateProjectPartsMessage &&message) override;
void removeProjectParts(RemoveProjectPartsMessage &&message) override;
+ void updateGeneratedFiles(UpdateGeneratedFilesMessage &&message) override;
+ void removeGeneratedFiles(RemoveGeneratedFilesMessage &&message) override;
void cancel() override;
};
diff --git a/src/libs/clangsupport/removegeneratedfilesmessage.cpp b/src/libs/clangsupport/removegeneratedfilesmessage.cpp
new file mode 100644
index 0000000000..2ed92a8169
--- /dev/null
+++ b/src/libs/clangsupport/removegeneratedfilesmessage.cpp
@@ -0,0 +1,37 @@
+/****************************************************************************
+**
+** Copyright (C) 2018 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qt Creator.
+**
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+****************************************************************************/
+
+#include "removegeneratedfilesmessage.h"
+
+namespace ClangBackEnd {
+
+QDebug operator<<(QDebug debug, const RemoveGeneratedFilesMessage &message)
+{
+ debug.nospace() << "RemoveGeneratedFilesMessage("
+ << message.generatedFiles << ")";
+
+ return debug;
+}
+} // namespace ClangBackEnd
diff --git a/src/libs/clangsupport/removegeneratedfilesmessage.h b/src/libs/clangsupport/removegeneratedfilesmessage.h
new file mode 100644
index 0000000000..6aebaccb27
--- /dev/null
+++ b/src/libs/clangsupport/removegeneratedfilesmessage.h
@@ -0,0 +1,79 @@
+/****************************************************************************
+**
+** Copyright (C) 2018 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qt Creator.
+**
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+****************************************************************************/
+
+#pragma once
+
+#include <clangsupport_global.h>
+
+#include "filepath.h"
+
+namespace ClangBackEnd {
+
+class RemoveGeneratedFilesMessage
+{
+public:
+ RemoveGeneratedFilesMessage() = default;
+ RemoveGeneratedFilesMessage(FilePaths &&generatedFiles)
+ : generatedFiles(std::move(generatedFiles))
+ {}
+
+ FilePaths takeGeneratedFiles()
+ {
+ return std::move(generatedFiles);
+ }
+
+ friend QDataStream &operator<<(QDataStream &out, const RemoveGeneratedFilesMessage &message)
+ {
+ out << message.generatedFiles;
+
+ return out;
+ }
+
+ friend QDataStream &operator>>(QDataStream &in, RemoveGeneratedFilesMessage &message)
+ {
+ in >> message.generatedFiles;
+
+ return in;
+ }
+
+ friend bool operator==(const RemoveGeneratedFilesMessage &first,
+ const RemoveGeneratedFilesMessage &second)
+ {
+ return first.generatedFiles == second.generatedFiles;
+ }
+
+ RemoveGeneratedFilesMessage clone() const
+ {
+ return *this;
+ }
+
+public:
+ FilePaths generatedFiles;
+};
+
+CLANGSUPPORT_EXPORT QDebug operator<<(QDebug debug, const RemoveGeneratedFilesMessage &message);
+
+DECLARE_MESSAGE(RemoveGeneratedFilesMessage)
+} // namespace ClangBackEnd
diff --git a/src/libs/clangsupport/updategeneratedfilesmessage.cpp b/src/libs/clangsupport/updategeneratedfilesmessage.cpp
new file mode 100644
index 0000000000..9ef71a0df5
--- /dev/null
+++ b/src/libs/clangsupport/updategeneratedfilesmessage.cpp
@@ -0,0 +1,38 @@
+/****************************************************************************
+**
+** Copyright (C) 2018 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qt Creator.
+**
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+****************************************************************************/
+
+#include "updategeneratedfilesmessage.h"
+
+namespace ClangBackEnd {
+
+QDebug operator<<(QDebug debug, const UpdateGeneratedFilesMessage &message)
+{
+ debug.nospace() << "UpdateGeneratedFilesMessage("
+ << message.generatedFiles << ")";
+
+ return debug;
+}
+
+} // namespace ClangBackEnd
diff --git a/src/libs/clangsupport/updategeneratedfilesmessage.h b/src/libs/clangsupport/updategeneratedfilesmessage.h
new file mode 100644
index 0000000000..fabfda0125
--- /dev/null
+++ b/src/libs/clangsupport/updategeneratedfilesmessage.h
@@ -0,0 +1,77 @@
+/****************************************************************************
+**
+** Copyright (C) 2018 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qt Creator.
+**
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+****************************************************************************/
+
+#pragma once
+
+#include "filecontainerv2.h"
+
+namespace ClangBackEnd {
+
+class UpdateGeneratedFilesMessage
+{
+public:
+ UpdateGeneratedFilesMessage() = default;
+ UpdateGeneratedFilesMessage(V2::FileContainers &&generatedFiles)
+ : generatedFiles(std::move(generatedFiles))
+ {}
+
+ V2::FileContainers takeGeneratedFiles()
+ {
+ return std::move(generatedFiles);
+ }
+
+ friend QDataStream &operator<<(QDataStream &out, const UpdateGeneratedFilesMessage &message)
+ {
+ out << message.generatedFiles;
+
+ return out;
+ }
+
+ friend QDataStream &operator>>(QDataStream &in, UpdateGeneratedFilesMessage &message)
+ {
+ in >> message.generatedFiles;
+
+ return in;
+ }
+
+ friend bool operator==(const UpdateGeneratedFilesMessage &first,
+ const UpdateGeneratedFilesMessage &second)
+ {
+ return first.generatedFiles == second.generatedFiles;
+ }
+
+ UpdateGeneratedFilesMessage clone() const
+ {
+ return *this;
+ }
+
+public:
+ V2::FileContainers generatedFiles;
+};
+
+CLANGSUPPORT_EXPORT QDebug operator<<(QDebug debug, const UpdateGeneratedFilesMessage &message);
+
+DECLARE_MESSAGE(UpdateGeneratedFilesMessage)
+} // namespace ClangBackEnd
diff --git a/src/libs/clangsupport/updateprojectpartsmessage.h b/src/libs/clangsupport/updateprojectpartsmessage.h
index 8c2ee5befe..e923d7ba03 100644
--- a/src/libs/clangsupport/updateprojectpartsmessage.h
+++ b/src/libs/clangsupport/updateprojectpartsmessage.h
@@ -34,10 +34,8 @@ class UpdateProjectPartsMessage
{
public:
UpdateProjectPartsMessage() = default;
- UpdateProjectPartsMessage(V2::ProjectPartContainers &&projectsParts,
- V2::FileContainers &&generatedFiles)
- : projectsParts(std::move(projectsParts)),
- generatedFiles(std::move(generatedFiles))
+ UpdateProjectPartsMessage(V2::ProjectPartContainers &&projectsParts)
+ : projectsParts(std::move(projectsParts))
{}
V2::ProjectPartContainers takeProjectsParts()
@@ -45,15 +43,9 @@ public:
return std::move(projectsParts);
}
- V2::FileContainers takeGeneratedFiles()
- {
- return std::move(generatedFiles);
- }
-
friend QDataStream &operator<<(QDataStream &out, const UpdateProjectPartsMessage &message)
{
out << message.projectsParts;
- out << message.generatedFiles;
return out;
}
@@ -61,7 +53,6 @@ public:
friend QDataStream &operator>>(QDataStream &in, UpdateProjectPartsMessage &message)
{
in >> message.projectsParts;
- in >> message.generatedFiles;
return in;
}
@@ -69,19 +60,16 @@ public:
friend bool operator==(const UpdateProjectPartsMessage &first,
const UpdateProjectPartsMessage &second)
{
- return first.projectsParts == second.projectsParts
- && first.generatedFiles == second.generatedFiles;
+ return first.projectsParts == second.projectsParts;
}
UpdateProjectPartsMessage clone() const
{
- return UpdateProjectPartsMessage(Utils::clone(projectsParts),
- Utils::clone(generatedFiles));
+ return *this;
}
public:
V2::ProjectPartContainers projectsParts;
- V2::FileContainers generatedFiles;
};
CLANGSUPPORT_EXPORT QDebug operator<<(QDebug debug, const UpdateProjectPartsMessage &message);
diff --git a/src/plugins/clangpchmanager/projectupdater.cpp b/src/plugins/clangpchmanager/projectupdater.cpp
index 9d0342d20a..7a7235b1e2 100644
--- a/src/plugins/clangpchmanager/projectupdater.cpp
+++ b/src/plugins/clangpchmanager/projectupdater.cpp
@@ -30,6 +30,7 @@
#include <filepathid.h>
#include <pchmanagerserverinterface.h>
#include <removeprojectpartsmessage.h>
+#include <updategeneratedfilesmessage.h>
#include <updateprojectpartsmessage.h>
#include <cpptools/compileroptionsbuilder.h>
@@ -67,10 +68,11 @@ void ProjectUpdater::updateProjectParts(const std::vector<CppTools::ProjectPart
{
m_excludedPaths = createExcludedPaths(generatedFiles);
- ClangBackEnd::UpdateProjectPartsMessage message{toProjectPartContainers(projectParts),
- std::move(generatedFiles)};
+ m_server.updateGeneratedFiles( // TODO move to an other code path
+ ClangBackEnd::UpdateGeneratedFilesMessage{std::move(generatedFiles)});
- m_server.updateProjectParts(std::move(message));
+ m_server.updateProjectParts(
+ ClangBackEnd::UpdateProjectPartsMessage{toProjectPartContainers(projectParts)});
}
void ProjectUpdater::removeProjectParts(const QStringList &projectPartIds)
diff --git a/src/tools/clangpchmanagerbackend/source/pchmanagerserver.cpp b/src/tools/clangpchmanagerbackend/source/pchmanagerserver.cpp
index 90d315a0f1..1e9ea5ea46 100644
--- a/src/tools/clangpchmanagerbackend/source/pchmanagerserver.cpp
+++ b/src/tools/clangpchmanagerbackend/source/pchmanagerserver.cpp
@@ -28,6 +28,7 @@
#include <pchmanagerclientinterface.h>
#include <precompiledheadersupdatedmessage.h>
#include <removeprojectpartsmessage.h>
+#include <updategeneratedfilesmessage.h>
#include <updateprojectpartsmessage.h>
#include <utils/smallstring.h>
@@ -54,8 +55,6 @@ void PchManagerServer::end()
void PchManagerServer::updateProjectParts(UpdateProjectPartsMessage &&message)
{
- m_pchCreator.setGeneratedFiles(message.takeGeneratedFiles());
-
m_pchCreator.generatePchs(m_projectParts.update(message.takeProjectsParts()));
m_fileSystemWatcher.updateIdPaths(m_pchCreator.takeProjectsIncludes());
@@ -68,6 +67,16 @@ void PchManagerServer::removeProjectParts(RemoveProjectPartsMessage &&message)
m_projectParts.remove(message.projectsPartIds);
}
+void PchManagerServer::updateGeneratedFiles(UpdateGeneratedFilesMessage &&message)
+{
+ m_pchCreator.setGeneratedFiles(message.takeGeneratedFiles());
+}
+
+void PchManagerServer::removeGeneratedFiles(RemoveGeneratedFilesMessage &&message)
+{
+ // TODO
+}
+
void PchManagerServer::pathsWithIdsChanged(const Utils::SmallStringVector &ids)
{
m_pchCreator.generatePchs(m_projectParts.projects(ids));
diff --git a/src/tools/clangpchmanagerbackend/source/pchmanagerserver.h b/src/tools/clangpchmanagerbackend/source/pchmanagerserver.h
index 0921ce772c..b188b0e6bb 100644
--- a/src/tools/clangpchmanagerbackend/source/pchmanagerserver.h
+++ b/src/tools/clangpchmanagerbackend/source/pchmanagerserver.h
@@ -53,6 +53,8 @@ public:
void end() override;
void updateProjectParts(UpdateProjectPartsMessage &&message) override;
void removeProjectParts(RemoveProjectPartsMessage &&message) override;
+ void updateGeneratedFiles(UpdateGeneratedFilesMessage &&message) override;
+ void removeGeneratedFiles(RemoveGeneratedFilesMessage &&message) override;
void pathsWithIdsChanged(const Utils::SmallStringVector &ids) override;
void pathsChanged(const FilePathIds &filePathIds) override;
diff --git a/src/tools/clangrefactoringbackend/source/refactoringserver.cpp b/src/tools/clangrefactoringbackend/source/refactoringserver.cpp
index 68aa24cbcd..35da59d77a 100644
--- a/src/tools/clangrefactoringbackend/source/refactoringserver.cpp
+++ b/src/tools/clangrefactoringbackend/source/refactoringserver.cpp
@@ -97,12 +97,22 @@ void RefactoringServer::requestSourceRangesForQueryMessage(RequestSourceRangesFo
void RefactoringServer::updateProjectParts(UpdateProjectPartsMessage &&message)
{
- m_symbolIndexing.updateProjectParts(message.takeProjectsParts(), message.takeGeneratedFiles());
+ m_symbolIndexing.updateProjectParts(message.takeProjectsParts(), m_generatedFiles);
+}
+
+void RefactoringServer::updateGeneratedFiles(UpdateGeneratedFilesMessage &&message)
+{
+ m_generatedFiles = message.takeGeneratedFiles();
}
void RefactoringServer::removeProjectParts(RemoveProjectPartsMessage &&)
{
+ // TODO
+}
+void RefactoringServer::removeGeneratedFiles(RemoveGeneratedFilesMessage &&message)
+{
+ // TODO
}
void RefactoringServer::cancel()
diff --git a/src/tools/clangrefactoringbackend/source/refactoringserver.h b/src/tools/clangrefactoringbackend/source/refactoringserver.h
index 1823174335..f46aac9577 100644
--- a/src/tools/clangrefactoringbackend/source/refactoringserver.h
+++ b/src/tools/clangrefactoringbackend/source/refactoringserver.h
@@ -62,7 +62,10 @@ public:
void requestSourceRangesAndDiagnosticsForQueryMessage(RequestSourceRangesAndDiagnosticsForQueryMessage &&message) override;
void requestSourceRangesForQueryMessage(RequestSourceRangesForQueryMessage &&message) override;
void updateProjectParts(UpdateProjectPartsMessage &&message) override;
+ void updateGeneratedFiles(UpdateGeneratedFilesMessage &&message) override;
void removeProjectParts(RemoveProjectPartsMessage &&message) override;
+ void removeGeneratedFiles(RemoveGeneratedFilesMessage &&message) override;
+
void cancel() override;
bool isCancelingJobs() const;
@@ -81,6 +84,7 @@ private:
private:
ClangQueryGatherer m_gatherer;
+ V2::FileContainers m_generatedFiles;
QTimer m_pollTimer;
SymbolIndexingInterface &m_symbolIndexing;
FilePathCachingInterface &m_filePathCache;
diff --git a/src/tools/clangrefactoringbackend/source/symbolindexer.cpp b/src/tools/clangrefactoringbackend/source/symbolindexer.cpp
index 51785e7870..58450cdc4d 100644
--- a/src/tools/clangrefactoringbackend/source/symbolindexer.cpp
+++ b/src/tools/clangrefactoringbackend/source/symbolindexer.cpp
@@ -43,7 +43,7 @@ SymbolIndexer::SymbolIndexer(SymbolsCollectorInterface &symbolsCollector,
pathWatcher.setNotifier(this);
}
-void SymbolIndexer::updateProjectParts(V2::ProjectPartContainers &&projectParts, V2::FileContainers &&generatedFiles)
+void SymbolIndexer::updateProjectParts(V2::ProjectPartContainers &&projectParts, const V2::FileContainers &generatedFiles)
{
for (V2::ProjectPartContainer &projectPart : projectParts)
updateProjectPart(std::move(projectPart), generatedFiles);
diff --git a/src/tools/clangrefactoringbackend/source/symbolindexer.h b/src/tools/clangrefactoringbackend/source/symbolindexer.h
index 42ab387662..4fc66fee0f 100644
--- a/src/tools/clangrefactoringbackend/source/symbolindexer.h
+++ b/src/tools/clangrefactoringbackend/source/symbolindexer.h
@@ -46,7 +46,7 @@ public:
Sqlite::TransactionInterface &transactionInterface);
void updateProjectParts(V2::ProjectPartContainers &&projectParts,
- V2::FileContainers &&generatedFiles);
+ const V2::FileContainers &generatedFiles);
void updateProjectPart(V2::ProjectPartContainer &&projectPart,
const V2::FileContainers &generatedFiles);
diff --git a/src/tools/clangrefactoringbackend/source/symbolindexing.cpp b/src/tools/clangrefactoringbackend/source/symbolindexing.cpp
index a9e772b168..c1e934eb2e 100644
--- a/src/tools/clangrefactoringbackend/source/symbolindexing.cpp
+++ b/src/tools/clangrefactoringbackend/source/symbolindexing.cpp
@@ -27,9 +27,10 @@
namespace ClangBackEnd {
-void SymbolIndexing::updateProjectParts(V2::ProjectPartContainers &&projectParts, V2::FileContainers &&generatedFiles)
+void SymbolIndexing::updateProjectParts(V2::ProjectPartContainers &&projectParts,
+ const V2::FileContainers &generatedFiles)
{
- m_indexer.updateProjectParts(std::move(projectParts), std::move(generatedFiles));
+ m_indexer.updateProjectParts(std::move(projectParts), generatedFiles);
}
} // namespace ClangBackEnd
diff --git a/src/tools/clangrefactoringbackend/source/symbolindexing.h b/src/tools/clangrefactoringbackend/source/symbolindexing.h
index ffd2936986..f6c4e79628 100644
--- a/src/tools/clangrefactoringbackend/source/symbolindexing.h
+++ b/src/tools/clangrefactoringbackend/source/symbolindexing.h
@@ -62,7 +62,7 @@ public:
}
void updateProjectParts(V2::ProjectPartContainers &&projectParts,
- V2::FileContainers &&generatedFiles);
+ const V2::FileContainers &generatedFiles) override;
private:
FilePathCachingInterface &m_filePathCache;
diff --git a/src/tools/clangrefactoringbackend/source/symbolindexinginterface.h b/src/tools/clangrefactoringbackend/source/symbolindexinginterface.h
index 72806e54a1..0151f29f7e 100644
--- a/src/tools/clangrefactoringbackend/source/symbolindexinginterface.h
+++ b/src/tools/clangrefactoringbackend/source/symbolindexinginterface.h
@@ -38,7 +38,7 @@ public:
SymbolIndexingInterface &operator=(const SymbolIndexingInterface&) = delete;
virtual void updateProjectParts(V2::ProjectPartContainers &&projectParts,
- V2::FileContainers &&generatedFiles) = 0;
+ const V2::FileContainers &generatedFiles) = 0;
protected:
~SymbolIndexingInterface() = default;
diff --git a/tests/unit/unittest/mockpchmanagerserver.h b/tests/unit/unittest/mockpchmanagerserver.h
index 766abd95ab..906903efd0 100644
--- a/tests/unit/unittest/mockpchmanagerserver.h
+++ b/tests/unit/unittest/mockpchmanagerserver.h
@@ -38,6 +38,10 @@ public:
void (const ClangBackEnd::UpdateProjectPartsMessage&));
MOCK_METHOD1(removeProjectParts,
void (const ClangBackEnd::RemoveProjectPartsMessage&));
+ MOCK_METHOD1(updateGeneratedFiles,
+ void (const ClangBackEnd::UpdateGeneratedFilesMessage&));
+ MOCK_METHOD1(removeGeneratedFiles,
+ void (const ClangBackEnd::RemoveGeneratedFilesMessage&));
void updateProjectParts(ClangBackEnd::UpdateProjectPartsMessage &&message) override
{
@@ -48,4 +52,14 @@ public:
{
removeProjectParts(message);
}
+
+ void updateGeneratedFiles(ClangBackEnd::UpdateGeneratedFilesMessage &&message) override
+ {
+ updateGeneratedFiles(message);
+ }
+
+ void removeGeneratedFiles(ClangBackEnd::RemoveGeneratedFilesMessage &&message) override
+ {
+ removeGeneratedFiles(message);
+ }
};
diff --git a/tests/unit/unittest/mockrefactoringserver.h b/tests/unit/unittest/mockrefactoringserver.h
index 091807e203..9de1a18e2b 100644
--- a/tests/unit/unittest/mockrefactoringserver.h
+++ b/tests/unit/unittest/mockrefactoringserver.h
@@ -47,9 +47,15 @@ public:
MOCK_METHOD1(updateProjectParts,
void (const ClangBackEnd::UpdateProjectPartsMessage&));
+ MOCK_METHOD1(updateGeneratedFiles,
+ void (const ClangBackEnd::UpdateGeneratedFilesMessage&));
+
MOCK_METHOD1(removeProjectParts,
void (const ClangBackEnd::RemoveProjectPartsMessage&));
+ MOCK_METHOD1(removeGeneratedFiles,
+ void (const ClangBackEnd::RemoveGeneratedFilesMessage&));
+
MOCK_METHOD0(cancel,
void());
@@ -73,8 +79,18 @@ public:
updateProjectParts(message);
}
+ void updateGeneratedFiles(ClangBackEnd::UpdateGeneratedFilesMessage &&message) override
+ {
+ updateGeneratedFiles(message);
+ }
+
void removeProjectParts(ClangBackEnd::RemoveProjectPartsMessage &&message) override
{
removeProjectParts(message);
}
+
+ void removeGeneratedFiles(ClangBackEnd::RemoveGeneratedFilesMessage &&message) override
+ {
+ removeGeneratedFiles(message);
+ }
};
diff --git a/tests/unit/unittest/mocksymbolindexing.h b/tests/unit/unittest/mocksymbolindexing.h
index 8a42ebfbc9..967a5f6aab 100644
--- a/tests/unit/unittest/mocksymbolindexing.h
+++ b/tests/unit/unittest/mocksymbolindexing.h
@@ -37,7 +37,7 @@ public:
const ClangBackEnd::V2::FileContainers &generatedFiles));
void updateProjectParts(ClangBackEnd::V2::ProjectPartContainers &&projectParts,
- ClangBackEnd::V2::FileContainers &&generatedFiles) override
+ const ClangBackEnd::V2::FileContainers &generatedFiles) override
{
updateProjectParts(projectParts, generatedFiles);
}
diff --git a/tests/unit/unittest/pchmanagerclient-test.cpp b/tests/unit/unittest/pchmanagerclient-test.cpp
index 9e40a21249..8c13055c5e 100644
--- a/tests/unit/unittest/pchmanagerclient-test.cpp
+++ b/tests/unit/unittest/pchmanagerclient-test.cpp
@@ -35,7 +35,9 @@
#include <filepathcaching.h>
#include <refactoringdatabaseinitializer.h>
#include <precompiledheadersupdatedmessage.h>
+#include <removegeneratedfilesmessage.h>
#include <removeprojectpartsmessage.h>
+#include <updategeneratedfilesmessage.h>
#include <updateprojectpartsmessage.h>
namespace {
@@ -167,7 +169,6 @@ TEST_F(PchManagerClient, ProjectPartPchRemovedFromDatabase)
{
EXPECT_CALL(mockPrecompiledHeaderStorage, deletePrecompiledHeader(TypedEq<Utils::SmallStringView>(projectPartId)));
-
projectUpdater.removeProjectParts({QString(projectPartId)});
}
diff --git a/tests/unit/unittest/pchmanagerclientserverinprocess-test.cpp b/tests/unit/unittest/pchmanagerclientserverinprocess-test.cpp
index f37fe2ae5e..248e9abf63 100644
--- a/tests/unit/unittest/pchmanagerclientserverinprocess-test.cpp
+++ b/tests/unit/unittest/pchmanagerclientserverinprocess-test.cpp
@@ -32,7 +32,9 @@
#include <pchmanagerclientproxy.h>
#include <pchmanagerserverproxy.h>
#include <precompiledheadersupdatedmessage.h>
+#include <removegeneratedfilesmessage.h>
#include <removeprojectpartsmessage.h>
+#include <updategeneratedfilesmessage.h>
#include <updateprojectpartsmessage.h>
#include <QBuffer>
@@ -41,10 +43,12 @@
#include <vector>
+using ClangBackEnd::UpdateGeneratedFilesMessage;
using ClangBackEnd::UpdateProjectPartsMessage;
+using ClangBackEnd::RemoveGeneratedFilesMessage;
+using ClangBackEnd::RemoveProjectPartsMessage;
using ClangBackEnd::V2::FileContainer;
using ClangBackEnd::V2::ProjectPartContainer;
-using ClangBackEnd::RemoveProjectPartsMessage;
using ClangBackEnd::PrecompiledHeadersUpdatedMessage;
using ::testing::Args;
@@ -98,8 +102,7 @@ TEST_F(PchManagerClientServerInProcess, SendUpdateProjectPartsMessage)
{"/includes"},
{{1, 1}},
{{1, 2}}};
- FileContainer fileContainer{{"/path/to/", "file"}, "content", {}};
- UpdateProjectPartsMessage message{{projectPart2}, {fileContainer}};
+ UpdateProjectPartsMessage message{{projectPart2}};
EXPECT_CALL(mockPchManagerServer, updateProjectParts(message));
@@ -107,6 +110,17 @@ TEST_F(PchManagerClientServerInProcess, SendUpdateProjectPartsMessage)
scheduleServerMessages();
}
+TEST_F(PchManagerClientServerInProcess, SendUpdateGeneratedFilesMessage)
+{
+ FileContainer fileContainer{{"/path/to/", "file"}, "content", {}};
+ UpdateGeneratedFilesMessage message{{fileContainer}};
+
+ EXPECT_CALL(mockPchManagerServer, updateGeneratedFiles(message));
+
+ serverProxy.updateGeneratedFiles(message.clone());
+ scheduleServerMessages();
+}
+
TEST_F(PchManagerClientServerInProcess, SendRemoveProjectPartsMessage)
{
RemoveProjectPartsMessage message{{"projectPartId1", "projectPartId2"}};
@@ -117,6 +131,16 @@ TEST_F(PchManagerClientServerInProcess, SendRemoveProjectPartsMessage)
scheduleServerMessages();
}
+TEST_F(PchManagerClientServerInProcess, SendRemoveGeneratedFilesMessage)
+{
+ RemoveGeneratedFilesMessage message{{{"/path/to/", "file"}}};
+
+ EXPECT_CALL(mockPchManagerServer, removeGeneratedFiles(message));
+
+ serverProxy.removeGeneratedFiles(message.clone());
+ scheduleServerMessages();
+}
+
TEST_F(PchManagerClientServerInProcess, SendPrecompiledHeaderUpdatedMessage)
{
PrecompiledHeadersUpdatedMessage message{{{"projectPartId", "/path/to/pch", 1}}};
diff --git a/tests/unit/unittest/pchmanagerserver-test.cpp b/tests/unit/unittest/pchmanagerserver-test.cpp
index 995045d0ff..276aed07b2 100644
--- a/tests/unit/unittest/pchmanagerserver-test.cpp
+++ b/tests/unit/unittest/pchmanagerserver-test.cpp
@@ -35,6 +35,7 @@
#include <precompiledheadersupdatedmessage.h>
#include <refactoringdatabaseinitializer.h>
#include <removeprojectpartsmessage.h>
+#include <updategeneratedfilesmessage.h>
#include <updateprojectpartsmessage.h>
namespace {
@@ -82,14 +83,14 @@ protected:
{id(main2Path)}};
std::vector<ProjectPartContainer> projectParts{projectPart1, projectPart2};
FileContainer generatedFile{{"/path/to/", "file"}, "content", {}};
- ClangBackEnd::UpdateProjectPartsMessage UpdateProjectPartsMessage{Utils::clone(projectParts),
- {generatedFile}};
+ ClangBackEnd::UpdateProjectPartsMessage updateProjectPartsMessage{Utils::clone(projectParts)};
+ ClangBackEnd::UpdateGeneratedFilesMessage updateGeneratedFilesMessage{{generatedFile}};
ClangBackEnd::ProjectPartPch projectPartPch1{projectPart1.projectPartId.clone(), "/path1/to/pch", 1};
ClangBackEnd::ProjectPartPch projectPartPch2{projectPart2.projectPartId.clone(), "/path2/to/pch", 1};
std::vector<ClangBackEnd::ProjectPartPch> projectPartPchs{projectPartPch1, projectPartPch2};
ClangBackEnd::PrecompiledHeadersUpdatedMessage precompiledHeaderUpdatedMessage1{{projectPartPch1}};
ClangBackEnd::PrecompiledHeadersUpdatedMessage precompiledHeaderUpdatedMessage2{{projectPartPch2}};
- ClangBackEnd::RemoveProjectPartsMessage RemoveProjectPartsMessage{{projectPart1.projectPartId.clone(),
+ ClangBackEnd::RemoveProjectPartsMessage removeProjectPartsMessage{{projectPart1.projectPartId.clone(),
projectPart2.projectPartId.clone()}};
};
@@ -109,41 +110,46 @@ TEST_F(PchManagerServer, DoNotCallPrecompiledHeadersForUnsuccessfullyFinishedTas
}
TEST_F(PchManagerServer, CallBuildInPchCreator)
+{;
+ EXPECT_CALL(mockPchCreator, generatePchs(updateProjectPartsMessage.projectsParts));
+
+ server.updateProjectParts(updateProjectPartsMessage.clone());
+}
+
+TEST_F(PchManagerServer, CallSetGeneratedFiles)
{
- auto &&callSetGeneratedFiles = EXPECT_CALL(mockPchCreator,
- setGeneratedFiles(UpdateProjectPartsMessage.generatedFiles));
- EXPECT_CALL(mockPchCreator, generatePchs(UpdateProjectPartsMessage.projectsParts))
- .After(callSetGeneratedFiles);
+ EXPECT_CALL(mockPchCreator,
+ setGeneratedFiles(updateGeneratedFilesMessage.generatedFiles));
- server.updateProjectParts(UpdateProjectPartsMessage.clone());
+ server.updateGeneratedFiles(updateGeneratedFilesMessage.clone());
}
TEST_F(PchManagerServer, UpdateIncludesOfFileWatcher)
{
EXPECT_CALL(mockClangPathWatcher, updateIdPaths(idPaths));
- server.updateProjectParts(UpdateProjectPartsMessage.clone());
+ server.updateProjectParts(updateProjectPartsMessage.clone());
}
TEST_F(PchManagerServer, GetChangedProjectPartsFromProjectParts)
{
EXPECT_CALL(mockProjectParts, update(_));
- server.updateProjectParts(UpdateProjectPartsMessage.clone());
+ server.updateProjectParts(updateProjectPartsMessage.clone());
}
TEST_F(PchManagerServer, RemoveIncludesFromFileWatcher)
{
- EXPECT_CALL(mockClangPathWatcher, removeIds(RemoveProjectPartsMessage.projectsPartIds));
+ EXPECT_CALL(mockClangPathWatcher, removeIds(removeProjectPartsMessage.projectsPartIds));
- server.removeProjectParts(RemoveProjectPartsMessage.clone());
+ server.removeProjectParts(removeProjectPartsMessage.clone());
}
TEST_F(PchManagerServer, RemoveProjectPartsFromProjectParts)
{
- EXPECT_CALL(mockProjectParts, remove(RemoveProjectPartsMessage.projectsPartIds));
+ EXPECT_CALL(mockProjectParts, remove(removeProjectPartsMessage.projectsPartIds));
- server.removeProjectParts(RemoveProjectPartsMessage.clone());
+ server.removeProjectParts(removeProjectPartsMessage.clone());
}
TEST_F(PchManagerServer, SetPathWatcherNotifier)
@@ -155,7 +161,7 @@ TEST_F(PchManagerServer, SetPathWatcherNotifier)
TEST_F(PchManagerServer, CallProjectsInProjectPartsForIncludeChange)
{
- server.updateProjectParts(UpdateProjectPartsMessage.clone());
+ server.updateProjectParts(updateProjectPartsMessage.clone());
EXPECT_CALL(mockProjectParts, projects(ElementsAre(projectPart1.projectPartId)));
@@ -164,7 +170,7 @@ TEST_F(PchManagerServer, CallProjectsInProjectPartsForIncludeChange)
TEST_F(PchManagerServer, CallGeneratePchsInPchCreatorForIncludeChange)
{
- server.updateProjectParts(UpdateProjectPartsMessage.clone());
+ server.updateProjectParts(updateProjectPartsMessage.clone());
EXPECT_CALL(mockPchCreator, generatePchs(ElementsAre(projectPart1)));
@@ -173,7 +179,7 @@ TEST_F(PchManagerServer, CallGeneratePchsInPchCreatorForIncludeChange)
TEST_F(PchManagerServer, CallUpdateIdPathsInFileSystemWatcherForIncludeChange)
{
- server.updateProjectParts(UpdateProjectPartsMessage.clone());
+ server.updateProjectParts(updateProjectPartsMessage.clone());
EXPECT_CALL(mockClangPathWatcher, updateIdPaths(idPaths));
diff --git a/tests/unit/unittest/projectupdater-test.cpp b/tests/unit/unittest/projectupdater-test.cpp
index a77dfc0b5b..4e43d6b577 100644
--- a/tests/unit/unittest/projectupdater-test.cpp
+++ b/tests/unit/unittest/projectupdater-test.cpp
@@ -37,7 +37,9 @@
#include <precompiledheaderstorage.h>
#include <precompiledheadersupdatedmessage.h>
#include <refactoringdatabaseinitializer.h>
+#include <removegeneratedfilesmessage.h>
#include <removeprojectpartsmessage.h>
+#include <updategeneratedfilesmessage.h>
#include <updateprojectpartsmessage.h>
#include <cpptools/compileroptionsbuilder.h>
@@ -121,14 +123,23 @@ protected:
TEST_F(ProjectUpdater, CallUpdateProjectParts)
{
std::vector<CppTools::ProjectPart*> projectParts = {&projectPart, &projectPart};
- ClangBackEnd::UpdateProjectPartsMessage message{{expectedContainer.clone(), expectedContainer.clone()},
- {generatedFile}};
+ ClangBackEnd::UpdateProjectPartsMessage message{{expectedContainer.clone(), expectedContainer.clone()}};
EXPECT_CALL(mockPchManagerServer, updateProjectParts(message));
updater.updateProjectParts(projectParts, {generatedFile});
}
+TEST_F(ProjectUpdater, CallUpdateGeneratedFiles)
+{
+ std::vector<CppTools::ProjectPart*> projectParts = {&projectPart, &projectPart};
+ ClangBackEnd::UpdateGeneratedFilesMessage message{{generatedFile}};
+
+ EXPECT_CALL(mockPchManagerServer, updateGeneratedFiles(message));
+
+ updater.updateProjectParts(projectParts, {generatedFile});
+}
+
TEST_F(ProjectUpdater, CallRemoveProjectParts)
{
ClangBackEnd::RemoveProjectPartsMessage message{{projectPartId, projectPartId2}};
diff --git a/tests/unit/unittest/refactoringclientserverinprocess-test.cpp b/tests/unit/unittest/refactoringclientserverinprocess-test.cpp
index a5658ab178..278c33efa3 100644
--- a/tests/unit/unittest/refactoringclientserverinprocess-test.cpp
+++ b/tests/unit/unittest/refactoringclientserverinprocess-test.cpp
@@ -47,10 +47,12 @@ using ::testing::Args;
using ::testing::Property;
using ::testing::Eq;
+using ClangBackEnd::RemoveGeneratedFilesMessage;
+using ClangBackEnd::RemoveProjectPartsMessage;
using ClangBackEnd::UpdateProjectPartsMessage;
+using ClangBackEnd::UpdateGeneratedFilesMessage;
using ClangBackEnd::V2::FileContainer;
using ClangBackEnd::V2::ProjectPartContainer;
-using ClangBackEnd::RemoveProjectPartsMessage;
class RefactoringClientServerInProcess : public ::testing::Test
{
@@ -182,8 +184,7 @@ TEST_F(RefactoringClientServerInProcess, SendUpdateProjectPartsMessage)
{"/includes"},
{{1, 1}},
{{1, 2}}};
- FileContainer fileContainer{{"/path/to/", "file"}, "content", {}};
- UpdateProjectPartsMessage message{{projectPart2}, {fileContainer}};
+ UpdateProjectPartsMessage message{{projectPart2}};
EXPECT_CALL(mockRefactoringServer, updateProjectParts(message));
@@ -191,6 +192,17 @@ TEST_F(RefactoringClientServerInProcess, SendUpdateProjectPartsMessage)
scheduleServerMessages();
}
+TEST_F(RefactoringClientServerInProcess, SendUpdateGeneratedFilesMessage)
+{
+ FileContainer fileContainer{{"/path/to/", "file"}, "content", {}};
+ UpdateGeneratedFilesMessage message{{fileContainer}};
+
+ EXPECT_CALL(mockRefactoringServer, updateGeneratedFiles(message));
+
+ serverProxy.updateGeneratedFiles(message.clone());
+ scheduleServerMessages();
+}
+
TEST_F(RefactoringClientServerInProcess, SendRemoveProjectPartsMessage)
{
RemoveProjectPartsMessage message{{"projectPartId1", "projectPartId2"}};
@@ -201,6 +213,16 @@ TEST_F(RefactoringClientServerInProcess, SendRemoveProjectPartsMessage)
scheduleServerMessages();
}
+TEST_F(RefactoringClientServerInProcess, SendRemoveGeneratedFilesMessage)
+{
+ RemoveGeneratedFilesMessage message{{{"/path/to/", "file"}}};
+
+ EXPECT_CALL(mockRefactoringServer, removeGeneratedFiles(message));
+
+ serverProxy.removeGeneratedFiles(message.clone());
+ scheduleServerMessages();
+}
+
TEST_F(RefactoringClientServerInProcess, CancelMessage)
{
EXPECT_CALL(mockRefactoringServer, cancel());
diff --git a/tests/unit/unittest/refactoringserver-test.cpp b/tests/unit/unittest/refactoringserver-test.cpp
index 0abe22f1b6..51cae8697e 100644
--- a/tests/unit/unittest/refactoringserver-test.cpp
+++ b/tests/unit/unittest/refactoringserver-test.cpp
@@ -298,6 +298,20 @@ TEST_F(RefactoringServerSlowTest, ForInvalidRequestSourceRangesAndDiagnosticsGet
refactoringServer.requestSourceRangesAndDiagnosticsForQueryMessage(std::move(message));
}
+TEST_F(RefactoringServer, UpdateGeneratedFilesSetMemberWhichIsUsedForSymbolIndexing)
+{
+ FileContainers unsaved{{{TESTDATA_DIR, "query_simplefunction.h"},
+ "void f();",
+ {}}};
+
+
+ EXPECT_CALL(mockSymbolIndexing,
+ updateProjectParts(_, unsaved));
+
+ refactoringServer.updateGeneratedFiles(Utils::clone(unsaved));
+ refactoringServer.updateProjectParts({});
+}
+
TEST_F(RefactoringServer, UpdateProjectPartsCallsSymbolIndexingUpdateProjectParts)
{
ProjectPartContainers projectParts{{{"projectPartId",
@@ -306,17 +320,15 @@ TEST_F(RefactoringServer, UpdateProjectPartsCallsSymbolIndexingUpdateProjectPart
{"/includes"},
{filePathId("header1.h")},
{filePathId("main.cpp")}}}};
- FileContainers unsaved{{{TESTDATA_DIR, "query_simplefunction.h"},
- "void f();",
- {}}};
EXPECT_CALL(mockSymbolIndexing,
- updateProjectParts(projectParts, unsaved));
+ updateProjectParts(projectParts, _));
- refactoringServer.updateProjectParts({Utils::clone(projectParts), Utils::clone(unsaved)});
+ refactoringServer.updateProjectParts({Utils::clone(projectParts)});
}
+
void RefactoringServer::SetUp()
{
temporaryFile.open();