diff options
author | Sergio Ahumada <sergio.ahumada@digia.com> | 2013-09-19 15:50:28 +0200 |
---|---|---|
committer | Sergio Ahumada <sergio.ahumada@digia.com> | 2013-09-19 15:50:28 +0200 |
commit | 715d0b474b23bc230319c33eb7316af23b5fccaa (patch) | |
tree | ffd714454ce559433551632ffaaee1a21d8fd0a3 /tests | |
parent | 607f2db351edf4b0f677c302fa37733596abe024 (diff) | |
parent | 52eb21be3dd3a76d018b5b86a8d72d68accb924a (diff) |
Merge branch 'stable' into dev
Conflicts:
src/qml/qml/v8/qqmlbuiltinfunctions.cpp
tests/auto/qml/qml.pro
Change-Id: Ib373aed6a8f8df9521740fb5b080daed38546cd2
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/particles/qquicktrailemitter/qquicktrailemitter.pro | 2 | ||||
-rw-r--r-- | tests/auto/qml/qml.pro | 3 | ||||
-rw-r--r-- | tests/auto/qml/qqmlenginecleanup/data/TestType.qml | 43 | ||||
-rw-r--r-- | tests/auto/qml/qqmlenginecleanup/data/types.qml | 56 | ||||
-rw-r--r-- | tests/auto/qml/qqmlenginecleanup/qqmlenginecleanup.pro | 10 | ||||
-rw-r--r-- | tests/auto/qml/qqmlenginecleanup/tst_qqmlenginecleanup.cpp | 98 | ||||
-rw-r--r-- | tests/manual/qmltypememory/main.qml | 1 |
7 files changed, 212 insertions, 1 deletions
diff --git a/tests/auto/particles/qquicktrailemitter/qquicktrailemitter.pro b/tests/auto/particles/qquicktrailemitter/qquicktrailemitter.pro index 1cb792eff2..1f957c23ff 100644 --- a/tests/auto/particles/qquicktrailemitter/qquicktrailemitter.pro +++ b/tests/auto/particles/qquicktrailemitter/qquicktrailemitter.pro @@ -3,6 +3,8 @@ TARGET = tst_qquicktrailemitter SOURCES += tst_qquicktrailemitter.cpp macx:CONFIG -= app_bundle +win32-msvc2012:CONFIG += insignificant_test # QTBUG-33421 + include (../../shared/util.pri) TESTDATA = data/* diff --git a/tests/auto/qml/qml.pro b/tests/auto/qml/qml.pro index 58132786a0..2036f1cd7a 100644 --- a/tests/auto/qml/qml.pro +++ b/tests/auto/qml/qml.pro @@ -56,7 +56,8 @@ PRIVATETESTS += \ qrcqml \ qqmltimer \ qqmlinstantiator \ - qv4debugger + qv4debugger \ + qqmlenginecleanup qtHaveModule(widgets) { PUBLICTESTS += \ diff --git a/tests/auto/qml/qqmlenginecleanup/data/TestType.qml b/tests/auto/qml/qqmlenginecleanup/data/TestType.qml new file mode 100644 index 0000000000..a667c11327 --- /dev/null +++ b/tests/auto/qml/qqmlenginecleanup/data/TestType.qml @@ -0,0 +1,43 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Research In Motion. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the autotests of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQml 2.0 +QtObject{property int notJustAStandardQtObject: 10 } diff --git a/tests/auto/qml/qqmlenginecleanup/data/types.qml b/tests/auto/qml/qqmlenginecleanup/data/types.qml new file mode 100644 index 0000000000..c8613a270d --- /dev/null +++ b/tests/auto/qml/qqmlenginecleanup/data/types.qml @@ -0,0 +1,56 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Research In Motion. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the autotests of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQml 2.0 +import QtQuick 2.0 +import QtQuick.Window 2.0 +import QtQuick.Particles 2.0 +import Test 2.0 +import "." + +QtObject { + //Doesn't create items, just checks that the types are accessible + property TestType tt + property TestTypeCpp ttc + property ParticleSystem ps + property Window wi + property Item it +} diff --git a/tests/auto/qml/qqmlenginecleanup/qqmlenginecleanup.pro b/tests/auto/qml/qqmlenginecleanup/qqmlenginecleanup.pro new file mode 100644 index 0000000000..6428933233 --- /dev/null +++ b/tests/auto/qml/qqmlenginecleanup/qqmlenginecleanup.pro @@ -0,0 +1,10 @@ +CONFIG += testcase +TARGET = tst_qqmlenginecleanup +macx:CONFIG -= app_bundle + +include (../../shared/util.pri) + +SOURCES += tst_qqmlenginecleanup.cpp + +QT += testlib qml +DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0 diff --git a/tests/auto/qml/qqmlenginecleanup/tst_qqmlenginecleanup.cpp b/tests/auto/qml/qqmlenginecleanup/tst_qqmlenginecleanup.cpp new file mode 100644 index 0000000000..e5bfbd0ec8 --- /dev/null +++ b/tests/auto/qml/qqmlenginecleanup/tst_qqmlenginecleanup.cpp @@ -0,0 +1,98 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Research In Motion. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "../../shared/util.h" +#include <QtCore/QObject> +#include <QtQml/qqml.h> +#include <QtQml/QQmlEngine> +#include <QtQml/QQmlComponent> + +//Separate test, because if engine cleanup attempts fail they can easily break unrelated tests +class tst_qqmlenginecleanup : public QQmlDataTest +{ + Q_OBJECT +public: + tst_qqmlenginecleanup() {} + +private slots: + void test_qmlClearTypeRegistrations(); +}; + +void tst_qqmlenginecleanup::test_qmlClearTypeRegistrations() +{ + //Test for preventing memory leaks is in tests/manual/qmltypememory + QQmlEngine* engine; + QQmlComponent* component; + QUrl testFile = testFileUrl("types.qml"); + + qmlRegisterType<QObject>("Test", 2, 0, "TestTypeCpp"); + engine = new QQmlEngine; + component = new QQmlComponent(engine, testFile); + QVERIFY(component->isReady()); + + delete engine; + delete component; + qmlClearTypeRegistrations(); + + //2nd run verifies that types can reload after a qmlClearTypeRegistrations + qmlRegisterType<QObject>("Test", 2, 0, "TestTypeCpp"); + engine = new QQmlEngine; + component = new QQmlComponent(engine, testFile); + QVERIFY(component->isReady()); + + delete engine; + delete component; + qmlClearTypeRegistrations(); + + //3nd run verifies that TestTypeCpp is no longer registered + engine = new QQmlEngine; + component = new QQmlComponent(engine, testFile); + QVERIFY(component->isError()); + QCOMPARE(component->errorString(), + testFile.toString() +":46 module \"Test\" is not installed\n"); + + delete engine; + delete component; +} + +QTEST_MAIN(tst_qqmlenginecleanup) + +#include "tst_qqmlenginecleanup.moc" diff --git a/tests/manual/qmltypememory/main.qml b/tests/manual/qmltypememory/main.qml index 7bc9006aec..fa78381601 100644 --- a/tests/manual/qmltypememory/main.qml +++ b/tests/manual/qmltypememory/main.qml @@ -51,4 +51,5 @@ QtObject { property TestType tt //No object, although it should be properly parented if there were one property TestTypeCpp tt2 //No object, although it should be properly parented if there were one property TestTypePlugin tt3 + property Item it } |