diff options
author | Andrei Golubev <andrei.golubev@qt.io> | 2020-10-12 11:30:51 +0200 |
---|---|---|
committer | Andrei Golubev <andrei.golubev@qt.io> | 2020-10-16 09:48:10 +0200 |
commit | 3ca600bd2d02a6950938789cef96229b15ec0cfa (patch) | |
tree | 1a6b5801efae7294582b12e10b4c2a7f67796d05 /tests | |
parent | 696d94b132b2f352b5e6b889ad91c2437417fae8 (diff) |
Make QPromise::addResult() return boolean status of operation
Changed QPromise::addResult() to return bool value. True is returned
when result is added and false is returned when e.g. promise is in final
state (canceled or finished) or when addResult() is called twice with
the same index as argument (in which case new value is rejected)
Updated QFutureInterface::reportFinished() that accepts optional result
as argument to align with other result adding methods. This function
is "internal" only (as of now), so no documentation update is needed
Change-Id: I2d63069246e5e5c8cf04529c22bb296faaaae53d
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/corelib/thread/qfuture/tst_qfuture.cpp | 80 | ||||
-rw-r--r-- | tests/auto/corelib/thread/qpromise/tst_qpromise.cpp | 22 |
2 files changed, 51 insertions, 51 deletions
diff --git a/tests/auto/corelib/thread/qfuture/tst_qfuture.cpp b/tests/auto/corelib/thread/qfuture/tst_qfuture.cpp index 99f2144528..2d78af8f94 100644 --- a/tests/auto/corelib/thread/qfuture/tst_qfuture.cpp +++ b/tests/auto/corelib/thread/qfuture/tst_qfuture.cpp @@ -653,7 +653,7 @@ void tst_QFuture::futureInterface() { QFutureInterface<int> i; i.reportStarted(); - i.reportResult(10); + QVERIFY(i.reportResult(10)); future = i.future(); i.reportFinished(); } @@ -674,7 +674,7 @@ void tst_QFuture::futureInterface() QCOMPARE(intFuture.isStarted(), true); QCOMPARE(intFuture.isFinished(), false); - result.reportFinished(&value); + QVERIFY(result.reportFinished(&value)); QCOMPARE(intFuture.isStarted(), true); QCOMPARE(intFuture.isFinished(), true); @@ -701,9 +701,9 @@ void tst_QFuture::futureInterface() { QFutureInterface<int> i1; - i1.reportResult(1); + QVERIFY(i1.reportResult(1)); QFutureInterface<int> i2; - i2.reportResult(2); + QVERIFY(i2.reportResult(2)); swap(i1, i2); // ADL must resolve this QCOMPARE(i1.resultReference(0), 2); QCOMPARE(i2.resultReference(0), 1); @@ -867,15 +867,15 @@ void tst_QFuture::multipleResults() int result; result = 1; - a.reportResult(&result); + QVERIFY(a.reportResult(&result)); QCOMPARE(f.resultAt(0), 1); result = 2; - a.reportResult(&result); + QVERIFY(a.reportResult(&result)); QCOMPARE(f.resultAt(1), 2); result = 3; - a.reportResult(&result); + QVERIFY(a.reportResult(&result)); result = 4; a.reportFinished(&result); @@ -916,16 +916,16 @@ void tst_QFuture::indexedResults() QChar result; result = 'B'; - Interface.reportResult(&result, 1); + QVERIFY(Interface.reportResult(&result, 1)); QCOMPARE(f.resultAt(1), result); result = 'A'; - Interface.reportResult(&result, 0); + QVERIFY(Interface.reportResult(&result, 0)); QCOMPARE(f.resultAt(0), result); result = 'C'; - Interface.reportResult(&result); // no index + QVERIFY(Interface.reportResult(&result)); // no index QCOMPARE(f.resultAt(2), result); Interface.reportFinished(); @@ -941,22 +941,22 @@ void tst_QFuture::indexedResults() int result; result = 0; - Interface.reportResult(&result, 0); + QVERIFY(Interface.reportResult(&result, 0)); QVERIFY(f.isResultReadyAt(0)); QCOMPARE(f.resultAt(0), 0); result = 3; - Interface.reportResult(&result, 3); + QVERIFY(Interface.reportResult(&result, 3)); QVERIFY(f.isResultReadyAt(3)); QCOMPARE(f.resultAt(3), 3); result = 2; - Interface.reportResult(&result, 2); + QVERIFY(Interface.reportResult(&result, 2)); QVERIFY(f.isResultReadyAt(2)); QCOMPARE(f.resultAt(2), 2); result = 4; - Interface.reportResult(&result); // no index + QVERIFY(Interface.reportResult(&result)); // no index QVERIFY(f.isResultReadyAt(4)); QCOMPARE(f.resultAt(4), 4); @@ -1013,7 +1013,7 @@ void tst_QFuture::resultsAfterFinished() QCOMPARE(f.resultCount(), 0); result = 1; - a.reportResult(&result); + QVERIFY(a.reportResult(&result)); QCOMPARE(f.resultAt(0), 1); a.reportFinished(); @@ -1021,7 +1021,7 @@ void tst_QFuture::resultsAfterFinished() QCOMPARE(f.resultAt(0), 1); QCOMPARE(f.resultCount(), 1); result = 2; - a.reportResult(&result); + QVERIFY(!a.reportResult(&result)); QCOMPARE(f.resultCount(), 1); } // cancel it @@ -1034,7 +1034,7 @@ void tst_QFuture::resultsAfterFinished() QCOMPARE(f.resultCount(), 0); result = 1; - a.reportResult(&result); + QVERIFY(a.reportResult(&result)); QCOMPARE(f.resultAt(0), 1); QCOMPARE(f.resultCount(), 1); @@ -1044,7 +1044,7 @@ void tst_QFuture::resultsAfterFinished() QCOMPARE(f.resultCount(), 1); result = 2; - a.reportResult(&result); + QVERIFY(!a.reportResult(&result)); a.reportFinished(); } } @@ -1057,9 +1057,9 @@ void tst_QFuture::resultsAsList() int result; result = 1; - a.reportResult(&result); + QVERIFY(a.reportResult(&result)); result = 2; - a.reportResult(&result); + QVERIFY(a.reportResult(&result)); a.reportFinished(); @@ -1500,7 +1500,7 @@ void tst_QFuture::voidConversions() QFuture<int> intFuture(&iface); int value = 10; - iface.reportFinished(&value); + QVERIFY(iface.reportFinished(&value)); QFuture<void> voidFuture(intFuture); voidFuture = intFuture; @@ -1515,7 +1515,7 @@ void tst_QFuture::voidConversions() iface.reportStarted(); QFuture<QList<int> > listFuture(&iface); - iface.reportResult(QList<int>() << 1 << 2 << 3); + QVERIFY(iface.reportResult(QList<int>() << 1 << 2 << 3)); voidFuture = listFuture; } QCOMPARE(voidFuture.resultCount(), 0); @@ -2853,8 +2853,8 @@ void tst_QFuture::takeResults() const int expectedCount = 10; for (int i = 0; i < expectedCount; ++i) { - moveIface.reportAndMoveResult(UniquePtr{new int(0b101010)}, i); - copyIface.reportAndMoveResult(std::vector<int>{1,2,3,4,5}, i); + QVERIFY(moveIface.reportAndMoveResult(UniquePtr{new int(0b101010)}, i)); + QVERIFY(copyIface.reportAndMoveResult(std::vector<int>{1,2,3,4,5}, i)); } moveIface.reportFinished(); @@ -2872,7 +2872,7 @@ void tst_QFuture::takeResult() { QFutureInterface<UniquePtr> iface; iface.reportStarted(); - iface.reportAndMoveResult(UniquePtr{new int(0b101010)}, 0); + QVERIFY(iface.reportAndMoveResult(UniquePtr{new int(0b101010)}, 0)); iface.reportFinished(); auto future = iface.future(); @@ -2956,9 +2956,9 @@ void tst_QFuture::resultsReadyAt() { int dummyResult = 0b101010; if (testMove) - iface.reportAndMoveResult(std::move(dummyResult), index); + QVERIFY(iface.reportAndMoveResult(std::move(dummyResult), index)); else - iface.reportResult(&dummyResult, index); + QVERIFY(iface.reportResult(&dummyResult, index)); }; const QSignalSpy readyCounter(&watcher, &QFutureWatcher<int>::resultsReadyAt); @@ -3144,9 +3144,9 @@ void tst_QFuture::rejectResultOverwrite() // init if (initResults.size() == 1) - iface.reportResult(initResults[0]); + QVERIFY(iface.reportResult(initResults[0])); else - iface.reportResults(initResults); + QVERIFY(iface.reportResults(initResults)); QCOMPARE(f.resultCount(), initResults.size()); QCOMPARE(f.resultAt(0), initResults[0]); QCOMPARE(f.results(), initResults); @@ -3165,21 +3165,21 @@ void tst_QFuture::rejectResultOverwrite() { int result = -1; const auto originalCount = f.resultCount(); - iface.reportResult(result, 0); + QVERIFY(!iface.reportResult(result, 0)); QCOMPARE(f.resultCount(), originalCount); QCOMPARE(f.resultAt(0), initResults[0]); } // overwrite with rvalue { const auto originalCount = f.resultCount(); - iface.reportResult(-1, 0); + QVERIFY(!iface.reportResult(-1, 0)); QCOMPARE(f.resultCount(), originalCount); QCOMPARE(f.resultAt(0), initResults[0]); } // overwrite with array { const auto originalCount = f.resultCount(); - iface.reportResults(QList<int> { -1, -2, -3 }, 0); + QVERIFY(!iface.reportResults(QList<int> { -1, -2, -3 }, 0)); QCOMPARE(f.resultCount(), originalCount); QCOMPARE(f.resultAt(0), initResults[0]); } @@ -3187,7 +3187,7 @@ void tst_QFuture::rejectResultOverwrite() // special case: add result by different index, overlapping with the vector if (initResults.size() > 1) { const auto originalCount = f.resultCount(); - iface.reportResult(-1, 1); + QVERIFY(!iface.reportResult(-1, 1)); QCOMPARE(f.resultCount(), originalCount); QCOMPARE(f.resultAt(1), initResults[1]); } @@ -3221,9 +3221,9 @@ void tst_QFuture::rejectPendingResultOverwrite() // init if (initResults.size() == 1) - iface.reportResult(initResults[0], 1); + QVERIFY(iface.reportResult(initResults[0], 1)); else - iface.reportResults(initResults, 1); + QVERIFY(iface.reportResults(initResults, 1)); QCOMPARE(f.resultCount(), 0); // not visible yet if (!filterMode) { QCOMPARE(f.resultAt(1), initResults[0]); @@ -3244,7 +3244,7 @@ void tst_QFuture::rejectPendingResultOverwrite() { int result = -1; const auto originalCount = f.resultCount(); - iface.reportResult(result, 1); + QVERIFY(!iface.reportResult(result, 1)); QCOMPARE(f.resultCount(), originalCount); if (!filterMode) QCOMPARE(f.resultAt(1), initResults[0]); @@ -3252,7 +3252,7 @@ void tst_QFuture::rejectPendingResultOverwrite() // overwrite with rvalue { const auto originalCount = f.resultCount(); - iface.reportResult(-1, 1); + QVERIFY(!iface.reportResult(-1, 1)); QCOMPARE(f.resultCount(), originalCount); if (!filterMode) QCOMPARE(f.resultAt(1), initResults[0]); @@ -3260,7 +3260,7 @@ void tst_QFuture::rejectPendingResultOverwrite() // overwrite with array { const auto originalCount = f.resultCount(); - iface.reportResults(QList<int> { -1, -2 }, 1); + QVERIFY(!iface.reportResults(QList<int> { -1, -2 }, 1)); QCOMPARE(f.resultCount(), originalCount); if (!filterMode) QCOMPARE(f.resultAt(1), initResults[0]); @@ -3268,7 +3268,7 @@ void tst_QFuture::rejectPendingResultOverwrite() // special case: add result by different index, overlapping with the vector if (initResults.size() > 1) { const auto originalCount = f.resultCount(); - iface.reportResult(-1, 2); + QVERIFY(!iface.reportResult(-1, 2)); QCOMPARE(f.resultCount(), originalCount); if (!filterMode) QCOMPARE(f.resultAt(2), initResults[1]); @@ -3284,7 +3284,7 @@ void tst_QFuture::rejectPendingResultOverwrite() f.resume(); } - iface.reportResult(123, 0); // make results at 0 and 1 accessible + QVERIFY(iface.reportResult(123, 0)); // make results at 0 and 1 accessible QCOMPARE(f.resultCount(), initResults.size() + 1); QCOMPARE(f.resultAt(1), initResults[0]); initResults.prepend(123); diff --git a/tests/auto/corelib/thread/qpromise/tst_qpromise.cpp b/tests/auto/corelib/thread/qpromise/tst_qpromise.cpp index 62e3711d42..600c0fd150 100644 --- a/tests/auto/corelib/thread/qpromise/tst_qpromise.cpp +++ b/tests/auto/corelib/thread/qpromise/tst_qpromise.cpp @@ -171,7 +171,7 @@ void tst_QPromise::addResult() // add as lvalue int resultAt0 = 456; { - promise.addResult(resultAt0); + QVERIFY(promise.addResult(resultAt0)); QCOMPARE(f.resultCount(), 1); QCOMPARE(f.result(), resultAt0); QCOMPARE(f.resultAt(0), resultAt0); @@ -179,14 +179,14 @@ void tst_QPromise::addResult() // add as rvalue { int result = 789; - promise.addResult(789); + QVERIFY(promise.addResult(789)); QCOMPARE(f.resultCount(), 2); QCOMPARE(f.resultAt(1), result); } // add at position { int result = 56238; - promise.addResult(result, 2); + QVERIFY(promise.addResult(result, 2)); QCOMPARE(f.resultCount(), 3); QCOMPARE(f.resultAt(2), result); } @@ -194,14 +194,14 @@ void tst_QPromise::addResult() { int result = -1; const auto originalCount = f.resultCount(); - promise.addResult(result, 0); + QVERIFY(!promise.addResult(result, 0)); QCOMPARE(f.resultCount(), originalCount); QCOMPARE(f.resultAt(0), resultAt0); // overwrite does not work } // add as rvalue at position and overwrite { const auto originalCount = f.resultCount(); - promise.addResult(-1, 0); + QVERIFY(!promise.addResult(-1, 0)); QCOMPARE(f.resultCount(), originalCount); QCOMPARE(f.resultAt(0), resultAt0); // overwrite does not work } @@ -223,9 +223,9 @@ void tst_QPromise::addResultOutOfOrder() { QPromise<int> promise; auto f = promise.future(); - promise.addResult(456, 1); + QVERIFY(promise.addResult(456, 1)); QCOMPARE(f.resultCount(), 0); - promise.addResult(123, 0); + QVERIFY(promise.addResult(123, 0)); QList<int> expected({123, 456}); RUN_TEST_FUNC(compareResults, f, expected); @@ -236,16 +236,16 @@ void tst_QPromise::addResultOutOfOrder() { QPromise<int> promise; auto f = promise.future(); - promise.addResult(0, 0); - promise.addResult(1, 1); - promise.addResult(3, 3); // intentional gap here + QVERIFY(promise.addResult(0, 0)); + QVERIFY(promise.addResult(1, 1)); + QVERIFY(promise.addResult(3, 3)); // intentional gap here QList<int> expectedWhenGapExists({0, 1}); RUN_TEST_FUNC(compareResults, f, expectedWhenGapExists); QCOMPARE(f.resultAt(3), 3); QList<int> expectedWhenNoGap({0, 1, 2, 3}); - promise.addResult(2, 2); // fill a gap with a value + QVERIFY(promise.addResult(2, 2)); // fill a gap with a value RUN_TEST_FUNC(compareResults, f, expectedWhenNoGap); QCOMPARE(f.results(), expectedWhenNoGap); } |