mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-12 15:25:34 +08:00
Use temp dir. for cache when a unit test is performed
* the temp. dir can also be used for other purposes
This commit is contained in:
committed by
Roland Winklmeier
parent
09d74c48b8
commit
44258a97fa
@@ -98,7 +98,12 @@ namespace BlackCore
|
|||||||
QCoreApplication::setApplicationVersion(CVersion::version());
|
QCoreApplication::setApplicationVersion(CVersion::version());
|
||||||
this->setObjectName(this->m_applicationName);
|
this->setObjectName(this->m_applicationName);
|
||||||
const QString executable = QFileInfo(QCoreApplication::applicationFilePath()).fileName();
|
const QString executable = QFileInfo(QCoreApplication::applicationFilePath()).fileName();
|
||||||
if (executable.startsWith("test")) { this->m_unitTest = true; }
|
if (executable.startsWith("test"))
|
||||||
|
{
|
||||||
|
this->m_unitTest = true;
|
||||||
|
const QString tempPath(this->getTemporaryDirectory());
|
||||||
|
BlackMisc::setMockCacheRootDirectory(tempPath);
|
||||||
|
}
|
||||||
this->initParser();
|
this->initParser();
|
||||||
this->initLogging();
|
this->initLogging();
|
||||||
|
|
||||||
@@ -385,6 +390,18 @@ namespace BlackCore
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString CApplication::getTemporaryDirectory() const
|
||||||
|
{
|
||||||
|
if (this->m_tempDirectory.isValid())
|
||||||
|
{
|
||||||
|
return this->m_tempDirectory.path();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return QDir::tempPath();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
QString CApplication::getInfoString(const QString &separator) const
|
QString CApplication::getInfoString(const QString &separator) const
|
||||||
{
|
{
|
||||||
QString str(CVersion::version());
|
QString str(CVersion::version());
|
||||||
@@ -398,17 +415,17 @@ namespace BlackCore
|
|||||||
|
|
||||||
QNetworkReply *CApplication::getFromNetwork(const CUrl &url, const CSlot<void(QNetworkReply *)> &callback)
|
QNetworkReply *CApplication::getFromNetwork(const CUrl &url, const CSlot<void(QNetworkReply *)> &callback)
|
||||||
{
|
{
|
||||||
return httpRequestImpl(url.toNetworkRequest(), callback, [ ] (QNetworkAccessManager &nam, const QNetworkRequest &request) { return nam.get(request); });
|
return httpRequestImpl(url.toNetworkRequest(), callback, [ ](QNetworkAccessManager & nam, const QNetworkRequest & request) { return nam.get(request); });
|
||||||
}
|
}
|
||||||
|
|
||||||
QNetworkReply *CApplication::getFromNetwork(const QNetworkRequest &request, const CSlot<void(QNetworkReply *)> &callback)
|
QNetworkReply *CApplication::getFromNetwork(const QNetworkRequest &request, const CSlot<void(QNetworkReply *)> &callback)
|
||||||
{
|
{
|
||||||
return httpRequestImpl(request, callback, [ ] (QNetworkAccessManager &nam, const QNetworkRequest &request) { return nam.get(request); });
|
return httpRequestImpl(request, callback, [ ](QNetworkAccessManager & nam, const QNetworkRequest & request) { return nam.get(request); });
|
||||||
}
|
}
|
||||||
|
|
||||||
QNetworkReply *CApplication::postToNetwork(const QNetworkRequest &request, const QByteArray &data, const CSlot<void(QNetworkReply *)> &callback)
|
QNetworkReply *CApplication::postToNetwork(const QNetworkRequest &request, const QByteArray &data, const CSlot<void(QNetworkReply *)> &callback)
|
||||||
{
|
{
|
||||||
return httpRequestImpl(request, callback, [ data ] (QNetworkAccessManager &nam, const QNetworkRequest &request) { return nam.post(request, data); });
|
return httpRequestImpl(request, callback, [ data ](QNetworkAccessManager & nam, const QNetworkRequest & request) { return nam.post(request, data); });
|
||||||
}
|
}
|
||||||
|
|
||||||
QNetworkReply *CApplication::postToNetwork(const QNetworkRequest &request, QHttpMultiPart *multiPart, const CSlot<void(QNetworkReply *)> &callback)
|
QNetworkReply *CApplication::postToNetwork(const QNetworkRequest &request, QHttpMultiPart *multiPart, const CSlot<void(QNetworkReply *)> &callback)
|
||||||
@@ -418,24 +435,23 @@ namespace BlackCore
|
|||||||
multiPart->moveToThread(this->m_accessManager.thread());
|
multiPart->moveToThread(this->m_accessManager.thread());
|
||||||
}
|
}
|
||||||
|
|
||||||
return httpRequestImpl(request, callback, [ this, multiPart ] (QNetworkAccessManager &nam, const QNetworkRequest &request)
|
return httpRequestImpl(request, callback, [ this, multiPart ](QNetworkAccessManager & nam, const QNetworkRequest & request)
|
||||||
{
|
{
|
||||||
QNetworkReply *reply = nam.post(request, multiPart);
|
QNetworkReply *reply = nam.post(request, multiPart);
|
||||||
Q_ASSERT(reply);
|
Q_ASSERT(reply);
|
||||||
multiPart->setParent(reply);
|
multiPart->setParent(reply);
|
||||||
return reply;
|
return reply;
|
||||||
}
|
});
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QNetworkReply *CApplication::headerFromNetwork(const CUrl &url, const BlackMisc::CSlot<void (QNetworkReply *)> &callback)
|
QNetworkReply *CApplication::headerFromNetwork(const CUrl &url, const BlackMisc::CSlot<void (QNetworkReply *)> &callback)
|
||||||
{
|
{
|
||||||
return httpRequestImpl(url.toNetworkRequest(), callback, [ ] (QNetworkAccessManager &nam, const QNetworkRequest &request) { return nam.head(request); });
|
return httpRequestImpl(url.toNetworkRequest(), callback, [ ](QNetworkAccessManager & nam, const QNetworkRequest & request) { return nam.head(request); });
|
||||||
}
|
}
|
||||||
|
|
||||||
QNetworkReply *CApplication::headerFromNetwork(const QNetworkRequest &request, const BlackMisc::CSlot<void (QNetworkReply *)> &callback)
|
QNetworkReply *CApplication::headerFromNetwork(const QNetworkRequest &request, const BlackMisc::CSlot<void (QNetworkReply *)> &callback)
|
||||||
{
|
{
|
||||||
return httpRequestImpl(request, callback, [ ] (QNetworkAccessManager &nam, const QNetworkRequest &request) { return nam.head(request); });
|
return httpRequestImpl(request, callback, [ ](QNetworkAccessManager & nam, const QNetworkRequest & request) { return nam.head(request); });
|
||||||
}
|
}
|
||||||
|
|
||||||
void CApplication::deleteAllCookies()
|
void CApplication::deleteAllCookies()
|
||||||
@@ -941,29 +957,29 @@ namespace BlackCore
|
|||||||
return CUrlList();
|
return CUrlList();
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef BLACK_USE_CRASHPAD
|
#ifdef BLACK_USE_CRASHPAD
|
||||||
base::FilePath qstringToFilePath(const QString &str)
|
base::FilePath qstringToFilePath(const QString &str)
|
||||||
{
|
{
|
||||||
#ifdef Q_OS_WIN
|
#ifdef Q_OS_WIN
|
||||||
return base::FilePath(str.toStdWString());
|
return base::FilePath(str.toStdWString());
|
||||||
#else
|
#else
|
||||||
return base::FilePath(str.toStdString());
|
return base::FilePath(str.toStdString());
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void CApplication::initCrashHandler()
|
void CApplication::initCrashHandler()
|
||||||
{
|
{
|
||||||
#ifdef BLACK_USE_CRASHPAD
|
#ifdef BLACK_USE_CRASHPAD
|
||||||
// No crash handling for unit tests
|
// No crash handling for unit tests
|
||||||
if (isUnitTest()) { return; }
|
if (isUnitTest()) { return; }
|
||||||
|
|
||||||
static const QString extension = CBuildConfig::isRunningOnWindowsNtPlatform() ? ".exe" : QString();
|
static const QString extension = CBuildConfig::isRunningOnWindowsNtPlatform() ? ".exe" : QString();
|
||||||
static const QString handler = CDirectoryUtils::applicationDirectoryPath() + "/" + "swift_crashpad_handler" + extension;
|
static const QString handler = CDirectoryUtils::applicationDirectoryPath() + "/" + "swift_crashpad_handler" + extension;
|
||||||
static const QString database = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) +
|
static const QString database = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) +
|
||||||
"/org.swift-project/" +
|
"/org.swift-project/" +
|
||||||
CDirectoryUtils::normalizedApplicationDirectory() +
|
CDirectoryUtils::normalizedApplicationDirectory() +
|
||||||
"/crashpad";
|
"/crashpad";
|
||||||
|
|
||||||
if (!QFileInfo::exists(handler))
|
if (!QFileInfo::exists(handler))
|
||||||
{
|
{
|
||||||
@@ -986,16 +1002,16 @@ namespace BlackCore
|
|||||||
m_crashpadClient->StartHandler(qstringToFilePath(handler), qstringToFilePath(database),
|
m_crashpadClient->StartHandler(qstringToFilePath(handler), qstringToFilePath(database),
|
||||||
serverUrl.getFullUrl().toStdString(), annotations, {}, false);
|
serverUrl.getFullUrl().toStdString(), annotations, {}, false);
|
||||||
m_crashpadClient->UseHandler();
|
m_crashpadClient->UseHandler();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void CApplication::crashDumpUploadEnabledChanged()
|
void CApplication::crashDumpUploadEnabledChanged()
|
||||||
{
|
{
|
||||||
#ifdef BLACK_USE_CRASHPAD
|
#ifdef BLACK_USE_CRASHPAD
|
||||||
if (!m_crashReportDatabase) { return; }
|
if (!m_crashReportDatabase) { return; }
|
||||||
auto settings = m_crashReportDatabase->GetSettings();
|
auto settings = m_crashReportDatabase->GetSettings();
|
||||||
settings->SetUploadsEnabled(CBuildConfig::isReleaseBuild() && m_crashDumpUploadEnabled.getThreadLocal());
|
settings->SetUploadsEnabled(CBuildConfig::isReleaseBuild() && m_crashDumpUploadEnabled.getThreadLocal());
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
QNetworkReply *CApplication::httpRequestImpl(const QNetworkRequest &request, const BlackMisc::CSlot<void (QNetworkReply *)> &callback, std::function<QNetworkReply *(QNetworkAccessManager &, const QNetworkRequest &)> method)
|
QNetworkReply *CApplication::httpRequestImpl(const QNetworkRequest &request, const BlackMisc::CSlot<void (QNetworkReply *)> &callback, std::function<QNetworkReply *(QNetworkAccessManager &, const QNetworkRequest &)> method)
|
||||||
|
|||||||
@@ -22,6 +22,7 @@
|
|||||||
#include <QScopedPointer>
|
#include <QScopedPointer>
|
||||||
#include <QString>
|
#include <QString>
|
||||||
#include <QStringList>
|
#include <QStringList>
|
||||||
|
#include <QTemporaryDir>
|
||||||
#include <atomic>
|
#include <atomic>
|
||||||
#include <functional>
|
#include <functional>
|
||||||
|
|
||||||
@@ -188,6 +189,9 @@ namespace BlackCore
|
|||||||
//! Save all settings
|
//! Save all settings
|
||||||
BlackMisc::CStatusMessage saveSettingsByKey(const QStringList &keys);
|
BlackMisc::CStatusMessage saveSettingsByKey(const QStringList &keys);
|
||||||
|
|
||||||
|
//! Directory for temporary files
|
||||||
|
QString getTemporaryDirectory() const;
|
||||||
|
|
||||||
//! Run event loop
|
//! Run event loop
|
||||||
static int exec();
|
static int exec();
|
||||||
|
|
||||||
@@ -434,6 +438,7 @@ namespace BlackCore
|
|||||||
QScopedPointer<CSetupReader> m_setupReader; //!< setup reader
|
QScopedPointer<CSetupReader> m_setupReader; //!< setup reader
|
||||||
QScopedPointer<CWebDataServices> m_webDataServices; //!< web data services
|
QScopedPointer<CWebDataServices> m_webDataServices; //!< web data services
|
||||||
QScopedPointer<BlackMisc::CFileLogger> m_fileLogger; //!< file logger
|
QScopedPointer<BlackMisc::CFileLogger> m_fileLogger; //!< file logger
|
||||||
|
QTemporaryDir m_tempDirectory; //!< temp.directory for the lifetime of application object
|
||||||
QNetworkAccessManager m_accessManager { this }; //!< single network access manager
|
QNetworkAccessManager m_accessManager { this }; //!< single network access manager
|
||||||
CCookieManager m_cookieManager; //!< single cookie manager for our access manager
|
CCookieManager m_cookieManager; //!< single cookie manager for our access manager
|
||||||
QString m_applicationName; //!< application name
|
QString m_applicationName; //!< application name
|
||||||
|
|||||||
Reference in New Issue
Block a user