diff --git a/folly/experimental/coro/test/CollectTest.cpp b/folly/experimental/coro/test/CollectTest.cpp index 3cd11f9538cc12e2cb6e27664f9f7e35c4b4a9d1..4e0ba0ac50dc604370f49748602fbf8dfe4fa8d4 100644 --- a/folly/experimental/coro/test/CollectTest.cpp +++ b/folly/experimental/coro/test/CollectTest.cpp @@ -49,7 +49,7 @@ TEST_F(CollectAllTest, WithNoArgs) { completed = true; (void)result; }()); - CHECK(completed); + EXPECT_TRUE(completed); } TEST_F(CollectAllTest, OneTaskWithValue) { @@ -62,7 +62,7 @@ TEST_F(CollectAllTest, OneTaskWithValue) { bool completed = false; auto run = [&]() -> folly::coro::Task<void> { auto [result] = co_await folly::coro::collectAll(f()); - CHECK_EQ("hello", result); + EXPECT_EQ("hello", result); completed = true; }; @@ -72,19 +72,19 @@ TEST_F(CollectAllTest, OneTaskWithValue) { executor.drain(); - CHECK(!completed); + EXPECT_FALSE(completed); baton.post(); // Posting the baton should have just scheduled the 'f()' coroutine // for resumption on the executor but should not have executed // until we drain the executor again. - CHECK(!completed); + EXPECT_FALSE(completed); executor.drain(); - CHECK(completed); - CHECK(future.isReady()); + EXPECT_TRUE(completed); + EXPECT_TRUE(future.isReady()); } TEST_F(CollectAllTest, OneVoidTask) { @@ -99,7 +99,7 @@ TEST_F(CollectAllTest, OneVoidTask) { }()); (void)result; }()); - CHECK(completed); + EXPECT_TRUE(completed); } TEST_F(CollectAllTest, CollectAllDoesntCompleteUntilAllTasksComplete) { @@ -128,21 +128,21 @@ TEST_F(CollectAllTest, CollectAllDoesntCompleteUntilAllTasksComplete) { auto future = run().scheduleOn(&executor).start(); - CHECK(!task1Started); - CHECK(!task2Started); + EXPECT_FALSE(task1Started); + EXPECT_FALSE(task2Started); executor.drain(); - CHECK(task1Started); - CHECK(task2Started); - CHECK(!complete); + EXPECT_TRUE(task1Started); + EXPECT_TRUE(task2Started); + EXPECT_FALSE(complete); baton1.post(); executor.drain(); - CHECK(!complete); + EXPECT_FALSE(complete); baton2.post(); executor.drain(); - CHECK(complete); - CHECK(future.isReady()); + EXPECT_TRUE(complete); + EXPECT_TRUE(future.isReady()); } struct ErrorA : std::exception {}; @@ -184,12 +184,12 @@ TEST_F(CollectAllTest, ThrowsFirstError) { (void)x; (void)y; (void)z; - CHECK(false); + ADD_FAILURE() << "Hit unexpected codepath"; } catch (const ErrorB&) { caughtException = true; } }()); - CHECK(caughtException); + EXPECT_TRUE(caughtException); } TEST_F(CollectAllTest, SynchronousCompletionInLoopDoesntCauseStackOverflow) { @@ -200,8 +200,8 @@ TEST_F(CollectAllTest, SynchronousCompletionInLoopDoesntCauseStackOverflow) { auto [n, s] = co_await folly::coro::collectAll( []() -> folly::coro::Task<int> { co_return 123; }(), []() -> folly::coro::Task<std::string> { co_return "abc"; }()); - CHECK_EQ(n, 123); - CHECK_EQ(s, "abc"); + EXPECT_EQ(n, 123); + EXPECT_EQ(s, "abc"); } }()); } @@ -245,7 +245,7 @@ TEST_F(CollectAllTest, ParallelAccumulate) { return std::max(a, b); }); - CHECK_EQ(999'989, result); + EXPECT_EQ(999'989, result); }() .scheduleOn(&threadPool)); } @@ -269,7 +269,7 @@ TEST_F(CollectAllTest, CollectAllCancelsSubtasksWhenASubtaskFails) { co_await folly::coro::co_reschedule_on_current_executor; throw ErrorA{}; }()); - CHECK(false); + ADD_FAILURE() << "Hit unexpected codepath"; (void)a; (void)b; (void)c; @@ -277,7 +277,7 @@ TEST_F(CollectAllTest, CollectAllCancelsSubtasksWhenASubtaskFails) { } auto end = std::chrono::steady_clock::now(); - CHECK((end - start) < 1s); + EXPECT_LT(end - start, 1s); }()); } @@ -306,9 +306,9 @@ TEST_F(CollectAllTest, CollectAllCancelsSubtasksWhenParentTaskCancelled) { }())); auto end = std::chrono::steady_clock::now(); - CHECK((end - start) < 1s); - CHECK_EQ(42, a); - CHECK_EQ(3.14f, b); + EXPECT_LT(end - start, 1s); + EXPECT_EQ(42, a); + EXPECT_EQ(3.14f, b); (void)c; }()); } @@ -324,10 +324,10 @@ TEST_F(CollectAllTest, CancellationTokenRemainsActiveAfterReturn) { scope.add( folly::coro::co_withCancellation( token, folly::coro::co_invoke([&]() -> folly::coro::Task<void> { - auto token = + auto innerToken = co_await folly::coro::co_current_cancellation_token; co_await baton; - EXPECT_TRUE(token.isCancellationRequested()); + EXPECT_TRUE(innerToken.isCancellationRequested()); })) .scheduleOn(ex)); }); @@ -368,22 +368,22 @@ TEST_F(CollectAllTest, CollectAllKeepsRequestContextOfChildTasksIndependent) { auto initialContextData = getContextData(); auto makeChildTask = [&]() -> folly::coro::Task<void> { - CHECK(getContextData() == initialContextData); + EXPECT_TRUE(getContextData() == initialContextData); folly::RequestContextScopeGuard childScope; - CHECK(getContextData() == nullptr); + EXPECT_TRUE(getContextData() == nullptr); co_await folly::coro::co_reschedule_on_current_executor; - CHECK(getContextData() == nullptr); + EXPECT_TRUE(getContextData() == nullptr); setContextData(); auto newContextData = getContextData(); - CHECK(newContextData != nullptr); - CHECK(newContextData != initialContextData); + EXPECT_TRUE(newContextData != nullptr); + EXPECT_TRUE(newContextData != initialContextData); co_await folly::coro::co_reschedule_on_current_executor; - CHECK(getContextData() == newContextData); + EXPECT_TRUE(getContextData() == newContextData); }; co_await folly::coro::collectAll(makeChildTask(), makeChildTask()); - CHECK(getContextData() == initialContextData); + EXPECT_TRUE(getContextData() == initialContextData); }()); } @@ -397,8 +397,8 @@ TEST_F(CollectAllTest, TaskWithExecutorUsage) { &threadPool), []() -> folly::coro::Task<std::string> { co_return "coroutine"; }() .scheduleOn(&threadPool)); - CHECK(a == 42); - CHECK(b == "coroutine"); + EXPECT_TRUE(a == 42); + EXPECT_TRUE(b == "coroutine"); }()); } @@ -411,7 +411,7 @@ TEST_F(CollectAllTryTest, WithNoArgs) { completed = true; (void)result; }()); - CHECK(completed); + EXPECT_TRUE(completed); } TEST_F(CollectAllTryTest, OneTaskWithValue) { @@ -424,7 +424,7 @@ TEST_F(CollectAllTryTest, OneTaskWithValue) { bool completed = false; auto run = [&]() -> folly::coro::Task<void> { auto [result] = co_await folly::coro::collectAllTry(f()); - CHECK_EQ("hello", result.value()); + EXPECT_EQ("hello", result.value()); completed = true; }; @@ -434,19 +434,19 @@ TEST_F(CollectAllTryTest, OneTaskWithValue) { executor.drain(); - CHECK(!completed); + EXPECT_FALSE(completed); baton.post(); // Posting the baton should have just scheduled the 'f()' coroutine // for resumption on the executor but should not have executed // until we drain the executor again. - CHECK(!completed); + EXPECT_FALSE(completed); executor.drain(); - CHECK(completed); - CHECK(future.isReady()); + EXPECT_TRUE(completed); + EXPECT_TRUE(future.isReady()); } TEST_F(CollectAllTryTest, OneTaskWithError) { @@ -458,9 +458,9 @@ TEST_F(CollectAllTryTest, OneTaskWithError) { } throw ErrorA{}; }()); - CHECK(!result.hasValue()); - CHECK(result.hasException()); - CHECK(result.exception().get_exception<ErrorA>() != nullptr); + EXPECT_FALSE(result.hasValue()); + EXPECT_TRUE(result.hasException()); + EXPECT_TRUE(result.exception().get_exception<ErrorA>() != nullptr); }()); } @@ -481,10 +481,10 @@ TEST_F(CollectAllTryTest, PartialFailure) { co_return; }(), []() -> folly::coro::Task<double> { co_return 3.1415; }()); - CHECK(cRes.hasException()); - CHECK(cRes.exception().get_exception<ErrorB>() != nullptr); - CHECK(dRes.hasValue()); - CHECK_EQ(3.1415, dRes.value()); + EXPECT_TRUE(cRes.hasException()); + EXPECT_TRUE(cRes.exception().get_exception<ErrorB>() != nullptr); + EXPECT_TRUE(dRes.hasValue()); + EXPECT_EQ(3.1415, dRes.value()); }()); } @@ -499,8 +499,8 @@ TEST_F(CollectAllTryTest, CollectAllTryDoesNotCancelSubtasksWhenASubtaskFails) { co_await folly::coro::co_reschedule_on_current_executor; co_await folly::coro::co_reschedule_on_current_executor; co_await folly::coro::co_reschedule_on_current_executor; - CHECK(!(co_await folly::coro::co_current_cancellation_token) - .isCancellationRequested()); + EXPECT_FALSE((co_await folly::coro::co_current_cancellation_token) + .isCancellationRequested()); co_return 42; }(), []() -> folly::coro::Task<float> { @@ -509,8 +509,8 @@ TEST_F(CollectAllTryTest, CollectAllTryDoesNotCancelSubtasksWhenASubtaskFails) { co_await folly::coro::co_reschedule_on_current_executor; co_await folly::coro::co_reschedule_on_current_executor; co_await folly::coro::co_reschedule_on_current_executor; - CHECK(!(co_await folly::coro::co_current_cancellation_token) - .isCancellationRequested()); + EXPECT_FALSE((co_await folly::coro::co_current_cancellation_token) + .isCancellationRequested()); co_return 3.14f; }(), []() -> folly::coro::Task<void> { @@ -518,11 +518,11 @@ TEST_F(CollectAllTryTest, CollectAllTryDoesNotCancelSubtasksWhenASubtaskFails) { throw ErrorA{}; }()); - CHECK(a.hasValue()); - CHECK_EQ(42, a.value()); - CHECK(b.hasValue()); - CHECK_EQ(3.14f, b.value()); - CHECK(c.hasException()); + EXPECT_TRUE(a.hasValue()); + EXPECT_EQ(42, a.value()); + EXPECT_TRUE(b.hasValue()); + EXPECT_EQ(3.14f, b.value()); + EXPECT_TRUE(c.hasException()); }()); } @@ -551,10 +551,10 @@ TEST_F(CollectAllTryTest, CollectAllCancelsSubtasksWhenParentTaskCancelled) { }())); auto end = std::chrono::steady_clock::now(); - CHECK((end - start) < 1s); - CHECK_EQ(42, a.value()); - CHECK_EQ(3.14f, b.value()); - CHECK(c.hasValue()); + EXPECT_LT(end - start, 1s); + EXPECT_EQ(42, a.value()); + EXPECT_EQ(3.14f, b.value()); + EXPECT_TRUE(c.hasValue()); }()); } @@ -569,10 +569,10 @@ TEST_F(CollectAllTryTest, CancellationTokenRemainsActiveAfterReturn) { scope.add( folly::coro::co_withCancellation( token, folly::coro::co_invoke([&]() -> folly::coro::Task<void> { - auto token = + auto innerToken = co_await folly::coro::co_current_cancellation_token; co_await baton; - EXPECT_TRUE(token.isCancellationRequested()); + EXPECT_TRUE(innerToken.isCancellationRequested()); })) .scheduleOn(ex)); }); @@ -602,22 +602,22 @@ TEST_F(CollectAllTryTest, KeepsRequestContextOfChildTasksIndependent) { auto initialContextData = getContextData(); auto makeChildTask = [&]() -> folly::coro::Task<void> { - CHECK(getContextData() == initialContextData); + EXPECT_TRUE(getContextData() == initialContextData); folly::RequestContextScopeGuard childScope; - CHECK(getContextData() == nullptr); + EXPECT_TRUE(getContextData() == nullptr); co_await folly::coro::co_reschedule_on_current_executor; - CHECK(getContextData() == nullptr); + EXPECT_TRUE(getContextData() == nullptr); setContextData(); auto newContextData = getContextData(); - CHECK(newContextData != nullptr); - CHECK(newContextData != initialContextData); + EXPECT_TRUE(newContextData != nullptr); + EXPECT_TRUE(newContextData != initialContextData); co_await folly::coro::co_reschedule_on_current_executor; - CHECK(getContextData() == newContextData); + EXPECT_TRUE(getContextData() == newContextData); }; co_await folly::coro::collectAllTry(makeChildTask(), makeChildTask()); - CHECK(getContextData() == initialContextData); + EXPECT_TRUE(getContextData() == initialContextData); }()); } @@ -650,7 +650,7 @@ TEST_F(CollectAllRangeTest, RangeOfVoidAllSucceeding) { co_await folly::coro::collectAllRange(std::move(tasks)); - CHECK_EQ(3, count); + EXPECT_EQ(3, count); }()); } @@ -673,11 +673,11 @@ TEST_F(CollectAllRangeTest, RangeOfVoidSomeFailing) { try { co_await folly::coro::collectAllRange(std::move(tasks)); - CHECK(false); + ADD_FAILURE() << "Hit unexpected codepath"; } catch (const ErrorA&) { } - CHECK_EQ(5, count); + EXPECT_EQ(5, count); }()); } @@ -700,16 +700,16 @@ TEST_F(CollectAllRangeTest, RangeOfNonVoid) { tasks.push_back(makeTask()); } - CHECK_EQ(0, count); + EXPECT_EQ(0, count); std::vector<int> results = co_await folly::coro::collectAllRange(std::move(tasks)); - CHECK_EQ(taskCount, results.size()); - CHECK_EQ(taskCount, count); + EXPECT_EQ(taskCount, results.size()); + EXPECT_EQ(taskCount, count); for (int i = 0; i < taskCount; ++i) { - CHECK_EQ(i, results[i]); + EXPECT_EQ(i, results[i]); } }()); } @@ -740,13 +740,13 @@ TEST_F(CollectAllRangeTest, SubtasksCancelledWhenASubtaskFails) { auto start = std::chrono::steady_clock::now(); try { co_await folly::coro::collectAllRange(generateTasks()); - CHECK(false); + ADD_FAILURE() << "Hit unexpected codepath"; } catch (const ErrorA&) { } auto end = std::chrono::steady_clock::now(); - CHECK((end - start) < 1s); - CHECK(consumedAllTasks); + EXPECT_LT(end - start, 1s); + EXPECT_TRUE(consumedAllTasks); }()); } @@ -768,7 +768,7 @@ TEST_F(CollectAllRangeTest, FailsWithErrorOfFirstTaskToFailWhenMultipleErrors) { }(); co_yield folly::coro::sleep(2s); }()); - CHECK(false); + ADD_FAILURE() << "Hit unexpected codepath"; } catch (const ErrorB&) { } }()); @@ -795,7 +795,7 @@ TEST_F(CollectAllRangeTest, SubtasksCancelledWhenParentTaskCancelled) { cancelSource.requestCancellation(); auto token = co_await folly::coro::co_current_cancellation_token; - CHECK(token.isCancellationRequested()); + EXPECT_TRUE(token.isCancellationRequested()); }(); consumedAllTasks = true; @@ -806,8 +806,8 @@ TEST_F(CollectAllRangeTest, SubtasksCancelledWhenParentTaskCancelled) { cancelSource.getToken(), folly::coro::collectAllRange(generateTasks())); auto end = std::chrono::steady_clock::now(); - CHECK((end - start) < 1s); - CHECK(consumedAllTasks); + EXPECT_LT(end - start, 1s); + EXPECT_TRUE(consumedAllTasks); }()); } @@ -824,10 +824,10 @@ TEST_F(CollectAllRangeTest, CancellationTokenRemainsActiveAfterReturn) { scope.add( folly::coro::co_withCancellation( token, folly::coro::co_invoke([&]() -> folly::coro::Task<void> { - auto token = + auto innerToken = co_await folly::coro::co_current_cancellation_token; co_await baton; - EXPECT_TRUE(token.isCancellationRequested()); + EXPECT_TRUE(innerToken.isCancellationRequested()); })) .scheduleOn(ex)); }); @@ -858,17 +858,17 @@ TEST_F(CollectAllRangeTest, KeepsRequestContextOfChildTasksIndependent) { auto initialContextData = getContextData(); auto makeChildTask = [&]() -> folly::coro::Task<void> { - CHECK(getContextData() == initialContextData); + EXPECT_TRUE(getContextData() == initialContextData); folly::RequestContextScopeGuard childScope; - CHECK(getContextData() == nullptr); + EXPECT_TRUE(getContextData() == nullptr); co_await folly::coro::co_reschedule_on_current_executor; - CHECK(getContextData() == nullptr); + EXPECT_TRUE(getContextData() == nullptr); setContextData(); auto newContextData = getContextData(); - CHECK(newContextData != nullptr); - CHECK(newContextData != initialContextData); + EXPECT_TRUE(newContextData != nullptr); + EXPECT_TRUE(newContextData != initialContextData); co_await folly::coro::co_reschedule_on_current_executor; - CHECK(getContextData() == newContextData); + EXPECT_TRUE(getContextData() == newContextData); }; std::vector<folly::coro::Task<void>> tasks; @@ -878,7 +878,7 @@ TEST_F(CollectAllRangeTest, KeepsRequestContextOfChildTasksIndependent) { co_await folly::coro::collectAllRange(std::move(tasks)); - CHECK(getContextData() == initialContextData); + EXPECT_TRUE(getContextData() == initialContextData); }()); } @@ -895,11 +895,11 @@ TEST_F(CollectAllRangeTest, VectorOfTaskWithExecutorUsage) { } auto results = co_await folly::coro::collectAllRange(std::move(tasks)); - CHECK(results.size() == 4); - CHECK(results[0] == 1); - CHECK(results[1] == 2); - CHECK(results[2] == 3); - CHECK(results[3] == 4); + EXPECT_TRUE(results.size() == 4); + EXPECT_TRUE(results[0] == 1); + EXPECT_TRUE(results[1] == 2); + EXPECT_TRUE(results[2] == 3); + EXPECT_TRUE(results[3] == 4); }()); } @@ -1059,12 +1059,12 @@ TEST_F(CollectAllTryRangeTest, RangeOfVoidSomeFailing) { auto results = co_await folly::coro::collectAllTryRange(std::move(tasks)); - CHECK_EQ(5, results.size()); - CHECK(results[0].hasValue()); - CHECK(results[1].hasValue()); - CHECK(results[2].hasException()); - CHECK(results[3].hasValue()); - CHECK(results[4].hasValue()); + EXPECT_EQ(5, results.size()); + EXPECT_TRUE(results[0].hasValue()); + EXPECT_TRUE(results[1].hasValue()); + EXPECT_TRUE(results[2].hasException()); + EXPECT_TRUE(results[3].hasValue()); + EXPECT_TRUE(results[4].hasValue()); }()); } @@ -1088,17 +1088,17 @@ TEST_F(CollectAllTryRangeTest, RangeOfValueSomeFailing) { auto results = co_await folly::coro::collectAllTryRange(std::move(tasks)); - CHECK_EQ(6, results.size()); - CHECK(results[0].hasValue()); - CHECK_EQ("testing", results[0].value()); - CHECK(results[1].hasValue()); - CHECK_EQ("testing", results[1].value()); - CHECK(results[2].hasException()); - CHECK(results[3].hasValue()); - CHECK_EQ("testing", results[3].value()); - CHECK(results[4].hasValue()); - CHECK_EQ("testing", results[4].value()); - CHECK(results[5].hasException()); + EXPECT_EQ(6, results.size()); + EXPECT_TRUE(results[0].hasValue()); + EXPECT_EQ("testing", results[0].value()); + EXPECT_TRUE(results[1].hasValue()); + EXPECT_EQ("testing", results[1].value()); + EXPECT_TRUE(results[2].hasException()); + EXPECT_TRUE(results[3].hasValue()); + EXPECT_EQ("testing", results[3].value()); + EXPECT_TRUE(results[4].hasValue()); + EXPECT_EQ("testing", results[4].value()); + EXPECT_TRUE(results[5].hasException()); }()); } @@ -1111,7 +1111,7 @@ TEST_F(CollectAllTryRangeTest, NotCancelledWhenSubtaskFails) { co_await folly::coro::co_reschedule_on_current_executor; co_await folly::coro::co_reschedule_on_current_executor; auto token = co_await folly::coro::co_current_cancellation_token; - CHECK(!token.isCancellationRequested()); + EXPECT_FALSE(token.isCancellationRequested()); }; co_yield makeValidationTask(); @@ -1127,12 +1127,12 @@ TEST_F(CollectAllTryRangeTest, NotCancelledWhenSubtaskFails) { }; auto results = co_await folly::coro::collectAllTryRange(generateTasks()); - CHECK_EQ(5, results.size()); - CHECK(results[0].hasValue()); - CHECK(results[1].hasValue()); - CHECK(results[2].hasException()); - CHECK(results[3].hasValue()); - CHECK(results[4].hasValue()); + EXPECT_EQ(5, results.size()); + EXPECT_TRUE(results[0].hasValue()); + EXPECT_TRUE(results[1].hasValue()); + EXPECT_TRUE(results[2].hasException()); + EXPECT_TRUE(results[3].hasValue()); + EXPECT_TRUE(results[4].hasValue()); }()); } @@ -1157,7 +1157,7 @@ TEST_F(CollectAllTryRangeTest, SubtasksCancelledWhenParentTaskCancelled) { cancelSource.requestCancellation(); auto token = co_await folly::coro::co_current_cancellation_token; - CHECK(token.isCancellationRequested()); + EXPECT_TRUE(token.isCancellationRequested()); }(); consumedAllTasks = true; @@ -1169,12 +1169,12 @@ TEST_F(CollectAllTryRangeTest, SubtasksCancelledWhenParentTaskCancelled) { folly::coro::collectAllTryRange(generateTasks())); auto end = std::chrono::steady_clock::now(); - CHECK_EQ(11, results.size()); + EXPECT_EQ(11, results.size()); for (auto& result : results) { - CHECK(result.hasValue()); + EXPECT_TRUE(result.hasValue()); } - CHECK((end - start) < 1s); - CHECK(consumedAllTasks); + EXPECT_LT(end - start, 1s); + EXPECT_TRUE(consumedAllTasks); }()); } @@ -1191,10 +1191,10 @@ TEST_F(CollectAllTryRangeTest, CancellationTokenRemainsActiveAfterReturn) { scope.add( folly::coro::co_withCancellation( token, folly::coro::co_invoke([&]() -> folly::coro::Task<void> { - auto token = + auto innerToken = co_await folly::coro::co_current_cancellation_token; co_await baton; - EXPECT_TRUE(token.isCancellationRequested()); + EXPECT_TRUE(innerToken.isCancellationRequested()); })) .scheduleOn(ex)); }); @@ -1226,17 +1226,17 @@ TEST_F(CollectAllTryRangeTest, KeepsRequestContextOfChildTasksIndependent) { auto initialContextData = getContextData(); auto makeChildTask = [&]() -> folly::coro::Task<void> { - CHECK(getContextData() == initialContextData); + EXPECT_TRUE(getContextData() == initialContextData); folly::RequestContextScopeGuard childScope; - CHECK(getContextData() == nullptr); + EXPECT_TRUE(getContextData() == nullptr); co_await folly::coro::co_reschedule_on_current_executor; - CHECK(getContextData() == nullptr); + EXPECT_TRUE(getContextData() == nullptr); setContextData(); auto newContextData = getContextData(); - CHECK(newContextData != nullptr); - CHECK(newContextData != initialContextData); + EXPECT_TRUE(newContextData != nullptr); + EXPECT_TRUE(newContextData != initialContextData); co_await folly::coro::co_reschedule_on_current_executor; - CHECK(getContextData() == newContextData); + EXPECT_TRUE(getContextData() == newContextData); }; std::vector<folly::coro::Task<void>> tasks; @@ -1246,7 +1246,7 @@ TEST_F(CollectAllTryRangeTest, KeepsRequestContextOfChildTasksIndependent) { co_await folly::coro::collectAllTryRange(std::move(tasks)); - CHECK(getContextData() == initialContextData); + EXPECT_TRUE(getContextData() == initialContextData); }()); } @@ -1354,9 +1354,9 @@ TEST_F(CollectAllWindowedTest, ConcurrentTasks) { }(), 10)); - CHECK_EQ(10'000, results.size()); + EXPECT_EQ(10'000, results.size()); for (int i = 0; i < 10'000; ++i) { - CHECK_EQ(folly::to<std::string>(i), results[i]); + EXPECT_EQ(folly::to<std::string>(i), results[i]); } } @@ -1392,14 +1392,14 @@ TEST_F(CollectAllWindowedTest, WithGeneratorOfTaskOfValue) { folly::coro::blockingWait([&]() -> folly::coro::Task<void> { auto results = co_await folly::coro::collectAllWindowed( makeTaskGenerator(), maxConcurrency); - CHECK_EQ(100, results.size()); + EXPECT_EQ(100, results.size()); for (int i = 0; i < 100; ++i) { - CHECK_EQ(i, results[i]); + EXPECT_EQ(i, results[i]); } }()); - CHECK_EQ(0, activeCount.load()); - CHECK_EQ(100, completedCount); + EXPECT_EQ(0, activeCount.load()); + EXPECT_EQ(100, completedCount); } TEST_F(CollectAllWindowedTest, WithGeneratorOfTaskOfVoid) { @@ -1428,8 +1428,8 @@ TEST_F(CollectAllWindowedTest, WithGeneratorOfTaskOfVoid) { makeTaskGenerator(), maxConcurrency); }()); - CHECK_EQ(0, activeCount.load()); - CHECK_EQ(100, completedCount); + EXPECT_EQ(0, activeCount.load()); + EXPECT_EQ(100, completedCount); } TEST_F(CollectAllWindowedTest, VectorOfVoidTask) { @@ -1449,7 +1449,7 @@ TEST_F(CollectAllWindowedTest, VectorOfVoidTask) { folly::coro::blockingWait( folly::coro::collectAllWindowed(std::move(tasks), 5)); - CHECK_EQ(10, count); + EXPECT_EQ(10, count); } TEST_F(CollectAllWindowedTest, VectorOfValueTask) { @@ -1470,10 +1470,10 @@ TEST_F(CollectAllWindowedTest, VectorOfValueTask) { auto results = folly::coro::blockingWait( folly::coro::collectAllWindowed(std::move(tasks), 5)); - CHECK_EQ(10, count); - CHECK_EQ(10, results.size()); + EXPECT_EQ(10, count); + EXPECT_EQ(10, results.size()); for (int i = 0; i < 10; ++i) { - CHECK_EQ(i, *results[i]); + EXPECT_EQ(i, *results[i]); } } @@ -1498,7 +1498,7 @@ TEST_F(CollectAllWindowedTest, MultipleFailuresPropagatesFirstError) { } }(), 5)); - CHECK(false); // Should have thrown. + ADD_FAILURE() << "Hit unexpected codepath"; // Should have thrown. } catch (const ErrorB&) { // Expected. } @@ -1526,13 +1526,13 @@ TEST_F(CollectAllWindowedTest, SubtasksCancelledWhenASubtaskFails) { auto start = std::chrono::steady_clock::now(); try { co_await folly::coro::collectAllWindowed(generateTasks(), 2); - CHECK(false); + ADD_FAILURE() << "Hit unexpected codepath"; } catch (const ErrorA&) { } auto end = std::chrono::steady_clock::now(); - CHECK((end - start) < 1s); - CHECK(consumedAllTasks); + EXPECT_LT(end - start, 1s); + EXPECT_TRUE(consumedAllTasks); }()); } @@ -1556,7 +1556,7 @@ TEST_F(CollectAllWindowedTest, SubtasksCancelledWhenParentTaskCancelled) { cancelSource.requestCancellation(); auto token = co_await folly::coro::co_current_cancellation_token; - CHECK(token.isCancellationRequested()); + EXPECT_TRUE(token.isCancellationRequested()); }(); co_yield sleepThatShouldBeCancelled(10s); @@ -1571,8 +1571,8 @@ TEST_F(CollectAllWindowedTest, SubtasksCancelledWhenParentTaskCancelled) { folly::coro::collectAllWindowed(generateTasks(), 4)); auto end = std::chrono::steady_clock::now(); - CHECK((end - start) < 1s); - CHECK(consumedAllTasks); + EXPECT_LT(end - start, 1s); + EXPECT_TRUE(consumedAllTasks); }()); } @@ -1589,10 +1589,10 @@ TEST_F(CollectAllWindowedTest, CancellationTokenRemainsActiveAfterReturn) { scope.add( folly::coro::co_withCancellation( token, folly::coro::co_invoke([&]() -> folly::coro::Task<void> { - auto token = + auto innerToken = co_await folly::coro::co_current_cancellation_token; co_await baton; - EXPECT_TRUE(token.isCancellationRequested()); + EXPECT_TRUE(innerToken.isCancellationRequested()); })) .scheduleOn(ex)); }); @@ -1624,17 +1624,17 @@ TEST_F(CollectAllWindowedTest, KeepsRequestContextOfChildTasksIndependent) { auto initialContextData = getContextData(); auto makeChildTask = [&]() -> folly::coro::Task<void> { - CHECK(getContextData() == initialContextData); + EXPECT_TRUE(getContextData() == initialContextData); folly::RequestContextScopeGuard childScope; - CHECK(getContextData() == nullptr); + EXPECT_TRUE(getContextData() == nullptr); co_await folly::coro::co_reschedule_on_current_executor; - CHECK(getContextData() == nullptr); + EXPECT_TRUE(getContextData() == nullptr); setContextData(); auto newContextData = getContextData(); - CHECK(newContextData != nullptr); - CHECK(newContextData != initialContextData); + EXPECT_TRUE(newContextData != nullptr); + EXPECT_TRUE(newContextData != initialContextData); co_await folly::coro::co_reschedule_on_current_executor; - CHECK(getContextData() == newContextData); + EXPECT_TRUE(getContextData() == newContextData); }; std::vector<folly::coro::Task<void>> tasks; @@ -1644,7 +1644,7 @@ TEST_F(CollectAllWindowedTest, KeepsRequestContextOfChildTasksIndependent) { co_await folly::coro::collectAllWindowed(std::move(tasks), 2); - CHECK(getContextData() == initialContextData); + EXPECT_TRUE(getContextData() == initialContextData); }()); } @@ -1662,11 +1662,11 @@ TEST_F(CollectAllWindowedTest, VectorOfTaskWithExecutorUsage) { auto results = co_await folly::coro::collectAllWindowed(std::move(tasks), 2); - CHECK(results.size() == 4); - CHECK(results[0] == 1); - CHECK(results[1] == 2); - CHECK(results[2] == 3); - CHECK(results[3] == 4); + EXPECT_TRUE(results.size() == 4); + EXPECT_TRUE(results[0] == 1); + EXPECT_TRUE(results[1] == 2); + EXPECT_TRUE(results[2] == 3); + EXPECT_TRUE(results[3] == 4); }()); } @@ -1691,18 +1691,18 @@ TEST_F(CollectAllTryWindowedTest, PartialFailure) { } }(), 5)); - CHECK_EQ(10, results.size()); + EXPECT_EQ(10, results.size()); for (int i = 0; i < 10; ++i) { if (i == 3) { - CHECK(results[i].hasException()); - CHECK(results[i].exception().is_compatible_with<ErrorA>()); + EXPECT_TRUE(results[i].hasException()); + EXPECT_TRUE(results[i].exception().is_compatible_with<ErrorA>()); } else if (i == 7) { - CHECK(results[i].hasException()); - CHECK(results[i].exception().is_compatible_with<ErrorB>()); + EXPECT_TRUE(results[i].hasException()); + EXPECT_TRUE(results[i].exception().is_compatible_with<ErrorB>()); } else { - CHECK(results[i].hasValue()); - CHECK_EQ(i, results[i].value()); + EXPECT_TRUE(results[i].hasValue()); + EXPECT_EQ(i, results[i].value()); } } } @@ -1730,14 +1730,14 @@ TEST_F(CollectAllTryWindowedTest, GeneratorFailure) { try { [[maybe_unused]] auto results = folly::coro::blockingWait( folly::coro::collectAllTryWindowed(generateTasks(), 5)); - CHECK(false); + ADD_FAILURE() << "Hit unexpected codepath"; } catch (const ErrorA&) { } // Even if the generator throws an exception we should still have launched // and waited for completion all of the prior tasks in the sequence. - CHECK_EQ(10, started); - CHECK_EQ(0, active); + EXPECT_EQ(10, started); + EXPECT_EQ(0, active); } TEST_F(CollectAllTryWindowedTest, NotCancelledWhenSubtaskFails) { @@ -1754,7 +1754,7 @@ TEST_F(CollectAllTryWindowedTest, NotCancelledWhenSubtaskFails) { co_await folly::coro::co_reschedule_on_current_executor; co_await folly::coro::co_reschedule_on_current_executor; auto token = co_await folly::coro::co_current_cancellation_token; - CHECK(!token.isCancellationRequested()); + EXPECT_FALSE(token.isCancellationRequested()); }; co_yield makeValidationTask(); @@ -1763,10 +1763,10 @@ TEST_F(CollectAllTryWindowedTest, NotCancelledWhenSubtaskFails) { auto results = co_await folly::coro::collectAllTryWindowed(generateTasks(), 2); - CHECK_EQ(3, results.size()); - CHECK(results[0].hasException()); - CHECK(results[1].hasValue()); - CHECK(results[2].hasValue()); + EXPECT_EQ(3, results.size()); + EXPECT_TRUE(results[0].hasException()); + EXPECT_TRUE(results[1].hasValue()); + EXPECT_TRUE(results[2].hasValue()); }()); } @@ -1790,7 +1790,7 @@ TEST_F(CollectAllTryWindowedTest, SubtasksCancelledWhenParentTaskCancelled) { cancelSource.requestCancellation(); auto token = co_await folly::coro::co_current_cancellation_token; - CHECK(token.isCancellationRequested()); + EXPECT_TRUE(token.isCancellationRequested()); }(); co_yield sleepThatShouldBeCancelled(10s); @@ -1805,12 +1805,12 @@ TEST_F(CollectAllTryWindowedTest, SubtasksCancelledWhenParentTaskCancelled) { folly::coro::collectAllTryWindowed(generateTasks(), 4)); auto end = std::chrono::steady_clock::now(); - CHECK_EQ(5, results.size()); + EXPECT_EQ(5, results.size()); for (auto& result : results) { - CHECK(result.hasValue()); + EXPECT_TRUE(result.hasValue()); } - CHECK((end - start) < 1s); - CHECK(consumedAllTasks); + EXPECT_LT(end - start, 1s); + EXPECT_TRUE(consumedAllTasks); }()); } @@ -1827,10 +1827,10 @@ TEST_F(CollectAllTryWindowedTest, CancellationTokenRemainsActiveAfterReturn) { scope.add( folly::coro::co_withCancellation( token, folly::coro::co_invoke([&]() -> folly::coro::Task<void> { - auto token = + auto innerToken = co_await folly::coro::co_current_cancellation_token; co_await baton; - EXPECT_TRUE(token.isCancellationRequested()); + EXPECT_TRUE(innerToken.isCancellationRequested()); })) .scheduleOn(ex)); }); @@ -1857,8 +1857,8 @@ TEST_F(CollectAnyTest, OneTaskWithValue) { bool completed = false; auto run = [&]() -> folly::coro::Task<void> { auto [index, result] = co_await folly::coro::collectAny(f()); - CHECK_EQ("hello", result.value()); - CHECK_EQ(0, index); + EXPECT_EQ("hello", result.value()); + EXPECT_EQ(0, index); completed = true; }; @@ -1868,19 +1868,19 @@ TEST_F(CollectAnyTest, OneTaskWithValue) { executor.drain(); - CHECK(!completed); + EXPECT_FALSE(completed); baton.post(); // Posting the baton should have just scheduled the 'f()' coroutine // for resumption on the executor but should not have executed // until we drain the executor again. - CHECK(!completed); + EXPECT_FALSE(completed); executor.drain(); - CHECK(completed); - CHECK(future.isReady()); + EXPECT_TRUE(completed); + EXPECT_TRUE(future.isReady()); } TEST_F(CollectAnyTest, OneVoidTask) { @@ -1895,7 +1895,7 @@ TEST_F(CollectAnyTest, OneVoidTask) { }()); (void)result; }()); - CHECK(completed); + EXPECT_TRUE(completed); } TEST_F(CollectAnyTest, MoveOnlyType) { @@ -1911,7 +1911,7 @@ TEST_F(CollectAnyTest, MoveOnlyType) { }()); (void)result; }()); - CHECK(completed); + EXPECT_TRUE(completed); } TEST_F(CollectAnyTest, CollectAnyDoesntCompleteUntilAllTasksComplete) { @@ -1935,29 +1935,29 @@ TEST_F(CollectAnyTest, CollectAnyDoesntCompleteUntilAllTasksComplete) { co_return 314; }()); complete = true; - CHECK_EQ(taskTerminatingExpectedIndex, index); - CHECK_EQ(result.value(), 314); + EXPECT_EQ(taskTerminatingExpectedIndex, index); + EXPECT_EQ(result.value(), 314); }; folly::ManualExecutor executor; auto future = run().scheduleOn(&executor).start(); - CHECK(!task1Started); - CHECK(!task2Started); + EXPECT_FALSE(task1Started); + EXPECT_FALSE(task2Started); executor.drain(); - CHECK(task1Started); - CHECK(task2Started); - CHECK(!complete); + EXPECT_TRUE(task1Started); + EXPECT_TRUE(task2Started); + EXPECT_FALSE(complete); baton2.post(); executor.drain(); - CHECK(!complete); + EXPECT_FALSE(complete); baton1.post(); executor.drain(); - CHECK(complete); - CHECK(future.isReady()); + EXPECT_TRUE(complete); + EXPECT_TRUE(future.isReady()); } TEST_F(CollectAnyTest, ThrowsFirstError) { @@ -1991,15 +1991,15 @@ TEST_F(CollectAnyTest, ThrowsFirstError) { } co_return 3; }()); - CHECK_EQ(1, index); + EXPECT_EQ(1, index); try { result.value(); - CHECK(false); + ADD_FAILURE() << "Hit unexpected codepath"; } catch (const ErrorB&) { caughtException = true; } }()); - CHECK(caughtException); + EXPECT_TRUE(caughtException); } TEST_F(CollectAnyTest, CollectAnyCancelsSubtasksWhenASubtaskCompletes) { @@ -2021,15 +2021,15 @@ TEST_F(CollectAnyTest, CollectAnyCancelsSubtasksWhenASubtaskCompletes) { co_await folly::coro::co_reschedule_on_current_executor; throw ErrorA{}; }()); - CHECK_EQ(2, index); + EXPECT_EQ(2, index); try { result.value(); - CHECK(false); + ADD_FAILURE() << "Hit unexpected codepath"; } catch (const ErrorA&) { } auto end = std::chrono::steady_clock::now(); - CHECK((end - start) < 1s); + EXPECT_LT(end - start, 1s); }()); } @@ -2059,10 +2059,10 @@ TEST_F(CollectAnyTest, CollectAnyCancelsSubtasksWhenParentTaskCancelled) { co_await sleepThatShouldBeCancelled(15s); co_return 123; }())); - CHECK(false); + ADD_FAILURE() << "Hit unexpected codepath"; } catch (const folly::OperationCancelled&) { auto end = std::chrono::steady_clock::now(); - CHECK((end - start) < 1s); + EXPECT_LT(end - start, 1s); } }()); } @@ -2078,10 +2078,10 @@ TEST_F(CollectAnyTest, CancellationTokenRemainsActiveAfterReturn) { scope.add( folly::coro::co_withCancellation( token, folly::coro::co_invoke([&]() -> folly::coro::Task<void> { - auto token = + auto innerToken = co_await folly::coro::co_current_cancellation_token; co_await baton; - EXPECT_TRUE(token.isCancellationRequested()); + EXPECT_TRUE(innerToken.isCancellationRequested()); })) .scheduleOn(ex)); }); @@ -2104,10 +2104,10 @@ TEST_F(CollectAnyNoDiscardTest, OneTask) { folly::coro::blockingWait([&]() -> folly::coro::Task<void> { auto [result] = co_await folly::coro::collectAnyNoDiscard(value()); - CHECK(result.hasValue()); - CHECK_EQ("hello", result.value()); + EXPECT_TRUE(result.hasValue()); + EXPECT_EQ("hello", result.value()); std::tie(result) = co_await folly::coro::collectAnyNoDiscard(throws()); - CHECK(result.hasException<ErrorA>()); + EXPECT_TRUE(result.hasException<ErrorA>()); }()); } @@ -2128,9 +2128,9 @@ TEST_F(CollectAnyNoDiscardTest, MultipleTasksWithValues) { folly::coro::blockingWait([&]() -> folly::coro::Task<void> { auto [first, second, third] = co_await folly::coro::collectAnyNoDiscard( busyWait(count, 3), busyWait(count, 3), busyWait(count, 3)); - CHECK(first.hasValue()); - CHECK(second.hasValue()); - CHECK(third.hasValue()); + EXPECT_TRUE(first.hasValue()); + EXPECT_TRUE(second.hasValue()); + EXPECT_TRUE(third.hasValue()); }()); } @@ -2147,7 +2147,7 @@ TEST_F(CollectAnyNoDiscardTest, OneVoidTask) { }()); (void)result; }()); - CHECK(completed); + EXPECT_TRUE(completed); } TEST_F(CollectAnyNoDiscardTest, DoesntCompleteUntilAllTasksComplete) { @@ -2170,31 +2170,31 @@ TEST_F(CollectAnyNoDiscardTest, DoesntCompleteUntilAllTasksComplete) { co_return 314; }()); complete = true; - CHECK(first.hasValue()); - CHECK_EQ(first.value(), 42); - CHECK(second.hasValue()); - CHECK_EQ(second.value(), 314); + EXPECT_TRUE(first.hasValue()); + EXPECT_EQ(first.value(), 42); + EXPECT_TRUE(second.hasValue()); + EXPECT_EQ(second.value(), 314); }; folly::ManualExecutor executor; auto future = run().scheduleOn(&executor).start(); - CHECK(!task1Started); - CHECK(!task2Started); + EXPECT_FALSE(task1Started); + EXPECT_FALSE(task2Started); executor.drain(); - CHECK(task1Started); - CHECK(task2Started); - CHECK(!complete); + EXPECT_TRUE(task1Started); + EXPECT_TRUE(task2Started); + EXPECT_FALSE(complete); baton2.post(); executor.drain(); - CHECK(!complete); + EXPECT_FALSE(complete); baton1.post(); executor.drain(); - CHECK(complete); - CHECK(future.isReady()); + EXPECT_TRUE(complete); + EXPECT_TRUE(future.isReady()); } TEST_F(CollectAnyNoDiscardTest, ThrowsAllErrors) { @@ -2217,9 +2217,9 @@ TEST_F(CollectAnyNoDiscardTest, ThrowsAllErrors) { [&]() -> folly::coro::Task<int> { co_yield folly::coro::co_error(ErrorC{}); }()); - CHECK(first.hasException<ErrorA>()); - CHECK(second.hasException<ErrorB>()); - CHECK(third.hasException<ErrorC>()); + EXPECT_TRUE(first.hasException<ErrorA>()); + EXPECT_TRUE(second.hasException<ErrorB>()); + EXPECT_TRUE(third.hasException<ErrorC>()); }()); } @@ -2242,13 +2242,13 @@ TEST_F(CollectAnyNoDiscardTest, CancelSubtasksWhenASubtaskCompletes) { co_await folly::coro::co_reschedule_on_current_executor; co_yield folly::coro::co_error(ErrorA{}); }()); - CHECK(first.hasException<folly::OperationCancelled>()); - CHECK(second.hasException<folly::OperationCancelled>()); - CHECK(third.hasException<ErrorA>()); + EXPECT_TRUE(first.hasException<folly::OperationCancelled>()); + EXPECT_TRUE(second.hasException<folly::OperationCancelled>()); + EXPECT_TRUE(third.hasException<ErrorA>()); auto end = std::chrono::steady_clock::now(); - CHECK((end - start) < 1s); + EXPECT_LT(end - start, 1s); }()); } @@ -2278,10 +2278,10 @@ TEST_F(CollectAnyNoDiscardTest, CancelSubtasksWhenParentTaskCancelled) { co_return 123; }())); auto end = std::chrono::steady_clock::now(); - CHECK((end - start) < 1s); - CHECK(first.hasException<folly::OperationCancelled>()); - CHECK(second.hasException<folly::OperationCancelled>()); - CHECK(third.hasException<folly::OperationCancelled>()); + EXPECT_LT(end - start, 1s); + EXPECT_TRUE(first.hasException<folly::OperationCancelled>()); + EXPECT_TRUE(second.hasException<folly::OperationCancelled>()); + EXPECT_TRUE(third.hasException<folly::OperationCancelled>()); }()); } @@ -2296,10 +2296,10 @@ TEST_F(CollectAnyNoDiscardTest, CancellationTokenRemainsActiveAfterReturn) { scope.add( folly::coro::co_withCancellation( token, folly::coro::co_invoke([&]() -> folly::coro::Task<void> { - auto token = + auto innerToken = co_await folly::coro::co_current_cancellation_token; co_await baton; - EXPECT_TRUE(token.isCancellationRequested()); + EXPECT_TRUE(innerToken.isCancellationRequested()); })) .scheduleOn(ex)); }); @@ -2328,8 +2328,8 @@ TEST_F(CollectAnyRangeTest, OneTaskWithValue) { tasks.push_back(f()); auto [index, result] = co_await folly::coro::collectAnyRange(std::move(tasks)); - CHECK_EQ("hello", result.value()); - CHECK_EQ(0, index); + EXPECT_EQ("hello", result.value()); + EXPECT_EQ(0, index); completed = true; }; @@ -2339,19 +2339,19 @@ TEST_F(CollectAnyRangeTest, OneTaskWithValue) { executor.drain(); - CHECK(!completed); + EXPECT_FALSE(completed); baton.post(); // Posting the baton should have just scheduled the 'f()' coroutine // for resumption on the executor but should not have executed // until we drain the executor again. - CHECK(!completed); + EXPECT_FALSE(completed); executor.drain(); - CHECK(completed); - CHECK(future.isReady()); + EXPECT_TRUE(completed); + EXPECT_TRUE(future.isReady()); } TEST_F(CollectAnyRangeTest, OneVoidTask) { @@ -2370,7 +2370,7 @@ TEST_F(CollectAnyRangeTest, OneVoidTask) { co_await folly::coro::collectAnyRange(generateTasks()); (void)result; }()); - CHECK(completed); + EXPECT_TRUE(completed); } TEST_F(CollectAnyRangeTest, MoveOnlyType) { @@ -2389,7 +2389,7 @@ TEST_F(CollectAnyRangeTest, MoveOnlyType) { co_await folly::coro::collectAnyRange(generateTasks()); (void)result; }()); - CHECK(completed); + EXPECT_TRUE(completed); } TEST_F(CollectAnyRangeTest, CollectAnyDoesntCompleteUntilAllTasksComplete) { @@ -2418,29 +2418,29 @@ TEST_F(CollectAnyRangeTest, CollectAnyDoesntCompleteUntilAllTasksComplete) { auto [index, result] = co_await folly::coro::collectAnyRange(generateTasks()); complete = true; - CHECK_EQ(taskTerminatingExpectedIndex, index); - CHECK_EQ(result.value(), 314); + EXPECT_EQ(taskTerminatingExpectedIndex, index); + EXPECT_EQ(result.value(), 314); }; folly::ManualExecutor executor; auto future = run().scheduleOn(&executor).start(); - CHECK(!task1Started); - CHECK(!task2Started); + EXPECT_FALSE(task1Started); + EXPECT_FALSE(task2Started); executor.drain(); - CHECK(task1Started); - CHECK(task2Started); - CHECK(!complete); + EXPECT_TRUE(task1Started); + EXPECT_TRUE(task2Started); + EXPECT_FALSE(complete); baton2.post(); executor.drain(); - CHECK(!complete); + EXPECT_FALSE(complete); baton1.post(); executor.drain(); - CHECK(complete); - CHECK(future.isReady()); + EXPECT_TRUE(complete); + EXPECT_TRUE(future.isReady()); } TEST_F(CollectAnyRangeTest, ThrowsFirstError) { @@ -2480,15 +2480,15 @@ TEST_F(CollectAnyRangeTest, ThrowsFirstError) { // propagate out of collectAny(). auto [index, result] = co_await folly::coro::collectAnyRange(generateTasks()); - CHECK_EQ(1, index); + EXPECT_EQ(1, index); try { result.value(); - CHECK(false); + ADD_FAILURE() << "Hit unexpected codepath"; } catch (const ErrorB&) { caughtException = true; } }()); - CHECK(caughtException); + EXPECT_TRUE(caughtException); } TEST_F(CollectAnyRangeTest, CollectAnyCancelsSubtasksWhenASubtaskCompletes) { @@ -2512,15 +2512,15 @@ TEST_F(CollectAnyRangeTest, CollectAnyCancelsSubtasksWhenASubtaskCompletes) { auto [index, result] = co_await folly::coro::collectAnyRange(std::move(tasks)); - CHECK_EQ(2, index); + EXPECT_EQ(2, index); try { result.value(); - CHECK(false); + ADD_FAILURE() << "Hit unexpected codepath"; } catch (const ErrorA&) { } auto end = std::chrono::steady_clock::now(); - CHECK((end - start) < 1s); + EXPECT_LT(end - start, 1s); }()); } @@ -2553,10 +2553,10 @@ TEST_F(CollectAnyRangeTest, CollectAnyCancelsSubtasksWhenParentTaskCancelled) { auto [index, result] = co_await folly::coro::co_withCancellation( cancelSource.getToken(), folly::coro::collectAnyRange(generateTasks())); - CHECK(false); + ADD_FAILURE() << "Hit unexpected codepath"; } catch (const folly::OperationCancelled&) { auto end = std::chrono::steady_clock::now(); - CHECK((end - start) < 1s); + EXPECT_LT(end - start, 1s); } }()); } @@ -2572,10 +2572,10 @@ TEST_F(CollectAnyRangeTest, CancellationTokenRemainsActiveAfterReturn) { scope.add( folly::coro::co_withCancellation( token, folly::coro::co_invoke([&]() -> folly::coro::Task<void> { - auto token = + auto innerToken = co_await folly::coro::co_current_cancellation_token; co_await baton; - EXPECT_TRUE(token.isCancellationRequested()); + EXPECT_TRUE(innerToken.isCancellationRequested()); })) .scheduleOn(ex)); }); @@ -2607,17 +2607,17 @@ TEST_F(CollectAnyNoDiscardRangeTest, OneTask) { tasks.push_back(value()); auto result = co_await folly::coro::collectAnyNoDiscardRange(std::move(tasks)); - CHECK_EQ(result.size(), 1); - CHECK(result[0].hasValue()); - CHECK_EQ("hello", result[0].value()); + EXPECT_EQ(result.size(), 1); + EXPECT_TRUE(result[0].hasValue()); + EXPECT_EQ("hello", result[0].value()); } { std::vector<folly::coro::Task<std::string>> tasks; tasks.push_back(throws()); auto result = co_await folly::coro::collectAnyNoDiscardRange(std::move(tasks)); - CHECK_EQ(result.size(), 1); - CHECK(result[0].hasException<ErrorA>()); + EXPECT_EQ(result.size(), 1); + EXPECT_TRUE(result[0].hasException<ErrorA>()); } }()); } @@ -2643,10 +2643,10 @@ TEST_F(CollectAnyNoDiscardRangeTest, MultipleTasksWithValues) { tasks.push_back(busyWait(count, 3)); auto result = co_await folly::coro::collectAnyNoDiscardRange(std::move(tasks)); - CHECK_EQ(result.size(), 3); - CHECK(result[0].hasValue()); - CHECK(result[1].hasValue()); - CHECK(result[2].hasValue()); + EXPECT_EQ(result.size(), 3); + EXPECT_TRUE(result[0].hasValue()); + EXPECT_TRUE(result[1].hasValue()); + EXPECT_TRUE(result[2].hasValue()); }()); } @@ -2665,7 +2665,7 @@ TEST_F(CollectAnyNoDiscardRangeTest, OneVoidTask) { co_await folly::coro::collectAnyNoDiscardRange(std::move(tasks)); EXPECT_EQ(result.size(), 1); }()); - CHECK(completed); + EXPECT_TRUE(completed); } TEST_F(CollectAnyNoDiscardRangeTest, DoesntCompleteUntilAllTasksComplete) { @@ -2693,32 +2693,32 @@ TEST_F(CollectAnyNoDiscardRangeTest, DoesntCompleteUntilAllTasksComplete) { auto result = co_await folly::coro::collectAnyNoDiscardRange(generateTasks()); complete = true; - CHECK_EQ(result.size(), 2); - CHECK(result[0].hasValue()); - CHECK_EQ(result[0].value(), 42); - CHECK(result[1].hasValue()); - CHECK_EQ(result[1].value(), 314); + EXPECT_EQ(result.size(), 2); + EXPECT_TRUE(result[0].hasValue()); + EXPECT_EQ(result[0].value(), 42); + EXPECT_TRUE(result[1].hasValue()); + EXPECT_EQ(result[1].value(), 314); }; folly::ManualExecutor executor; auto future = run().scheduleOn(&executor).start(); - CHECK(!task1Started); - CHECK(!task2Started); + EXPECT_FALSE(task1Started); + EXPECT_FALSE(task2Started); executor.drain(); - CHECK(task1Started); - CHECK(task2Started); - CHECK(!complete); + EXPECT_TRUE(task1Started); + EXPECT_TRUE(task2Started); + EXPECT_FALSE(complete); baton2.post(); executor.drain(); - CHECK(!complete); + EXPECT_FALSE(complete); baton1.post(); executor.drain(); - CHECK(complete); - CHECK(future.isReady()); + EXPECT_TRUE(complete); + EXPECT_TRUE(future.isReady()); } TEST_F(CollectAnyNoDiscardRangeTest, ThrowsAllErrors) { @@ -2745,10 +2745,10 @@ TEST_F(CollectAnyNoDiscardRangeTest, ThrowsAllErrors) { }; auto result = co_await folly::coro::collectAnyNoDiscardRange(generateTasks()); - CHECK_EQ(result.size(), 3); - CHECK(result[0].hasException<ErrorA>()); - CHECK(result[1].hasException<ErrorB>()); - CHECK(result[2].hasException<ErrorC>()); + EXPECT_EQ(result.size(), 3); + EXPECT_TRUE(result[0].hasException<ErrorA>()); + EXPECT_TRUE(result[1].hasException<ErrorB>()); + EXPECT_TRUE(result[2].hasException<ErrorC>()); }()); } @@ -2775,14 +2775,14 @@ TEST_F(CollectAnyNoDiscardRangeTest, CancelSubtasksWhenASubtaskCompletes) { }; auto result = co_await folly::coro::collectAnyNoDiscardRange(generateTasks()); - CHECK_EQ(result.size(), 3); - CHECK(result[0].hasException<folly::OperationCancelled>()); - CHECK(result[1].hasException<folly::OperationCancelled>()); - CHECK(result[2].hasException<ErrorA>()); + EXPECT_EQ(result.size(), 3); + EXPECT_TRUE(result[0].hasException<folly::OperationCancelled>()); + EXPECT_TRUE(result[1].hasException<folly::OperationCancelled>()); + EXPECT_TRUE(result[2].hasException<ErrorA>()); auto end = std::chrono::steady_clock::now(); - CHECK((end - start) < 1s); + EXPECT_LT(end - start, 1s); }()); } @@ -2816,11 +2816,11 @@ TEST_F(CollectAnyNoDiscardRangeTest, CancelSubtasksWhenParentTaskCancelled) { cancelSource.getToken(), folly::coro::collectAnyNoDiscardRange(generateTasks())); auto end = std::chrono::steady_clock::now(); - CHECK((end - start) < 1s); - CHECK_EQ(result.size(), 3); - CHECK(result[0].hasException<folly::OperationCancelled>()); - CHECK(result[1].hasException<folly::OperationCancelled>()); - CHECK(result[2].hasException<folly::OperationCancelled>()); + EXPECT_LT(end - start, 1s); + EXPECT_EQ(result.size(), 3); + EXPECT_TRUE(result[0].hasException<folly::OperationCancelled>()); + EXPECT_TRUE(result[1].hasException<folly::OperationCancelled>()); + EXPECT_TRUE(result[2].hasException<folly::OperationCancelled>()); }()); } @@ -2837,10 +2837,10 @@ TEST_F( scope.add( folly::coro::co_withCancellation( token, folly::coro::co_invoke([&]() -> folly::coro::Task<void> { - auto token = + auto innerToken = co_await folly::coro::co_current_cancellation_token; co_await baton; - EXPECT_TRUE(token.isCancellationRequested()); + EXPECT_TRUE(innerToken.isCancellationRequested()); })) .scheduleOn(ex)); }));