summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cpptoolstestcase.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/cpptools/cpptoolstestcase.cpp')
-rw-r--r--src/plugins/cpptools/cpptoolstestcase.cpp22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/plugins/cpptools/cpptoolstestcase.cpp b/src/plugins/cpptools/cpptoolstestcase.cpp
index 271410bf4c..8ee8aa6304 100644
--- a/src/plugins/cpptools/cpptoolstestcase.cpp
+++ b/src/plugins/cpptools/cpptoolstestcase.cpp
@@ -77,8 +77,12 @@ TestDocument::TestDocument(const QByteArray &fileName, const QByteArray &source,
QString TestDocument::filePath() const
{
+ if (!m_baseDirectory.isEmpty())
+ return QDir::cleanPath(m_baseDirectory + QLatin1Char('/') + m_fileName);
+
if (!QFileInfo(m_fileName).isAbsolute())
return QDir::tempPath() + QLatin1Char('/') + m_fileName;
+
return m_fileName;
}
@@ -263,10 +267,26 @@ void ProjectOpenerAndCloser::onGcFinished()
m_gcFinished = true;
}
-TemporaryCopiedDir::TemporaryCopiedDir(const QString &sourceDirPath)
+TemporaryDir::TemporaryDir()
: m_temporaryDir(QDir::tempPath() + QLatin1String("/qtcreator-tests-XXXXXX"))
, m_isValid(m_temporaryDir.isValid())
{
+}
+
+QString TemporaryDir::createFile(const QByteArray &relativePath, const QByteArray &contents)
+{
+ const QString relativePathString = QString::fromUtf8(relativePath);
+ if (relativePathString.isEmpty() || QFileInfo(relativePathString).isAbsolute())
+ return QString();
+
+ const QString filePath = m_temporaryDir.path() + QLatin1Char('/') + relativePathString;
+ if (!TestCase::writeFile(filePath, contents))
+ return QString();
+ return filePath;
+}
+
+TemporaryCopiedDir::TemporaryCopiedDir(const QString &sourceDirPath)
+{
if (!m_isValid)
return;