Skip to content

Commit

Permalink
one more attempt
Browse files Browse the repository at this point in the history
  • Loading branch information
victimsnino committed Jun 16, 2024
1 parent 41e6cbd commit 7c2db09
Showing 1 changed file with 16 additions and 17 deletions.
33 changes: 16 additions & 17 deletions src/tests/rppgrpc/test_async_client.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,9 @@ struct service : public trompeloeil::mock_interface<TestService::Service>

void wait(const std::unique_ptr<trompeloeil::expectation>& e)
{
const auto start = std::chrono::system_clock::now();
while (!e->is_satisfied() && std::chrono::system_clock::now() - start < std::chrono::seconds{1})
while (!e->is_satisfied())
{
std::this_thread::sleep_for(std::chrono::milliseconds{10});
std::this_thread::yield();
}
}

Expand Down Expand Up @@ -60,20 +59,20 @@ TEST_CASE("async client reactor")
stub->async()->Bidirectional(&ctx, bidi_reactor);
SECTION("no stream job - completion")
{
const auto initial_call = NAMED_REQUIRE_CALL(*mock_service, Bidirectional(trompeloeil::_, trompeloeil::_)).RETURN(grpc::Status::OK).IN_SEQUENCE(s);
REQUIRE_CALL(*out_mock, on_completed()).IN_SEQUENCE(s);
REQUIRE_CALL(*mock_service, Bidirectional(trompeloeil::_, trompeloeil::_)).RETURN(grpc::Status::OK).IN_SEQUENCE(s);
const auto last = NAMED_REQUIRE_CALL(*out_mock, on_completed()).IN_SEQUENCE(s);
bidi_reactor->init();

wait(initial_call);
wait(last);
}

SECTION("error status - error")
{
const auto initial_call = NAMED_REQUIRE_CALL(*mock_service, Bidirectional(trompeloeil::_, trompeloeil::_)).RETURN(grpc::Status::CANCELLED).IN_SEQUENCE(s);
REQUIRE_CALL(*out_mock, on_error(trompeloeil::_)).IN_SEQUENCE(s);
REQUIRE_CALL(*mock_service, Bidirectional(trompeloeil::_, trompeloeil::_)).RETURN(grpc::Status::CANCELLED).IN_SEQUENCE(s);
const auto last = NAMED_REQUIRE_CALL(*out_mock, on_error(trompeloeil::_)).IN_SEQUENCE(s);
bidi_reactor->init();

wait(initial_call);
wait(last);
}

SECTION("manual client-side completion")
Expand All @@ -89,10 +88,10 @@ TEST_CASE("async client reactor")

bidi_reactor->init();

const auto completed = NAMED_REQUIRE_CALL(*out_mock, on_completed()).IN_SEQUENCE(s);
const auto last = NAMED_REQUIRE_CALL(*out_mock, on_completed()).IN_SEQUENCE(s);
subj.get_observer().on_completed();

wait(completed);
wait(last);
}

SECTION("client-side write + completion")
Expand All @@ -114,14 +113,14 @@ TEST_CASE("async client reactor")
subj.get_observer().on_next(1);
subj.get_observer().on_next(2);

const auto completed = NAMED_REQUIRE_CALL(*out_mock, on_completed()).IN_SEQUENCE(s);
const auto last = NAMED_REQUIRE_CALL(*out_mock, on_completed()).IN_SEQUENCE(s);
subj.get_observer().on_completed();

auto f = results.get_future();
REQUIRE(f.wait_for(std::chrono::seconds{1}) == std::future_status::ready);
CHECK(f.get() == std::vector<int>{1, 2});

wait(completed);
wait(last);
}

SECTION("client-side read + completion")
Expand All @@ -142,9 +141,9 @@ TEST_CASE("async client reactor")
REQUIRE_CALL(*out_mock, on_next_rvalue(1)).IN_SEQUENCE(s);
REQUIRE_CALL(*out_mock, on_next_rvalue(2)).IN_SEQUENCE(s);
REQUIRE_CALL(*out_mock, on_next_rvalue(3)).IN_SEQUENCE(s);
const auto completed = NAMED_REQUIRE_CALL(*out_mock, on_completed()).IN_SEQUENCE(s);
const auto last = NAMED_REQUIRE_CALL(*out_mock, on_completed()).IN_SEQUENCE(s);

wait(completed);
wait(last);
}

SECTION("client-side read-write + completeion")
Expand All @@ -169,10 +168,10 @@ TEST_CASE("async client reactor")
REQUIRE_CALL(*out_mock, on_next_rvalue(20)).IN_SEQUENCE(s);
subj.get_observer().on_next(2);

const auto completed = NAMED_REQUIRE_CALL(*out_mock, on_completed()).IN_SEQUENCE(s);
const auto last = NAMED_REQUIRE_CALL(*out_mock, on_completed()).IN_SEQUENCE(s);
subj.get_observer().on_completed();

wait(completed);
wait(last);
}
}
server->Shutdown();
Expand Down

0 comments on commit 7c2db09

Please sign in to comment.