diff options
author | Friedemann Kleint <Friedemann.Kleint@digia.com> | 2014-07-25 08:53:09 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@digia.com> | 2014-07-25 15:14:27 +0200 |
commit | 03ff5b35a5b852f56584484f449997f88e16668d (patch) | |
tree | 28813a3ac4c07d019f906002327eb9e2de6968b4 /tests/auto | |
parent | 6a802158597ae8b58b8c8304465f62b5b02ce9ce (diff) |
tst_qwidget: Fix top level widget leaks.
Fix tests widgets leaking widgets and ensure it stays
that way by adding a check to cleanup().
Task-number: QTBUG-38858
Change-Id: I77a81d823c68cf0b4e51c2da55b1c473d6e4170b
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Diffstat (limited to 'tests/auto')
-rw-r--r-- | tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp index 4252fb673b..1134b82a82 100644 --- a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp +++ b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp @@ -667,6 +667,8 @@ void tst_QWidget::init() void tst_QWidget::cleanup() { + // Only 'testwidget', do not leak any other widgets. + QCOMPARE(QApplication::topLevelWidgets().size(), 1); } // Helper class... @@ -1211,7 +1213,7 @@ void tst_QWidget::isEnabledTo() QVERIFY( grandChildWidget->isEnabledTo( childWidget ) ); QVERIFY( !grandChildWidget->isEnabledTo( testWidget ) ); - QMainWindow* childDialog = new QMainWindow(testWidget); + QScopedPointer<QMainWindow> childDialog(new QMainWindow(testWidget)); testWidget->setEnabled(false); QVERIFY(!childDialog->isEnabled()); QVERIFY(childDialog->isEnabledTo(0)); @@ -2275,6 +2277,7 @@ void tst_QWidget::showMinimizedKeepsFocus() QTRY_COMPARE(qApp->focusWidget(), child); child->setParent(0); + QScopedPointer<QWidget> childGuard(child); QCOMPARE(window.focusWidget(), static_cast<QWidget*>(0)); QCOMPARE(qApp->focusWidget(), static_cast<QWidget*>(0)); } @@ -10211,11 +10214,11 @@ public: void tst_QWidget::keyboardModifiers() { - KeyboardWidget* w = new KeyboardWidget; - QTest::mouseClick(w, Qt::LeftButton, Qt::ControlModifier); - QCOMPARE(w->m_eventCounter, 1); - QCOMPARE(int(w->m_modifiers), int(Qt::ControlModifier)); - QCOMPARE(int(w->m_appModifiers), int(Qt::ControlModifier)); + KeyboardWidget w; + QTest::mouseClick(&w, Qt::LeftButton, Qt::ControlModifier); + QCOMPARE(w.m_eventCounter, 1); + QCOMPARE(int(w.m_modifiers), int(Qt::ControlModifier)); + QCOMPARE(int(w.m_appModifiers), int(Qt::ControlModifier)); } class DClickWidget : public QWidget |