diff --git a/src/libs/clangbackendipc/connectionclient.cpp b/src/libs/clangbackendipc/connectionclient.cpp index 2f0290b7e81..5928ced2dfb 100644 --- a/src/libs/clangbackendipc/connectionclient.cpp +++ b/src/libs/clangbackendipc/connectionclient.cpp @@ -33,7 +33,6 @@ #include #include #include -#include #include namespace ClangBackEnd { @@ -221,8 +220,7 @@ void ConnectionClient::printStandardError() void ConnectionClient::resetTemporaryDir() { - const QString templatePath = QDir::tempPath() + QStringLiteral("/qtc-clang-XXXXXX"); - temporaryDirectory_.reset(new QTemporaryDir(templatePath)); + temporaryDirectory_ = std::make_unique("clang-XXXXXX"); } void ConnectionClient::connectLocalSocketConnected() diff --git a/src/libs/clangbackendipc/connectionclient.h b/src/libs/clangbackendipc/connectionclient.h index ef002345d9b..4baada60738 100644 --- a/src/libs/clangbackendipc/connectionclient.h +++ b/src/libs/clangbackendipc/connectionclient.h @@ -28,6 +28,8 @@ #include "clangcodemodelserverproxy.h" #include "lineprefixer.h" +#include + #include #include #include @@ -124,7 +126,7 @@ private: mutable std::unique_ptr process_; QLocalSocket localSocket; - std::unique_ptr temporaryDirectory_; + std::unique_ptr temporaryDirectory_; QTimer processAliveTimer; QString processPath_; bool isAliveTimerResetted = false; diff --git a/src/plugins/clangcodemodel/clanguiheaderondiskmanager.cpp b/src/plugins/clangcodemodel/clanguiheaderondiskmanager.cpp index a3419bf4213..d08d3a55197 100644 --- a/src/plugins/clangcodemodel/clanguiheaderondiskmanager.cpp +++ b/src/plugins/clangcodemodel/clanguiheaderondiskmanager.cpp @@ -33,7 +33,7 @@ namespace ClangCodeModel { namespace Internal { -UiHeaderOnDiskManager::UiHeaderOnDiskManager() : m_temporaryDir("qtc-clang-uiheader-XXXXXX") +UiHeaderOnDiskManager::UiHeaderOnDiskManager() : m_temporaryDir("clang-uiheader-XXXXXX") { QTC_CHECK(m_temporaryDir.isValid()); } diff --git a/tests/unit/echoserver/echoserver.pro b/tests/unit/echoserver/echoserver.pro index 36c4f99b328..0f9ed76afa3 100644 --- a/tests/unit/echoserver/echoserver.pro +++ b/tests/unit/echoserver/echoserver.pro @@ -8,6 +8,12 @@ TEMPLATE = app unix:LIBS += -ldl +# Set IDE_LIBEXEC_PATH and IDE_BIN_PATH to silence a warning about empty +# QTC_REL_TOOLS_PATH, which is not used by the tests. +IDE_LIBEXEC_PATH=$$PWD +IDE_BIN_PATH=$$PWD +include($$PWD/../../../src/libs/utils/utils-lib.pri) + include(../../../qtcreator.pri) include(../../../src/libs/clangbackendipc/clangbackendipc-lib.pri) include(../../../src/libs/sqlite/sqlite-lib.pri) diff --git a/tests/unit/unittest/clientserveroutsideprocess-test.cpp b/tests/unit/unittest/clientserveroutsideprocess-test.cpp index ed3391ddef6..ded6b24a6dc 100644 --- a/tests/unit/unittest/clientserveroutsideprocess-test.cpp +++ b/tests/unit/unittest/clientserveroutsideprocess-test.cpp @@ -51,6 +51,7 @@ #include #include +#include #include using namespace ClangBackEnd; @@ -58,6 +59,13 @@ using namespace ClangBackEnd; using ::testing::Eq; using ::testing::SizeIs; +struct Data { + Data() : client(&mockClangCodeModelClient) {} + + MockClangCodeModelClient mockClangCodeModelClient; + ClangBackEnd::ClangCodeModelConnectionClient client; +}; + class ClientServerOutsideProcess : public ::testing::Test { protected: @@ -67,16 +75,15 @@ protected: static void SetUpTestCase(); static void TearDownTestCase(); - static MockClangCodeModelClient mockClangCodeModelClient; - static ClangBackEnd::ClangCodeModelConnectionClient client; + static std::unique_ptr d; + MockClangCodeModelClient &mockClangCodeModelClient = d->mockClangCodeModelClient; + ClangBackEnd::ClangCodeModelConnectionClient &client = d->client; }; -MockClangCodeModelClient ClientServerOutsideProcess::mockClangCodeModelClient; -ClangBackEnd::ClangCodeModelConnectionClient ClientServerOutsideProcess::client(&ClientServerOutsideProcess::mockClangCodeModelClient); +std::unique_ptr ClientServerOutsideProcess::d; using ClientServerOutsideProcessSlowTest = ClientServerOutsideProcess; - TEST_F(ClientServerOutsideProcessSlowTest, RestartProcessAsynchronously) { QSignalSpy clientSpy(&client, &ConnectionClient::connectedToLocalSocket); @@ -176,10 +183,12 @@ TEST_F(ClientServerOutsideProcess, SendUnregisterProjectPartsForEditorMessage) void ClientServerOutsideProcess::SetUpTestCase() { - QSignalSpy clientSpy(&client, &ConnectionClient::connectedToLocalSocket); - client.setProcessPath(Utils::HostOsInfo::withExecutableSuffix(QStringLiteral(ECHOSERVER))); + d.reset(new Data); - client.startProcessAndConnectToServerAsynchronously(); + QSignalSpy clientSpy(&d->client, &ConnectionClient::connectedToLocalSocket); + d->client.setProcessPath(Utils::HostOsInfo::withExecutableSuffix(QStringLiteral(ECHOSERVER))); + + d->client.startProcessAndConnectToServerAsynchronously(); ASSERT_TRUE(clientSpy.wait(100000)); ASSERT_THAT(clientSpy, SizeIs(1)); @@ -187,7 +196,8 @@ void ClientServerOutsideProcess::SetUpTestCase() void ClientServerOutsideProcess::TearDownTestCase() { - client.finishProcess(); + d->client.finishProcess(); + d.reset(); } void ClientServerOutsideProcess::SetUp() { diff --git a/tests/unit/unittest/unittests-main.cpp b/tests/unit/unittest/unittests-main.cpp index 0e6d9131653..18b428a39f4 100644 --- a/tests/unit/unittest/unittests-main.cpp +++ b/tests/unit/unittest/unittests-main.cpp @@ -25,6 +25,8 @@ #include +#include + #include #include @@ -37,6 +39,8 @@ int main(int argc, char *argv[]) { + Utils::TemporaryDirectory::setMasterTemporaryDirectory(QDir::tempPath() + +"/QtCreator-UnitTests-XXXXXX"); Sqlite::registerTypes(); QCoreApplication application(argc, argv);