diff options
Diffstat (limited to 'tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp')
-rw-r--r-- | tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp index 788e005939..9d2ed2e14e 100644 --- a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp +++ b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp @@ -399,6 +399,8 @@ private slots: void closeEvent(); void closeWithChildWindow(); + void deleteWindowInCloseEvent(); + private: bool ensureScreenSize(int width, int height); @@ -11144,5 +11146,23 @@ void tst_QWidget::closeWithChildWindow() QVERIFY(!childWidget->isVisible()); } +class DeleteOnCloseEventWidget : public QWidget +{ +protected: + virtual void closeEvent(QCloseEvent *e) override + { + e->accept(); + delete this; + } +}; + +void tst_QWidget::deleteWindowInCloseEvent() +{ + // Just checking if closing this widget causes a crash + auto widget = new DeleteOnCloseEventWidget; + widget->close(); + QVERIFY(true); +} + QTEST_MAIN(tst_QWidget) #include "tst_qwidget.moc" |