diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/corelib/thread/qpromise/tst_qpromise.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/auto/corelib/thread/qpromise/tst_qpromise.cpp b/tests/auto/corelib/thread/qpromise/tst_qpromise.cpp index 5de8ce13ab..12206aa9fc 100644 --- a/tests/auto/corelib/thread/qpromise/tst_qpromise.cpp +++ b/tests/auto/corelib/thread/qpromise/tst_qpromise.cpp @@ -40,6 +40,7 @@ private slots: #endif void cancelWhenReassigned(); void cancelWhenDestroyedWithoutStarting(); + void cancelWhenDestroyedRunsContinuations(); void finishWhenSwapped(); void cancelWhenMoved(); void waitUntilResumed(); @@ -494,6 +495,25 @@ void tst_QPromise::cancelWhenDestroyedWithoutStarting() QVERIFY(future.isFinished()); } +void tst_QPromise::cancelWhenDestroyedRunsContinuations() +{ + QFuture<void> future; + bool onCanceledCalled = false; + bool thenCalled = false; + { + QPromise<void> promise; + future = promise.future(); + future.then([&] { + thenCalled = true; + }).onCanceled([&] { + onCanceledCalled = true; + }); + } + QVERIFY(future.isFinished()); + QVERIFY(!thenCalled); + QVERIFY(onCanceledCalled); +} + void tst_QPromise::finishWhenSwapped() { #if !QT_CONFIG(cxx11_future) |