diff options
author | Eike Ziller <eike.ziller@digia.com> | 2013-10-01 10:04:18 +0200 |
---|---|---|
committer | Eike Ziller <eike.ziller@digia.com> | 2013-10-01 10:04:18 +0200 |
commit | a0b2d10822fa61c859395dc5f1cb004c777170f3 (patch) | |
tree | dc39004651e62cc814f5e6e9a9ba26543d323c9a /src | |
parent | 1d23165922e966c45a492f72e42a306b0754ff1d (diff) | |
parent | d9602ca550c53e60a5229bfec9539e41fa5a694c (diff) | |
download | qt-creator-a0b2d10822fa61c859395dc5f1cb004c777170f3.tar.gz |
Merge remote-tracking branch 'origin/2.8'
Conflicts:
src/plugins/coreplugin/coreplugin.pro
src/plugins/coreplugin/coreplugin.qbs
src/plugins/cppeditor/cppdoxygen_test.cpp
src/plugins/cppeditor/cppquickfix_test.cpp
src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp
src/plugins/cpptools/cppcompletion_test.cpp
Change-Id: I392229af933c1e56b9ea459d4d240a2144b4bfcb
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/coreplugin/coreplugin.pro | 6 | ||||
-rw-r--r-- | src/plugins/coreplugin/coreplugin.qbs | 3 | ||||
-rw-r--r-- | src/plugins/coreplugin/plugintestutils.cpp | 50 | ||||
-rw-r--r-- | src/plugins/coreplugin/plugintestutils.h | 50 | ||||
-rw-r--r-- | src/plugins/cppeditor/cppdoxygen_test.cpp | 4 | ||||
-rw-r--r-- | src/plugins/cppeditor/cppquickfix_test.cpp | 8 | ||||
-rw-r--r-- | src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp | 4 | ||||
-rw-r--r-- | src/plugins/cpptools/cppcompletion_test.cpp | 4 |
8 files changed, 117 insertions, 12 deletions
diff --git a/src/plugins/coreplugin/coreplugin.pro b/src/plugins/coreplugin/coreplugin.pro index 10b4087a43..fbcb6d7990 100644 --- a/src/plugins/coreplugin/coreplugin.pro +++ b/src/plugins/coreplugin/coreplugin.pro @@ -237,6 +237,8 @@ else:unix { OTHER_FILES += editormanager/BinFiles.mimetypes.xml equals(TEST, 1) { - SOURCES += testdatadir.cpp - HEADERS += testdatadir.h + SOURCES += testdatadir.cpp \ + plugintestutils.cpp + HEADERS += testdatadir.h \ + plugintestutils.h } diff --git a/src/plugins/coreplugin/coreplugin.qbs b/src/plugins/coreplugin/coreplugin.qbs index fc2dc19c81..8220b10104 100644 --- a/src/plugins/coreplugin/coreplugin.qbs +++ b/src/plugins/coreplugin/coreplugin.qbs @@ -1,5 +1,6 @@ import qbs.base 1.0 import "../QtcPlugin.qbs" as QtcPlugin +import "../../../qbs/defaults.js" as Defaults QtcPlugin { name: "Core" @@ -181,6 +182,8 @@ QtcPlugin { name: "Tests" condition: project.testsEnabled files: [ + "plugintestutils.cpp", + "plugintestutils.h", "testdatadir.cpp", "testdatadir.h" ] diff --git a/src/plugins/coreplugin/plugintestutils.cpp b/src/plugins/coreplugin/plugintestutils.cpp new file mode 100644 index 0000000000..03fd20999d --- /dev/null +++ b/src/plugins/coreplugin/plugintestutils.cpp @@ -0,0 +1,50 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** 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 Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + + +#include "plugintestutils.h" + +#include "editormanager/editormanager.h" +#include "editormanager/ieditor.h" + +#include <QCoreApplication> + +void Core::Tests::closeAndDeleteEditors(QList<IEditor *> editorsToClose) +{ + EditorManager::closeEditors(editorsToClose, /*askAboutModifiedEditors=*/ false); + // The editors are going to be deleted by the event loop (deleteLater()), + // but for tests we need them deleted now. + foreach (Core::IEditor *editor, editorsToClose) + QCoreApplication::sendPostedEvents(editor, QEvent::DeferredDelete); +} + +void Core::Tests::closeAndDeleteEditor(Core::IEditor *editor) +{ + closeAndDeleteEditors(QList<IEditor *>() << editor); +} diff --git a/src/plugins/coreplugin/plugintestutils.h b/src/plugins/coreplugin/plugintestutils.h new file mode 100644 index 0000000000..69ada2bad3 --- /dev/null +++ b/src/plugins/coreplugin/plugintestutils.h @@ -0,0 +1,50 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** 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 Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + + +#ifndef PLUGINTESTUTILS_H +#define PLUGINTESTUTILS_H + +#include "core_global.h" + +#include <QList> + +namespace Core { + +class IEditor; + +namespace Tests { + +void CORE_EXPORT closeAndDeleteEditor(Core::IEditor *editor); +void CORE_EXPORT closeAndDeleteEditors(QList<Core::IEditor *> editorsToClose); + +} // namespace Tests +} // namespace Core + +#endif // PLUGINTESTUTILS_H diff --git a/src/plugins/cppeditor/cppdoxygen_test.cpp b/src/plugins/cppeditor/cppdoxygen_test.cpp index 8feffc6579..5ee9989f60 100644 --- a/src/plugins/cppeditor/cppdoxygen_test.cpp +++ b/src/plugins/cppeditor/cppdoxygen_test.cpp @@ -30,6 +30,7 @@ #include "cppeditor.h" #include <coreplugin/editormanager/editormanager.h> +#include <coreplugin/plugintestutils.h> #include <cplusplus/CppDocument.h> #include <cppeditor/cppeditor.h> #include <cppeditor/cppeditorplugin.h> @@ -115,8 +116,7 @@ TestCase::TestCase(const QByteArray &input) TestCase::~TestCase() { - EditorManager::closeEditor(editor, false); - QCoreApplication::processEvents(); // process any pending events + Core::Tests::closeAndDeleteEditor(editor); // Remove the test file from the code-model CppTools::CppModelManagerInterface *mmi = CppTools::CppModelManagerInterface::instance(); diff --git a/src/plugins/cppeditor/cppquickfix_test.cpp b/src/plugins/cppeditor/cppquickfix_test.cpp index 4d7fd9af0d..c20e2570c3 100644 --- a/src/plugins/cppeditor/cppquickfix_test.cpp +++ b/src/plugins/cppeditor/cppquickfix_test.cpp @@ -34,11 +34,11 @@ #include "cppquickfixassistant.h" #include "cppquickfixes.h" -#include <cpptools/cpppreprocessertesthelper.h> - +#include <coreplugin/plugintestutils.h> #include <cpptools/cppcodestylepreferences.h> #include <cpptools/cppmodelmanager.h> #include <cpptools/cpppreprocessor.h> +#include <cpptools/cpppreprocessertesthelper.h> #include <cpptools/cpptoolssettings.h> #include <cpptools/includeutils.h> @@ -239,6 +239,7 @@ void TestCase::init(const QStringList &includePaths) // Rehighlight testFile->editorWidget->semanticRehighlight(true); + // Wait for the semantic info from the future while (testFile->editorWidget->semanticInfo().doc.isNull()) QCoreApplication::processEvents(); @@ -264,8 +265,7 @@ TestCase::~TestCase() if (testFile->editor) editorsToClose << testFile->editor; } - EditorManager::closeEditors(editorsToClose, false); - QCoreApplication::processEvents(); // process any pending events + Core::Tests::closeAndDeleteEditors(editorsToClose); // Remove the test files from the code-model CppModelManagerInterface *mmi = CppModelManagerInterface::instance(); diff --git a/src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp b/src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp index 5d541e49e2..5e115202ff 100644 --- a/src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp +++ b/src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp @@ -30,6 +30,7 @@ #include "cppeditor.h" #include "cppeditorplugin.h" +#include <coreplugin/plugintestutils.h> #include <utils/fileutils.h> #include <QDebug> @@ -251,8 +252,7 @@ TestCase::~TestCase() if (testFile->editor) editorsToClose << testFile->editor; } - EditorManager::closeEditors(editorsToClose, false); - QCoreApplication::processEvents(); // process any pending events + Core::Tests::closeAndDeleteEditors(editorsToClose); // Remove the test files from the code-model CppModelManagerInterface *mmi = CppTools::CppModelManagerInterface::instance(); diff --git a/src/plugins/cpptools/cppcompletion_test.cpp b/src/plugins/cpptools/cppcompletion_test.cpp index 23556b58b9..3616561d09 100644 --- a/src/plugins/cpptools/cppcompletion_test.cpp +++ b/src/plugins/cpptools/cppcompletion_test.cpp @@ -31,6 +31,7 @@ #include "cppcompletionassist.h" #include "cppmodelmanager.h" +#include <coreplugin/plugintestutils.h> #include <texteditor/plaintexteditor.h> #include <texteditor/codeassist/iassistproposal.h> #include <texteditor/convenience.h> @@ -91,8 +92,7 @@ public: ~CompletionTestCase() { - EditorManager::closeEditors(QList<IEditor*>() << editor, - /*askAboutModifiedEditors=*/ false); + Core::Tests::closeAndDeleteEditor(editor); cmm->GC(); QVERIFY(cmm->snapshot().isEmpty()); } |