Commit a0b2d108 authored by Eike Ziller's avatar Eike Ziller

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
parents 1d231659 d9602ca5
......@@ -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
}
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"
]
......
/****************************************************************************
**
** 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);
}
/****************************************************************************
**
** 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
......@@ -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();
......
......@@ -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();
......
......@@ -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();
......
......@@ -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());
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment