diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2021-08-30 10:58:08 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2021-09-01 14:53:58 +0000 |
commit | 284817fae6514701902ccdb834c2faa46462f2e8 (patch) | |
tree | 44a8c7d9813dc110b61c4639036366c7696bd7e9 /src/plugins/cpptools/cpptoolstestcase.h | |
parent | 3e1fa0f170d523971d2c3c12da15a6e291f56511 (diff) | |
download | qt-creator-284817fae6514701902ccdb834c2faa46462f2e8.tar.gz |
Merge CppTools into CppEditor
There was no proper separation of responsibilities between these
plugins. In particular, CppTools had lots of editor-related
functionality, so it's not clear why it was separated out in the first
place.
In fact, for a lot of code, it seemed quite arbitrary where it was put
(just one example: switchHeaderSource() was in CppTools, wheras
switchDeclarationDefinition() was in CppEditor).
Merging the plugins will enable us to get rid of various convoluted
pseudo-abstractions that were only introduced to keep up the artificial
separation.
Change-Id: Iafc3bce625b4794f6d4aa03df6cddc7f2d26716a
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Diffstat (limited to 'src/plugins/cpptools/cpptoolstestcase.h')
-rw-r--r-- | src/plugins/cpptools/cpptoolstestcase.h | 202 |
1 files changed, 0 insertions, 202 deletions
diff --git a/src/plugins/cpptools/cpptoolstestcase.h b/src/plugins/cpptools/cpptoolstestcase.h deleted file mode 100644 index f0dd27d48c..0000000000 --- a/src/plugins/cpptools/cpptoolstestcase.h +++ /dev/null @@ -1,202 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -****************************************************************************/ - -#pragma once - -#include "cpptools_global.h" - -#include "projectinfo.h" - -#include <cplusplus/CppDocument.h> -#include <utils/temporarydirectory.h> - -#include <QEventLoop> -#include <QStringList> -#include <QTimer> - -namespace CPlusPlus { -class Document; -class Snapshot; -} - -namespace Core { class IEditor; } -namespace ProjectExplorer { -class Kit; -class Project; -} - -namespace TextEditor { -class BaseTextEditor; -class IAssistProposal; -} - -namespace CppTools { -class CppModelManager; - -namespace Tests { - -int CPPTOOLS_EXPORT clangdIndexingTimeout(); - -template <typename Signal> inline bool waitForSignalOrTimeout( - const typename QtPrivate::FunctionPointer<Signal>::Object *sender, Signal signal, - int timeoutInMs) -{ - QTimer timer; - timer.setSingleShot(true); - timer.setInterval(timeoutInMs); - QEventLoop loop; - QObject::connect(&timer, &QTimer::timeout, &loop, &QEventLoop::quit); - QObject::connect(sender, signal, &loop, &QEventLoop::quit); - timer.start(); - loop.exec(); - return timer.isActive(); -} - -class CPPTOOLS_EXPORT BaseCppTestDocument -{ -public: - BaseCppTestDocument(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; -}; - -class CPPTOOLS_EXPORT TestCase -{ - Q_DISABLE_COPY(TestCase) - -public: - explicit TestCase(bool runGarbageCollector = true); - ~TestCase(); - - bool succeededSoFar() const; - bool openBaseTextEditor(const QString &fileName, TextEditor::BaseTextEditor **editor); - void closeEditorAtEndOfTestCase(Core::IEditor *editor); - - static bool closeEditorWithoutGarbageCollectorInvocation(Core::IEditor *editor); - - static bool parseFiles(const QString &filePath); - static bool parseFiles(const QSet<QString> &filePaths); - - static CPlusPlus::Snapshot globalSnapshot(); - static bool garbageCollectGlobalSnapshot(); - - static bool waitForProcessedEditorDocument(const QString &filePath, int timeOutInMs = 5000); - - enum { defaultTimeOutInMs = 30 * 1000 /*= 30 secs*/ }; - static bool waitUntilProjectIsFullyOpened(ProjectExplorer::Project *project, - int timeOutInMs = defaultTimeOutInMs); - static CPlusPlus::Document::Ptr waitForFileInGlobalSnapshot( - const QString &filePath, - int timeOutInMs = defaultTimeOutInMs); - static QList<CPlusPlus::Document::Ptr> waitForFilesInGlobalSnapshot( - const QStringList &filePaths, - int timeOutInMs = defaultTimeOutInMs); - - static bool writeFile(const QString &filePath, const QByteArray &contents); - -protected: - CppModelManager *m_modelManager; - bool m_succeededSoFar; - -private: - QList<Core::IEditor *> m_editorsToClose; - bool m_runGarbageCollector; -}; - -class CPPTOOLS_EXPORT ProjectOpenerAndCloser -{ -public: - ProjectOpenerAndCloser(); - ~ProjectOpenerAndCloser(); // Closes opened projects - - CppTools::ProjectInfo::ConstPtr open( - const QString &projectFile, - bool configureAsExampleProject = false, - ProjectExplorer::Kit *kit = nullptr); - -private: - 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().path(); } - - QString createFile(const QByteArray &relativePath, const QByteArray &contents); - -protected: - Utils::TemporaryDirectory m_temporaryDir; - bool m_isValid; -}; - -class CPPTOOLS_EXPORT TemporaryCopiedDir : public TemporaryDir -{ -public: - explicit TemporaryCopiedDir(const QString &sourceDirPath); - QString absolutePath(const QByteArray &relativePath) const; - -private: - TemporaryCopiedDir(); -}; - -class CPPTOOLS_EXPORT VerifyCleanCppModelManager -{ -public: - VerifyCleanCppModelManager(); - ~VerifyCleanCppModelManager(); - static bool isClean(bool testCleanedProjects = true); -}; - -class FileWriterAndRemover -{ -public: - FileWriterAndRemover(const QString &filePath, const QByteArray &contents); // Writes file - bool writtenSuccessfully() const { return m_writtenSuccessfully; } - ~FileWriterAndRemover(); // Removes file - -private: - const QString m_filePath; - bool m_writtenSuccessfully; -}; - -} // namespace Tests -} // namespace CppTools |