summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cpptoolstestcase.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/cpptools/cpptoolstestcase.h')
-rw-r--r--src/plugins/cpptools/cpptoolstestcase.h61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/plugins/cpptools/cpptoolstestcase.h b/src/plugins/cpptools/cpptoolstestcase.h
index 4e3e319028..f96bd85dc1 100644
--- a/src/plugins/cpptools/cpptoolstestcase.h
+++ b/src/plugins/cpptools/cpptoolstestcase.h
@@ -37,6 +37,7 @@
#include <coreplugin/editormanager/ieditor.h>
#include <QStringList>
+#include <QTemporaryDir>
namespace CPlusPlus {
class Document;
@@ -44,6 +45,7 @@ class Snapshot;
}
namespace Core { class IEditor; }
+namespace ProjectExplorer { class Project; }
namespace TextEditor {
class BaseTextEditor;
@@ -58,10 +60,14 @@ class CPPTOOLS_EXPORT TestDocument
public:
TestDocument(const QByteArray &fileName, const QByteArray &source, char cursorMarker = '@');
+ QString baseDirectory() const { return m_baseDirectory; }
+ void setBaseDirectory(const QString &baseDirectory) { m_baseDirectory = baseDirectory; }
+
QString filePath() const;
bool writeToDisk() const;
public:
+ QString m_baseDirectory;
QString m_fileName;
QString m_source;
char m_cursorMarker;
@@ -87,6 +93,8 @@ public:
static CPlusPlus::Snapshot globalSnapshot();
static bool garbageCollectGlobalSnapshot();
+ static bool waitUntilCppModelManagerIsAwareOf(ProjectExplorer::Project *project,
+ int timeOut = 30 * 1000 /*= 30 secs*/);
static CPlusPlus::Document::Ptr waitForFileInGlobalSnapshot(const QString &filePath);
static QList<CPlusPlus::Document::Ptr> waitForFilesInGlobalSnapshot(
const QStringList &filePaths);
@@ -102,6 +110,59 @@ private:
bool m_runGarbageCollector;
};
+class CPPTOOLS_EXPORT ProjectOpenerAndCloser : public QObject
+{
+ Q_OBJECT
+
+public:
+ ProjectOpenerAndCloser(bool waitForFinishedGcOnDestruction = true);
+ ~ProjectOpenerAndCloser(); // Closes opened projects
+
+ ProjectInfo open(const QString &projectFile, bool configureAsExampleProject = false);
+
+private:
+ void onGcFinished();
+
+ bool m_waitForFinishedGcOnDestruction;
+ bool m_gcFinished;
+ QList<ProjectExplorer::Project *> m_openProjects;
+};
+
+class CPPTOOLS_EXPORT TemporaryDir
+{
+ Q_DISABLE_COPY(TemporaryDir)
+
+public:
+ TemporaryDir();
+
+ bool isValid() const { return m_isValid; }
+ QString path() const { return m_temporaryDir.path(); }
+
+ QString createFile(const QByteArray &relativePath, const QByteArray &contents);
+
+protected:
+ QTemporaryDir m_temporaryDir;
+ bool m_isValid;
+};
+
+class CPPTOOLS_EXPORT TemporaryCopiedDir : public TemporaryDir
+{
+public:
+ TemporaryCopiedDir(const QString &sourceDirPath);
+ QString absolutePath(const QByteArray &relativePath) const;
+
+private:
+ TemporaryCopiedDir();
+};
+
+class CPPTOOLS_EXPORT VerifyCleanCppModelManager
+{
+public:
+ VerifyCleanCppModelManager();
+ ~VerifyCleanCppModelManager();
+ static bool isClean();
+};
+
class FileWriterAndRemover
{
public: