Clang: Use Utils::TemporaryDirectory

Task-number: QTCREATORBUG-17401
Change-Id: Ibf6007455ec92b1d9fcac17e1f3b5e2af21b7438
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
This commit is contained in:
Nikolai Kosjar
2017-01-30 10:05:42 +01:00
parent e03132f517
commit 340063c624
6 changed files with 34 additions and 14 deletions

View File

@@ -33,7 +33,6 @@
#include <QCoreApplication>
#include <QMetaMethod>
#include <QProcess>
#include <QTemporaryDir>
#include <QThread>
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<Utils::TemporaryDirectory>("clang-XXXXXX");
}
void ConnectionClient::connectLocalSocketConnected()

View File

@@ -28,6 +28,8 @@
#include "clangcodemodelserverproxy.h"
#include "lineprefixer.h"
#include <utils/temporarydirectory.h>
#include <QLocalSocket>
#include <QProcessEnvironment>
#include <QScopedPointer>
@@ -124,7 +126,7 @@ private:
mutable std::unique_ptr<QProcess> process_;
QLocalSocket localSocket;
std::unique_ptr<QTemporaryDir> temporaryDirectory_;
std::unique_ptr<Utils::TemporaryDirectory> temporaryDirectory_;
QTimer processAliveTimer;
QString processPath_;
bool isAliveTimerResetted = false;

View File

@@ -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());
}

View File

@@ -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)

View File

@@ -51,6 +51,7 @@
#include <QString>
#include <QVariant>
#include <memory>
#include <vector>
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<Data> d;
MockClangCodeModelClient &mockClangCodeModelClient = d->mockClangCodeModelClient;
ClangBackEnd::ClangCodeModelConnectionClient &client = d->client;
};
MockClangCodeModelClient ClientServerOutsideProcess::mockClangCodeModelClient;
ClangBackEnd::ClangCodeModelConnectionClient ClientServerOutsideProcess::client(&ClientServerOutsideProcess::mockClangCodeModelClient);
std::unique_ptr<Data> 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()
{

View File

@@ -25,6 +25,8 @@
#include <sqliteglobal.h>
#include <utils/temporarydirectory.h>
#include <QCoreApplication>
#include <QLoggingCategory>
@@ -37,6 +39,8 @@
int main(int argc, char *argv[])
{
Utils::TemporaryDirectory::setMasterTemporaryDirectory(QDir::tempPath()
+"/QtCreator-UnitTests-XXXXXX");
Sqlite::registerTypes();
QCoreApplication application(argc, argv);