diff options
author | Qt CI Bot <qt_ci_bot@qt-project.org> | 2021-04-12 13:55:09 +0000 |
---|---|---|
committer | Qt CI Bot <qt_ci_bot@qt-project.org> | 2021-04-12 13:55:09 +0000 |
commit | 6d624ab01a1cc5ef633436ca77d440c4be4b1a49 (patch) | |
tree | 0ef0d5452fe9e1d39d88562dff896055a494cb04 /tests/auto | |
parent | ffd13e19a9d34387d9a48816f06b38f47d4efbc6 (diff) | |
parent | bb85831e4de5e2c4951a0c40003ccf36f57cbd93 (diff) |
Merge integration refs/builds/qtci/dev/1618224780
Diffstat (limited to 'tests/auto')
-rw-r--r-- | tests/auto/corelib/thread/qfuture/tst_qfuture.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/auto/corelib/thread/qfuture/tst_qfuture.cpp b/tests/auto/corelib/thread/qfuture/tst_qfuture.cpp index 71cfbd054b..5f6267ec7d 100644 --- a/tests/auto/corelib/thread/qfuture/tst_qfuture.cpp +++ b/tests/auto/corelib/thread/qfuture/tst_qfuture.cpp @@ -3228,6 +3228,25 @@ void tst_QFuture::signalConnect() QVERIFY(future.isCanceled()); QVERIFY(!future.isValid()); } + + // Signal emitted, causing Sender to be destroyed + { + SenderObject *sender = new SenderObject(); + + auto future = QtFuture::connect(sender, &SenderObject::intArgSignal); + future.then([sender](int) { + // Scenario: Sender no longer needed, so it's deleted + delete sender; + }); + + QSignalSpy spy(sender, &SenderObject::destroyed); + emit sender->intArgSignal(5); + spy.wait(); + + QVERIFY(future.isFinished()); + QVERIFY(!future.isCanceled()); + QVERIFY(future.isValid()); + } } void tst_QFuture::waitForFinished() |