summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@digia.com>2013-10-01 10:04:18 +0200
committerEike Ziller <eike.ziller@digia.com>2013-10-01 10:04:18 +0200
commita0b2d10822fa61c859395dc5f1cb004c777170f3 (patch)
treedc39004651e62cc814f5e6e9a9ba26543d323c9a /src
parent1d23165922e966c45a492f72e42a306b0754ff1d (diff)
parentd9602ca550c53e60a5229bfec9539e41fa5a694c (diff)
downloadqt-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.pro6
-rw-r--r--src/plugins/coreplugin/coreplugin.qbs3
-rw-r--r--src/plugins/coreplugin/plugintestutils.cpp50
-rw-r--r--src/plugins/coreplugin/plugintestutils.h50
-rw-r--r--src/plugins/cppeditor/cppdoxygen_test.cpp4
-rw-r--r--src/plugins/cppeditor/cppquickfix_test.cpp8
-rw-r--r--src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp4
-rw-r--r--src/plugins/cpptools/cppcompletion_test.cpp4
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());
}