mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-22 23:05:36 +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());
|
||||
this->setObjectName(this->m_applicationName);
|
||||
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->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 str(CVersion::version());
|
||||
@@ -398,17 +415,17 @@ namespace BlackCore
|
||||
|
||||
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)
|
||||
{
|
||||
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)
|
||||
{
|
||||
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)
|
||||
@@ -418,24 +435,23 @@ namespace BlackCore
|
||||
multiPart->moveToThread(this->m_accessManager.thread());
|
||||
}
|
||||
|
||||
return httpRequestImpl(request, callback, [ this, multiPart ] (QNetworkAccessManager &nam, const QNetworkRequest &request)
|
||||
{
|
||||
QNetworkReply *reply = nam.post(request, multiPart);
|
||||
Q_ASSERT(reply);
|
||||
multiPart->setParent(reply);
|
||||
return reply;
|
||||
}
|
||||
);
|
||||
return httpRequestImpl(request, callback, [ this, multiPart ](QNetworkAccessManager & nam, const QNetworkRequest & request)
|
||||
{
|
||||
QNetworkReply *reply = nam.post(request, multiPart);
|
||||
Q_ASSERT(reply);
|
||||
multiPart->setParent(reply);
|
||||
return reply;
|
||||
});
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
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()
|
||||
@@ -941,29 +957,29 @@ namespace BlackCore
|
||||
return CUrlList();
|
||||
}
|
||||
|
||||
#ifdef BLACK_USE_CRASHPAD
|
||||
#ifdef BLACK_USE_CRASHPAD
|
||||
base::FilePath qstringToFilePath(const QString &str)
|
||||
{
|
||||
#ifdef Q_OS_WIN
|
||||
#ifdef Q_OS_WIN
|
||||
return base::FilePath(str.toStdWString());
|
||||
#else
|
||||
#else
|
||||
return base::FilePath(str.toStdString());
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
void CApplication::initCrashHandler()
|
||||
{
|
||||
#ifdef BLACK_USE_CRASHPAD
|
||||
#ifdef BLACK_USE_CRASHPAD
|
||||
// No crash handling for unit tests
|
||||
if (isUnitTest()) { return; }
|
||||
|
||||
static const QString extension = CBuildConfig::isRunningOnWindowsNtPlatform() ? ".exe" : QString();
|
||||
static const QString handler = CDirectoryUtils::applicationDirectoryPath() + "/" + "swift_crashpad_handler" + extension;
|
||||
static const QString database = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) +
|
||||
"/org.swift-project/" +
|
||||
CDirectoryUtils::normalizedApplicationDirectory() +
|
||||
"/crashpad";
|
||||
"/org.swift-project/" +
|
||||
CDirectoryUtils::normalizedApplicationDirectory() +
|
||||
"/crashpad";
|
||||
|
||||
if (!QFileInfo::exists(handler))
|
||||
{
|
||||
@@ -986,16 +1002,16 @@ namespace BlackCore
|
||||
m_crashpadClient->StartHandler(qstringToFilePath(handler), qstringToFilePath(database),
|
||||
serverUrl.getFullUrl().toStdString(), annotations, {}, false);
|
||||
m_crashpadClient->UseHandler();
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
void CApplication::crashDumpUploadEnabledChanged()
|
||||
{
|
||||
#ifdef BLACK_USE_CRASHPAD
|
||||
#ifdef BLACK_USE_CRASHPAD
|
||||
if (!m_crashReportDatabase) { return; }
|
||||
auto settings = m_crashReportDatabase->GetSettings();
|
||||
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)
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
#include <QScopedPointer>
|
||||
#include <QString>
|
||||
#include <QStringList>
|
||||
#include <QTemporaryDir>
|
||||
#include <atomic>
|
||||
#include <functional>
|
||||
|
||||
@@ -188,6 +189,9 @@ namespace BlackCore
|
||||
//! Save all settings
|
||||
BlackMisc::CStatusMessage saveSettingsByKey(const QStringList &keys);
|
||||
|
||||
//! Directory for temporary files
|
||||
QString getTemporaryDirectory() const;
|
||||
|
||||
//! Run event loop
|
||||
static int exec();
|
||||
|
||||
@@ -434,6 +438,7 @@ namespace BlackCore
|
||||
QScopedPointer<CSetupReader> m_setupReader; //!< setup reader
|
||||
QScopedPointer<CWebDataServices> m_webDataServices; //!< web data services
|
||||
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
|
||||
CCookieManager m_cookieManager; //!< single cookie manager for our access manager
|
||||
QString m_applicationName; //!< application name
|
||||
|
||||
Reference in New Issue
Block a user