diff options
Diffstat (limited to 'src/plugins/cpptools/cpptoolstestcase.h')
-rw-r--r-- | src/plugins/cpptools/cpptoolstestcase.h | 61 |
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: |