|  | @@ -61,7 +61,7 @@ int detag(void* p) { return static_cast<int>(reinterpret_cast<intptr_t>(p)); }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  class Verifier {
 | 
	
		
			
				|  |  |   public:
 | 
	
		
			
				|  |  | -  explicit Verifier(bool spin) : spin_(spin), lambda_run_(false) {}
 | 
	
		
			
				|  |  | +  Verifier() : lambda_run_(false) {}
 | 
	
		
			
				|  |  |    // Expect sets the expected ok value for a specific tag
 | 
	
		
			
				|  |  |    Verifier& Expect(int i, bool expect_ok) {
 | 
	
		
			
				|  |  |      return ExpectUnless(i, expect_ok, false);
 | 
	
	
		
			
				|  | @@ -89,17 +89,7 @@ class Verifier {
 | 
	
		
			
				|  |  |    int Next(CompletionQueue* cq, bool ignore_ok) {
 | 
	
		
			
				|  |  |      bool ok;
 | 
	
		
			
				|  |  |      void* got_tag;
 | 
	
		
			
				|  |  | -    if (spin_) {
 | 
	
		
			
				|  |  | -      for (;;) {
 | 
	
		
			
				|  |  | -        auto r = cq->AsyncNext(&got_tag, &ok, gpr_time_0(GPR_CLOCK_REALTIME));
 | 
	
		
			
				|  |  | -        if (r == CompletionQueue::TIMEOUT) continue;
 | 
	
		
			
				|  |  | -        if (r == CompletionQueue::GOT_EVENT) break;
 | 
	
		
			
				|  |  | -        gpr_log(GPR_ERROR, "unexpected result from AsyncNext");
 | 
	
		
			
				|  |  | -        abort();
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -    } else {
 | 
	
		
			
				|  |  | -      EXPECT_TRUE(cq->Next(&got_tag, &ok));
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | +    EXPECT_TRUE(cq->Next(&got_tag, &ok));
 | 
	
		
			
				|  |  |      GotTag(got_tag, ok, ignore_ok);
 | 
	
		
			
				|  |  |      return detag(got_tag);
 | 
	
		
			
				|  |  |    }
 | 
	
	
		
			
				|  | @@ -135,34 +125,14 @@ class Verifier {
 | 
	
		
			
				|  |  |      if (expectations_.empty()) {
 | 
	
		
			
				|  |  |        bool ok;
 | 
	
		
			
				|  |  |        void* got_tag;
 | 
	
		
			
				|  |  | -      if (spin_) {
 | 
	
		
			
				|  |  | -        while (std::chrono::system_clock::now() < deadline) {
 | 
	
		
			
				|  |  | -          EXPECT_EQ(
 | 
	
		
			
				|  |  | -              cq->AsyncNext(&got_tag, &ok, gpr_time_0(GPR_CLOCK_REALTIME)),
 | 
	
		
			
				|  |  | -              CompletionQueue::TIMEOUT);
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -      } else {
 | 
	
		
			
				|  |  | -        EXPECT_EQ(cq->AsyncNext(&got_tag, &ok, deadline),
 | 
	
		
			
				|  |  | -                  CompletionQueue::TIMEOUT);
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | +      EXPECT_EQ(cq->AsyncNext(&got_tag, &ok, deadline),
 | 
	
		
			
				|  |  | +                CompletionQueue::TIMEOUT);
 | 
	
		
			
				|  |  |      } else {
 | 
	
		
			
				|  |  |        while (!expectations_.empty()) {
 | 
	
		
			
				|  |  |          bool ok;
 | 
	
		
			
				|  |  |          void* got_tag;
 | 
	
		
			
				|  |  | -        if (spin_) {
 | 
	
		
			
				|  |  | -          for (;;) {
 | 
	
		
			
				|  |  | -            GPR_ASSERT(std::chrono::system_clock::now() < deadline);
 | 
	
		
			
				|  |  | -            auto r =
 | 
	
		
			
				|  |  | -                cq->AsyncNext(&got_tag, &ok, gpr_time_0(GPR_CLOCK_REALTIME));
 | 
	
		
			
				|  |  | -            if (r == CompletionQueue::TIMEOUT) continue;
 | 
	
		
			
				|  |  | -            if (r == CompletionQueue::GOT_EVENT) break;
 | 
	
		
			
				|  |  | -            gpr_log(GPR_ERROR, "unexpected result from AsyncNext");
 | 
	
		
			
				|  |  | -            abort();
 | 
	
		
			
				|  |  | -          }
 | 
	
		
			
				|  |  | -        } else {
 | 
	
		
			
				|  |  | -          EXPECT_EQ(cq->AsyncNext(&got_tag, &ok, deadline),
 | 
	
		
			
				|  |  | -                    CompletionQueue::GOT_EVENT);
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | +        EXPECT_EQ(cq->AsyncNext(&got_tag, &ok, deadline),
 | 
	
		
			
				|  |  | +                  CompletionQueue::GOT_EVENT);
 | 
	
		
			
				|  |  |          GotTag(got_tag, ok, false);
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -177,33 +147,14 @@ class Verifier {
 | 
	
		
			
				|  |  |      if (expectations_.empty()) {
 | 
	
		
			
				|  |  |        bool ok;
 | 
	
		
			
				|  |  |        void* got_tag;
 | 
	
		
			
				|  |  | -      if (spin_) {
 | 
	
		
			
				|  |  | -        while (std::chrono::system_clock::now() < deadline) {
 | 
	
		
			
				|  |  | -          EXPECT_EQ(DoOnceThenAsyncNext(cq, &got_tag, &ok, deadline, lambda),
 | 
	
		
			
				|  |  | -                    CompletionQueue::TIMEOUT);
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -      } else {
 | 
	
		
			
				|  |  | -        EXPECT_EQ(DoOnceThenAsyncNext(cq, &got_tag, &ok, deadline, lambda),
 | 
	
		
			
				|  |  | -                  CompletionQueue::TIMEOUT);
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | +      EXPECT_EQ(DoOnceThenAsyncNext(cq, &got_tag, &ok, deadline, lambda),
 | 
	
		
			
				|  |  | +                CompletionQueue::TIMEOUT);
 | 
	
		
			
				|  |  |      } else {
 | 
	
		
			
				|  |  |        while (!expectations_.empty()) {
 | 
	
		
			
				|  |  |          bool ok;
 | 
	
		
			
				|  |  |          void* got_tag;
 | 
	
		
			
				|  |  | -        if (spin_) {
 | 
	
		
			
				|  |  | -          for (;;) {
 | 
	
		
			
				|  |  | -            GPR_ASSERT(std::chrono::system_clock::now() < deadline);
 | 
	
		
			
				|  |  | -            auto r = DoOnceThenAsyncNext(
 | 
	
		
			
				|  |  | -                cq, &got_tag, &ok, gpr_time_0(GPR_CLOCK_REALTIME), lambda);
 | 
	
		
			
				|  |  | -            if (r == CompletionQueue::TIMEOUT) continue;
 | 
	
		
			
				|  |  | -            if (r == CompletionQueue::GOT_EVENT) break;
 | 
	
		
			
				|  |  | -            gpr_log(GPR_ERROR, "unexpected result from AsyncNext");
 | 
	
		
			
				|  |  | -            abort();
 | 
	
		
			
				|  |  | -          }
 | 
	
		
			
				|  |  | -        } else {
 | 
	
		
			
				|  |  | -          EXPECT_EQ(DoOnceThenAsyncNext(cq, &got_tag, &ok, deadline, lambda),
 | 
	
		
			
				|  |  | -                    CompletionQueue::GOT_EVENT);
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | +        EXPECT_EQ(DoOnceThenAsyncNext(cq, &got_tag, &ok, deadline, lambda),
 | 
	
		
			
				|  |  | +                  CompletionQueue::GOT_EVENT);
 | 
	
		
			
				|  |  |          GotTag(got_tag, ok, false);
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -241,7 +192,6 @@ class Verifier {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    std::map<void*, bool> expectations_;
 | 
	
		
			
				|  |  |    std::map<void*, MaybeExpect> maybe_expectations_;
 | 
	
		
			
				|  |  | -  bool spin_;
 | 
	
		
			
				|  |  |    bool lambda_run_;
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -267,15 +217,13 @@ class ServerBuilderSyncPluginDisabler : public ::grpc::ServerBuilderOption {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  class TestScenario {
 | 
	
		
			
				|  |  |   public:
 | 
	
		
			
				|  |  | -  TestScenario(bool non_block, bool inproc_stub, const grpc::string& creds_type,
 | 
	
		
			
				|  |  | -               bool hcs, const grpc::string& content)
 | 
	
		
			
				|  |  | -      : disable_blocking(non_block),
 | 
	
		
			
				|  |  | -        inproc(inproc_stub),
 | 
	
		
			
				|  |  | +  TestScenario(bool inproc_stub, const grpc::string& creds_type, bool hcs,
 | 
	
		
			
				|  |  | +               const grpc::string& content)
 | 
	
		
			
				|  |  | +      : inproc(inproc_stub),
 | 
	
		
			
				|  |  |          health_check_service(hcs),
 | 
	
		
			
				|  |  |          credentials_type(creds_type),
 | 
	
		
			
				|  |  |          message_content(content) {}
 | 
	
		
			
				|  |  |    void Log() const;
 | 
	
		
			
				|  |  | -  bool disable_blocking;
 | 
	
		
			
				|  |  |    bool inproc;
 | 
	
		
			
				|  |  |    bool health_check_service;
 | 
	
		
			
				|  |  |    const grpc::string credentials_type;
 | 
	
	
		
			
				|  | @@ -284,9 +232,7 @@ class TestScenario {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  static std::ostream& operator<<(std::ostream& out,
 | 
	
		
			
				|  |  |                                  const TestScenario& scenario) {
 | 
	
		
			
				|  |  | -  return out << "TestScenario{disable_blocking="
 | 
	
		
			
				|  |  | -             << (scenario.disable_blocking ? "true" : "false")
 | 
	
		
			
				|  |  | -             << ", inproc=" << (scenario.inproc ? "true" : "false")
 | 
	
		
			
				|  |  | +  return out << "TestScenario{inproc=" << (scenario.inproc ? "true" : "false")
 | 
	
		
			
				|  |  |               << ", credentials='" << scenario.credentials_type
 | 
	
		
			
				|  |  |               << ", health_check_service="
 | 
	
		
			
				|  |  |               << (scenario.health_check_service ? "true" : "false")
 | 
	
	
		
			
				|  | @@ -374,16 +320,13 @@ class AsyncEnd2endTest : public ::testing::TestWithParam<TestScenario> {
 | 
	
		
			
				|  |  |        service_->RequestEcho(&srv_ctx, &recv_request, &response_writer,
 | 
	
		
			
				|  |  |                              cq_.get(), cq_.get(), tag(2));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -      Verifier(GetParam().disable_blocking).Expect(2, true).Verify(cq_.get());
 | 
	
		
			
				|  |  | +      Verifier().Expect(2, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |        EXPECT_EQ(send_request.message(), recv_request.message());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |        send_response.set_message(recv_request.message());
 | 
	
		
			
				|  |  |        response_writer.Finish(send_response, Status::OK, tag(3));
 | 
	
		
			
				|  |  |        response_reader->Finish(&recv_response, &recv_status, tag(4));
 | 
	
		
			
				|  |  | -      Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | -          .Expect(3, true)
 | 
	
		
			
				|  |  | -          .Expect(4, true)
 | 
	
		
			
				|  |  | -          .Verify(cq_.get());
 | 
	
		
			
				|  |  | +      Verifier().Expect(3, true).Expect(4, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |        EXPECT_EQ(send_response.message(), recv_response.message());
 | 
	
		
			
				|  |  |        EXPECT_TRUE(recv_status.ok());
 | 
	
	
		
			
				|  | @@ -487,24 +430,20 @@ TEST_P(AsyncEnd2endTest, AsyncNextRpc) {
 | 
	
		
			
				|  |  |        std::chrono::system_clock::now());
 | 
	
		
			
				|  |  |    std::chrono::system_clock::time_point time_limit(
 | 
	
		
			
				|  |  |        std::chrono::system_clock::now() + std::chrono::seconds(10));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking).Verify(cq_.get(), time_now);
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking).Verify(cq_.get(), time_now);
 | 
	
		
			
				|  |  | +  Verifier().Verify(cq_.get(), time_now);
 | 
	
		
			
				|  |  | +  Verifier().Verify(cq_.get(), time_now);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    service_->RequestEcho(&srv_ctx, &recv_request, &response_writer, cq_.get(),
 | 
	
		
			
				|  |  |                          cq_.get(), tag(2));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | -      .Expect(2, true)
 | 
	
		
			
				|  |  | -      .Verify(cq_.get(), time_limit);
 | 
	
		
			
				|  |  | +  Verifier().Expect(2, true).Verify(cq_.get(), time_limit);
 | 
	
		
			
				|  |  |    EXPECT_EQ(send_request.message(), recv_request.message());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    send_response.set_message(recv_request.message());
 | 
	
		
			
				|  |  |    response_writer.Finish(send_response, Status::OK, tag(3));
 | 
	
		
			
				|  |  |    response_reader->Finish(&recv_response, &recv_status, tag(4));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | -      .Expect(3, true)
 | 
	
		
			
				|  |  | -      .Expect(4, true)
 | 
	
		
			
				|  |  | -      .Verify(cq_.get(), std::chrono::system_clock::time_point::max());
 | 
	
		
			
				|  |  | +  Verifier().Expect(3, true).Expect(4, true).Verify(
 | 
	
		
			
				|  |  | +      cq_.get(), std::chrono::system_clock::time_point::max());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    EXPECT_EQ(send_response.message(), recv_response.message());
 | 
	
		
			
				|  |  |    EXPECT_TRUE(recv_status.ok());
 | 
	
	
		
			
				|  | @@ -532,8 +471,8 @@ TEST_P(AsyncEnd2endTest, DoThenAsyncNextRpc) {
 | 
	
		
			
				|  |  |        std::chrono::system_clock::now());
 | 
	
		
			
				|  |  |    std::chrono::system_clock::time_point time_limit(
 | 
	
		
			
				|  |  |        std::chrono::system_clock::now() + std::chrono::seconds(10));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking).Verify(cq_.get(), time_now);
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking).Verify(cq_.get(), time_now);
 | 
	
		
			
				|  |  | +  Verifier().Verify(cq_.get(), time_now);
 | 
	
		
			
				|  |  | +  Verifier().Verify(cq_.get(), time_now);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    auto resp_writer_ptr = &response_writer;
 | 
	
		
			
				|  |  |    auto lambda_2 = [&, this, resp_writer_ptr]() {
 | 
	
	
		
			
				|  | @@ -542,9 +481,7 @@ TEST_P(AsyncEnd2endTest, DoThenAsyncNextRpc) {
 | 
	
		
			
				|  |  |                            cq_.get(), tag(2));
 | 
	
		
			
				|  |  |    };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | -      .Expect(2, true)
 | 
	
		
			
				|  |  | -      .Verify(cq_.get(), time_limit, lambda_2);
 | 
	
		
			
				|  |  | +  Verifier().Expect(2, true).Verify(cq_.get(), time_limit, lambda_2);
 | 
	
		
			
				|  |  |    EXPECT_EQ(send_request.message(), recv_request.message());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    auto recv_resp_ptr = &recv_response;
 | 
	
	
		
			
				|  | @@ -554,11 +491,8 @@ TEST_P(AsyncEnd2endTest, DoThenAsyncNextRpc) {
 | 
	
		
			
				|  |  |      resp_writer_ptr->Finish(send_response, Status::OK, tag(3));
 | 
	
		
			
				|  |  |    };
 | 
	
		
			
				|  |  |    response_reader->Finish(recv_resp_ptr, status_ptr, tag(4));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | -      .Expect(3, true)
 | 
	
		
			
				|  |  | -      .Expect(4, true)
 | 
	
		
			
				|  |  | -      .Verify(cq_.get(), std::chrono::system_clock::time_point::max(),
 | 
	
		
			
				|  |  | -              lambda_3);
 | 
	
		
			
				|  |  | +  Verifier().Expect(3, true).Expect(4, true).Verify(
 | 
	
		
			
				|  |  | +      cq_.get(), std::chrono::system_clock::time_point::max(), lambda_3);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    EXPECT_EQ(send_response.message(), recv_response.message());
 | 
	
		
			
				|  |  |    EXPECT_TRUE(recv_status.ok());
 | 
	
	
		
			
				|  | @@ -584,41 +518,26 @@ TEST_P(AsyncEnd2endTest, SimpleClientStreaming) {
 | 
	
		
			
				|  |  |    service_->RequestRequestStream(&srv_ctx, &srv_stream, cq_.get(), cq_.get(),
 | 
	
		
			
				|  |  |                                   tag(2));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | -      .Expect(2, true)
 | 
	
		
			
				|  |  | -      .Expect(1, true)
 | 
	
		
			
				|  |  | -      .Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(2, true).Expect(1, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    cli_stream->Write(send_request, tag(3));
 | 
	
		
			
				|  |  |    srv_stream.Read(&recv_request, tag(4));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | -      .Expect(3, true)
 | 
	
		
			
				|  |  | -      .Expect(4, true)
 | 
	
		
			
				|  |  | -      .Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(3, true).Expect(4, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |    EXPECT_EQ(send_request.message(), recv_request.message());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    cli_stream->Write(send_request, tag(5));
 | 
	
		
			
				|  |  |    srv_stream.Read(&recv_request, tag(6));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | -      .Expect(5, true)
 | 
	
		
			
				|  |  | -      .Expect(6, true)
 | 
	
		
			
				|  |  | -      .Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(5, true).Expect(6, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    EXPECT_EQ(send_request.message(), recv_request.message());
 | 
	
		
			
				|  |  |    cli_stream->WritesDone(tag(7));
 | 
	
		
			
				|  |  |    srv_stream.Read(&recv_request, tag(8));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | -      .Expect(7, true)
 | 
	
		
			
				|  |  | -      .Expect(8, false)
 | 
	
		
			
				|  |  | -      .Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(7, true).Expect(8, false).Verify(cq_.get());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    send_response.set_message(recv_request.message());
 | 
	
		
			
				|  |  |    srv_stream.Finish(send_response, Status::OK, tag(9));
 | 
	
		
			
				|  |  |    cli_stream->Finish(&recv_status, tag(10));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | -      .Expect(9, true)
 | 
	
		
			
				|  |  | -      .Expect(10, true)
 | 
	
		
			
				|  |  | -      .Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(9, true).Expect(10, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    EXPECT_EQ(send_response.message(), recv_response.message());
 | 
	
		
			
				|  |  |    EXPECT_TRUE(recv_status.ok());
 | 
	
	
		
			
				|  | @@ -650,38 +569,26 @@ TEST_P(AsyncEnd2endTest, SimpleClientStreamingWithCoalescingApi) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    bool seen3 = false;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | -      .Expect(2, true)
 | 
	
		
			
				|  |  | -      .ExpectMaybe(3, true, &seen3)
 | 
	
		
			
				|  |  | -      .Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(2, true).ExpectMaybe(3, true, &seen3).Verify(cq_.get());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    srv_stream.Read(&recv_request, tag(4));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | -      .ExpectUnless(3, true, seen3)
 | 
	
		
			
				|  |  | -      .Expect(4, true)
 | 
	
		
			
				|  |  | -      .Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().ExpectUnless(3, true, seen3).Expect(4, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    EXPECT_EQ(send_request.message(), recv_request.message());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    cli_stream->WriteLast(send_request, WriteOptions(), tag(5));
 | 
	
		
			
				|  |  |    srv_stream.Read(&recv_request, tag(6));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | -      .Expect(5, true)
 | 
	
		
			
				|  |  | -      .Expect(6, true)
 | 
	
		
			
				|  |  | -      .Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(5, true).Expect(6, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |    EXPECT_EQ(send_request.message(), recv_request.message());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    srv_stream.Read(&recv_request, tag(7));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking).Expect(7, false).Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(7, false).Verify(cq_.get());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    send_response.set_message(recv_request.message());
 | 
	
		
			
				|  |  |    srv_stream.Finish(send_response, Status::OK, tag(8));
 | 
	
		
			
				|  |  |    cli_stream->Finish(&recv_status, tag(9));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | -      .Expect(8, true)
 | 
	
		
			
				|  |  | -      .Expect(9, true)
 | 
	
		
			
				|  |  | -      .Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(8, true).Expect(9, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    EXPECT_EQ(send_response.message(), recv_response.message());
 | 
	
		
			
				|  |  |    EXPECT_TRUE(recv_status.ok());
 | 
	
	
		
			
				|  | @@ -707,38 +614,26 @@ TEST_P(AsyncEnd2endTest, SimpleServerStreaming) {
 | 
	
		
			
				|  |  |    service_->RequestResponseStream(&srv_ctx, &recv_request, &srv_stream,
 | 
	
		
			
				|  |  |                                    cq_.get(), cq_.get(), tag(2));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | -      .Expect(1, true)
 | 
	
		
			
				|  |  | -      .Expect(2, true)
 | 
	
		
			
				|  |  | -      .Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(1, true).Expect(2, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |    EXPECT_EQ(send_request.message(), recv_request.message());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    send_response.set_message(recv_request.message());
 | 
	
		
			
				|  |  |    srv_stream.Write(send_response, tag(3));
 | 
	
		
			
				|  |  |    cli_stream->Read(&recv_response, tag(4));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | -      .Expect(3, true)
 | 
	
		
			
				|  |  | -      .Expect(4, true)
 | 
	
		
			
				|  |  | -      .Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(3, true).Expect(4, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |    EXPECT_EQ(send_response.message(), recv_response.message());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    srv_stream.Write(send_response, tag(5));
 | 
	
		
			
				|  |  |    cli_stream->Read(&recv_response, tag(6));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | -      .Expect(5, true)
 | 
	
		
			
				|  |  | -      .Expect(6, true)
 | 
	
		
			
				|  |  | -      .Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(5, true).Expect(6, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |    EXPECT_EQ(send_response.message(), recv_response.message());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    srv_stream.Finish(Status::OK, tag(7));
 | 
	
		
			
				|  |  |    cli_stream->Read(&recv_response, tag(8));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | -      .Expect(7, true)
 | 
	
		
			
				|  |  | -      .Expect(8, false)
 | 
	
		
			
				|  |  | -      .Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(7, true).Expect(8, false).Verify(cq_.get());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    cli_stream->Finish(&recv_status, tag(9));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking).Expect(9, true).Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(9, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    EXPECT_TRUE(recv_status.ok());
 | 
	
		
			
				|  |  |  }
 | 
	
	
		
			
				|  | @@ -763,34 +658,25 @@ TEST_P(AsyncEnd2endTest, SimpleServerStreamingWithCoalescingApiWAF) {
 | 
	
		
			
				|  |  |    service_->RequestResponseStream(&srv_ctx, &recv_request, &srv_stream,
 | 
	
		
			
				|  |  |                                    cq_.get(), cq_.get(), tag(2));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | -      .Expect(1, true)
 | 
	
		
			
				|  |  | -      .Expect(2, true)
 | 
	
		
			
				|  |  | -      .Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(1, true).Expect(2, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |    EXPECT_EQ(send_request.message(), recv_request.message());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    send_response.set_message(recv_request.message());
 | 
	
		
			
				|  |  |    srv_stream.Write(send_response, tag(3));
 | 
	
		
			
				|  |  |    cli_stream->Read(&recv_response, tag(4));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | -      .Expect(3, true)
 | 
	
		
			
				|  |  | -      .Expect(4, true)
 | 
	
		
			
				|  |  | -      .Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(3, true).Expect(4, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |    EXPECT_EQ(send_response.message(), recv_response.message());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    srv_stream.WriteAndFinish(send_response, WriteOptions(), Status::OK, tag(5));
 | 
	
		
			
				|  |  |    cli_stream->Read(&recv_response, tag(6));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | -      .Expect(5, true)
 | 
	
		
			
				|  |  | -      .Expect(6, true)
 | 
	
		
			
				|  |  | -      .Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(5, true).Expect(6, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |    EXPECT_EQ(send_response.message(), recv_response.message());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    cli_stream->Read(&recv_response, tag(7));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking).Expect(7, false).Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(7, false).Verify(cq_.get());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    cli_stream->Finish(&recv_status, tag(8));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking).Expect(8, true).Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(8, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    EXPECT_TRUE(recv_status.ok());
 | 
	
		
			
				|  |  |  }
 | 
	
	
		
			
				|  | @@ -815,36 +701,26 @@ TEST_P(AsyncEnd2endTest, SimpleServerStreamingWithCoalescingApiWL) {
 | 
	
		
			
				|  |  |    service_->RequestResponseStream(&srv_ctx, &recv_request, &srv_stream,
 | 
	
		
			
				|  |  |                                    cq_.get(), cq_.get(), tag(2));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | -      .Expect(1, true)
 | 
	
		
			
				|  |  | -      .Expect(2, true)
 | 
	
		
			
				|  |  | -      .Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(1, true).Expect(2, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |    EXPECT_EQ(send_request.message(), recv_request.message());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    send_response.set_message(recv_request.message());
 | 
	
		
			
				|  |  |    srv_stream.Write(send_response, tag(3));
 | 
	
		
			
				|  |  |    cli_stream->Read(&recv_response, tag(4));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | -      .Expect(3, true)
 | 
	
		
			
				|  |  | -      .Expect(4, true)
 | 
	
		
			
				|  |  | -      .Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(3, true).Expect(4, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |    EXPECT_EQ(send_response.message(), recv_response.message());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    srv_stream.WriteLast(send_response, WriteOptions(), tag(5));
 | 
	
		
			
				|  |  |    cli_stream->Read(&recv_response, tag(6));
 | 
	
		
			
				|  |  |    srv_stream.Finish(Status::OK, tag(7));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | -      .Expect(5, true)
 | 
	
		
			
				|  |  | -      .Expect(6, true)
 | 
	
		
			
				|  |  | -      .Expect(7, true)
 | 
	
		
			
				|  |  | -      .Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(5, true).Expect(6, true).Expect(7, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |    EXPECT_EQ(send_response.message(), recv_response.message());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    cli_stream->Read(&recv_response, tag(8));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking).Expect(8, false).Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(8, false).Verify(cq_.get());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    cli_stream->Finish(&recv_status, tag(9));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking).Expect(9, true).Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(9, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    EXPECT_TRUE(recv_status.ok());
 | 
	
		
			
				|  |  |  }
 | 
	
	
		
			
				|  | @@ -869,41 +745,26 @@ TEST_P(AsyncEnd2endTest, SimpleBidiStreaming) {
 | 
	
		
			
				|  |  |    service_->RequestBidiStream(&srv_ctx, &srv_stream, cq_.get(), cq_.get(),
 | 
	
		
			
				|  |  |                                tag(2));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | -      .Expect(1, true)
 | 
	
		
			
				|  |  | -      .Expect(2, true)
 | 
	
		
			
				|  |  | -      .Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(1, true).Expect(2, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    cli_stream->Write(send_request, tag(3));
 | 
	
		
			
				|  |  |    srv_stream.Read(&recv_request, tag(4));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | -      .Expect(3, true)
 | 
	
		
			
				|  |  | -      .Expect(4, true)
 | 
	
		
			
				|  |  | -      .Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(3, true).Expect(4, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |    EXPECT_EQ(send_request.message(), recv_request.message());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    send_response.set_message(recv_request.message());
 | 
	
		
			
				|  |  |    srv_stream.Write(send_response, tag(5));
 | 
	
		
			
				|  |  |    cli_stream->Read(&recv_response, tag(6));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | -      .Expect(5, true)
 | 
	
		
			
				|  |  | -      .Expect(6, true)
 | 
	
		
			
				|  |  | -      .Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(5, true).Expect(6, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |    EXPECT_EQ(send_response.message(), recv_response.message());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    cli_stream->WritesDone(tag(7));
 | 
	
		
			
				|  |  |    srv_stream.Read(&recv_request, tag(8));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | -      .Expect(7, true)
 | 
	
		
			
				|  |  | -      .Expect(8, false)
 | 
	
		
			
				|  |  | -      .Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(7, true).Expect(8, false).Verify(cq_.get());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    srv_stream.Finish(Status::OK, tag(9));
 | 
	
		
			
				|  |  |    cli_stream->Finish(&recv_status, tag(10));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | -      .Expect(9, true)
 | 
	
		
			
				|  |  | -      .Expect(10, true)
 | 
	
		
			
				|  |  | -      .Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(9, true).Expect(10, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    EXPECT_TRUE(recv_status.ok());
 | 
	
		
			
				|  |  |  }
 | 
	
	
		
			
				|  | @@ -933,33 +794,24 @@ TEST_P(AsyncEnd2endTest, SimpleBidiStreamingWithCoalescingApiWAF) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    bool seen3 = false;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | -      .Expect(2, true)
 | 
	
		
			
				|  |  | -      .ExpectMaybe(3, true, &seen3)
 | 
	
		
			
				|  |  | -      .Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(2, true).ExpectMaybe(3, true, &seen3).Verify(cq_.get());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    srv_stream.Read(&recv_request, tag(4));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | -      .ExpectUnless(3, true, seen3)
 | 
	
		
			
				|  |  | -      .Expect(4, true)
 | 
	
		
			
				|  |  | -      .Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().ExpectUnless(3, true, seen3).Expect(4, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |    EXPECT_EQ(send_request.message(), recv_request.message());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    srv_stream.Read(&recv_request, tag(5));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking).Expect(5, false).Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(5, false).Verify(cq_.get());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    send_response.set_message(recv_request.message());
 | 
	
		
			
				|  |  |    srv_stream.WriteAndFinish(send_response, WriteOptions(), Status::OK, tag(6));
 | 
	
		
			
				|  |  |    cli_stream->Read(&recv_response, tag(7));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | -      .Expect(6, true)
 | 
	
		
			
				|  |  | -      .Expect(7, true)
 | 
	
		
			
				|  |  | -      .Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(6, true).Expect(7, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |    EXPECT_EQ(send_response.message(), recv_response.message());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    cli_stream->Finish(&recv_status, tag(8));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking).Expect(8, true).Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(8, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    EXPECT_TRUE(recv_status.ok());
 | 
	
		
			
				|  |  |  }
 | 
	
	
		
			
				|  | @@ -989,35 +841,25 @@ TEST_P(AsyncEnd2endTest, SimpleBidiStreamingWithCoalescingApiWL) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    bool seen3 = false;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | -      .Expect(2, true)
 | 
	
		
			
				|  |  | -      .ExpectMaybe(3, true, &seen3)
 | 
	
		
			
				|  |  | -      .Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(2, true).ExpectMaybe(3, true, &seen3).Verify(cq_.get());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    srv_stream.Read(&recv_request, tag(4));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | -      .ExpectUnless(3, true, seen3)
 | 
	
		
			
				|  |  | -      .Expect(4, true)
 | 
	
		
			
				|  |  | -      .Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().ExpectUnless(3, true, seen3).Expect(4, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |    EXPECT_EQ(send_request.message(), recv_request.message());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    srv_stream.Read(&recv_request, tag(5));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking).Expect(5, false).Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(5, false).Verify(cq_.get());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    send_response.set_message(recv_request.message());
 | 
	
		
			
				|  |  |    srv_stream.WriteLast(send_response, WriteOptions(), tag(6));
 | 
	
		
			
				|  |  |    srv_stream.Finish(Status::OK, tag(7));
 | 
	
		
			
				|  |  |    cli_stream->Read(&recv_response, tag(8));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | -      .Expect(6, true)
 | 
	
		
			
				|  |  | -      .Expect(7, true)
 | 
	
		
			
				|  |  | -      .Expect(8, true)
 | 
	
		
			
				|  |  | -      .Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(6, true).Expect(7, true).Expect(8, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |    EXPECT_EQ(send_response.message(), recv_response.message());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    cli_stream->Finish(&recv_status, tag(9));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking).Expect(9, true).Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(9, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    EXPECT_TRUE(recv_status.ok());
 | 
	
		
			
				|  |  |  }
 | 
	
	
		
			
				|  | @@ -1049,7 +891,7 @@ TEST_P(AsyncEnd2endTest, ClientInitialMetadataRpc) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    service_->RequestEcho(&srv_ctx, &recv_request, &response_writer, cq_.get(),
 | 
	
		
			
				|  |  |                          cq_.get(), tag(2));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking).Expect(2, true).Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(2, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |    EXPECT_EQ(send_request.message(), recv_request.message());
 | 
	
		
			
				|  |  |    auto client_initial_metadata = srv_ctx.client_metadata();
 | 
	
		
			
				|  |  |    EXPECT_EQ(meta1.second,
 | 
	
	
		
			
				|  | @@ -1063,10 +905,7 @@ TEST_P(AsyncEnd2endTest, ClientInitialMetadataRpc) {
 | 
	
		
			
				|  |  |    send_response.set_message(recv_request.message());
 | 
	
		
			
				|  |  |    response_writer.Finish(send_response, Status::OK, tag(3));
 | 
	
		
			
				|  |  |    response_reader->Finish(&recv_response, &recv_status, tag(4));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | -      .Expect(3, true)
 | 
	
		
			
				|  |  | -      .Expect(4, true)
 | 
	
		
			
				|  |  | -      .Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(3, true).Expect(4, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    EXPECT_EQ(send_response.message(), recv_response.message());
 | 
	
		
			
				|  |  |    EXPECT_TRUE(recv_status.ok());
 | 
	
	
		
			
				|  | @@ -1094,15 +933,15 @@ TEST_P(AsyncEnd2endTest, ServerInitialMetadataRpc) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    service_->RequestEcho(&srv_ctx, &recv_request, &response_writer, cq_.get(),
 | 
	
		
			
				|  |  |                          cq_.get(), tag(2));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking).Expect(2, true).Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(2, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |    EXPECT_EQ(send_request.message(), recv_request.message());
 | 
	
		
			
				|  |  |    srv_ctx.AddInitialMetadata(meta1.first, meta1.second);
 | 
	
		
			
				|  |  |    srv_ctx.AddInitialMetadata(meta2.first, meta2.second);
 | 
	
		
			
				|  |  |    response_writer.SendInitialMetadata(tag(3));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking).Expect(3, true).Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(3, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    response_reader->ReadInitialMetadata(tag(4));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking).Expect(4, true).Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(4, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |    auto server_initial_metadata = cli_ctx.GetServerInitialMetadata();
 | 
	
		
			
				|  |  |    EXPECT_EQ(meta1.second,
 | 
	
		
			
				|  |  |              ToString(server_initial_metadata.find(meta1.first)->second));
 | 
	
	
		
			
				|  | @@ -1113,10 +952,7 @@ TEST_P(AsyncEnd2endTest, ServerInitialMetadataRpc) {
 | 
	
		
			
				|  |  |    send_response.set_message(recv_request.message());
 | 
	
		
			
				|  |  |    response_writer.Finish(send_response, Status::OK, tag(5));
 | 
	
		
			
				|  |  |    response_reader->Finish(&recv_response, &recv_status, tag(6));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | -      .Expect(5, true)
 | 
	
		
			
				|  |  | -      .Expect(6, true)
 | 
	
		
			
				|  |  | -      .Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(5, true).Expect(6, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    EXPECT_EQ(send_response.message(), recv_response.message());
 | 
	
		
			
				|  |  |    EXPECT_TRUE(recv_status.ok());
 | 
	
	
		
			
				|  | @@ -1144,10 +980,10 @@ TEST_P(AsyncEnd2endTest, ServerTrailingMetadataRpc) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    service_->RequestEcho(&srv_ctx, &recv_request, &response_writer, cq_.get(),
 | 
	
		
			
				|  |  |                          cq_.get(), tag(2));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking).Expect(2, true).Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(2, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |    EXPECT_EQ(send_request.message(), recv_request.message());
 | 
	
		
			
				|  |  |    response_writer.SendInitialMetadata(tag(3));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking).Expect(3, true).Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(3, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    send_response.set_message(recv_request.message());
 | 
	
		
			
				|  |  |    srv_ctx.AddTrailingMetadata(meta1.first, meta1.second);
 | 
	
	
		
			
				|  | @@ -1155,10 +991,7 @@ TEST_P(AsyncEnd2endTest, ServerTrailingMetadataRpc) {
 | 
	
		
			
				|  |  |    response_writer.Finish(send_response, Status::OK, tag(4));
 | 
	
		
			
				|  |  |    response_reader->Finish(&recv_response, &recv_status, tag(5));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | -      .Expect(4, true)
 | 
	
		
			
				|  |  | -      .Expect(5, true)
 | 
	
		
			
				|  |  | -      .Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(4, true).Expect(5, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    EXPECT_EQ(send_response.message(), recv_response.message());
 | 
	
		
			
				|  |  |    EXPECT_TRUE(recv_status.ok());
 | 
	
	
		
			
				|  | @@ -1207,7 +1040,7 @@ TEST_P(AsyncEnd2endTest, MetadataRpc) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    service_->RequestEcho(&srv_ctx, &recv_request, &response_writer, cq_.get(),
 | 
	
		
			
				|  |  |                          cq_.get(), tag(2));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking).Expect(2, true).Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(2, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |    EXPECT_EQ(send_request.message(), recv_request.message());
 | 
	
		
			
				|  |  |    auto client_initial_metadata = srv_ctx.client_metadata();
 | 
	
		
			
				|  |  |    EXPECT_EQ(meta1.second,
 | 
	
	
		
			
				|  | @@ -1219,9 +1052,9 @@ TEST_P(AsyncEnd2endTest, MetadataRpc) {
 | 
	
		
			
				|  |  |    srv_ctx.AddInitialMetadata(meta3.first, meta3.second);
 | 
	
		
			
				|  |  |    srv_ctx.AddInitialMetadata(meta4.first, meta4.second);
 | 
	
		
			
				|  |  |    response_writer.SendInitialMetadata(tag(3));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking).Expect(3, true).Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(3, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |    response_reader->ReadInitialMetadata(tag(4));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking).Expect(4, true).Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(4, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |    auto server_initial_metadata = cli_ctx.GetServerInitialMetadata();
 | 
	
		
			
				|  |  |    EXPECT_EQ(meta3.second,
 | 
	
		
			
				|  |  |              ToString(server_initial_metadata.find(meta3.first)->second));
 | 
	
	
		
			
				|  | @@ -1235,10 +1068,7 @@ TEST_P(AsyncEnd2endTest, MetadataRpc) {
 | 
	
		
			
				|  |  |    response_writer.Finish(send_response, Status::OK, tag(5));
 | 
	
		
			
				|  |  |    response_reader->Finish(&recv_response, &recv_status, tag(6));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | -      .Expect(5, true)
 | 
	
		
			
				|  |  | -      .Expect(6, true)
 | 
	
		
			
				|  |  | -      .Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(5, true).Expect(6, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    EXPECT_EQ(send_response.message(), recv_response.message());
 | 
	
		
			
				|  |  |    EXPECT_TRUE(recv_status.ok());
 | 
	
	
		
			
				|  | @@ -1272,15 +1102,15 @@ TEST_P(AsyncEnd2endTest, ServerCheckCancellation) {
 | 
	
		
			
				|  |  |    service_->RequestEcho(&srv_ctx, &recv_request, &response_writer, cq_.get(),
 | 
	
		
			
				|  |  |                          cq_.get(), tag(2));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking).Expect(2, true).Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(2, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |    EXPECT_EQ(send_request.message(), recv_request.message());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    cli_ctx.TryCancel();
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking).Expect(5, true).Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(5, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |    EXPECT_TRUE(srv_ctx.IsCancelled());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    response_reader->Finish(&recv_response, &recv_status, tag(4));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking).Expect(4, true).Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(4, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    EXPECT_EQ(StatusCode::CANCELLED, recv_status.error_code());
 | 
	
		
			
				|  |  |  }
 | 
	
	
		
			
				|  | @@ -1307,17 +1137,13 @@ TEST_P(AsyncEnd2endTest, ServerCheckDone) {
 | 
	
		
			
				|  |  |    service_->RequestEcho(&srv_ctx, &recv_request, &response_writer, cq_.get(),
 | 
	
		
			
				|  |  |                          cq_.get(), tag(2));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking).Expect(2, true).Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(2, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |    EXPECT_EQ(send_request.message(), recv_request.message());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    send_response.set_message(recv_request.message());
 | 
	
		
			
				|  |  |    response_writer.Finish(send_response, Status::OK, tag(3));
 | 
	
		
			
				|  |  |    response_reader->Finish(&recv_response, &recv_status, tag(4));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | -      .Expect(3, true)
 | 
	
		
			
				|  |  | -      .Expect(4, true)
 | 
	
		
			
				|  |  | -      .Expect(5, true)
 | 
	
		
			
				|  |  | -      .Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(3, true).Expect(4, true).Expect(5, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |    EXPECT_FALSE(srv_ctx.IsCancelled());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    EXPECT_EQ(send_response.message(), recv_response.message());
 | 
	
	
		
			
				|  | @@ -1344,7 +1170,7 @@ TEST_P(AsyncEnd2endTest, UnimplementedRpc) {
 | 
	
		
			
				|  |  |        stub->AsyncUnimplemented(&cli_ctx, send_request, cq_.get()));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    response_reader->Finish(&recv_response, &recv_status, tag(4));
 | 
	
		
			
				|  |  | -  Verifier(GetParam().disable_blocking).Expect(4, true).Verify(cq_.get());
 | 
	
		
			
				|  |  | +  Verifier().Expect(4, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    EXPECT_EQ(StatusCode::UNIMPLEMENTED, recv_status.error_code());
 | 
	
		
			
				|  |  |    EXPECT_EQ("", recv_status.error_message());
 | 
	
	
		
			
				|  | @@ -1398,10 +1224,9 @@ class AsyncEnd2endServerTryCancelTest : public AsyncEnd2endTest {
 | 
	
		
			
				|  |  |      srv_ctx.AsyncNotifyWhenDone(tag(11));
 | 
	
		
			
				|  |  |      service_->RequestRequestStream(&srv_ctx, &srv_stream, cq_.get(), cq_.get(),
 | 
	
		
			
				|  |  |                                     tag(2));
 | 
	
		
			
				|  |  | -    std::thread t1([this, &cli_cq] {
 | 
	
		
			
				|  |  | -      Verifier(GetParam().disable_blocking).Expect(1, true).Verify(&cli_cq);
 | 
	
		
			
				|  |  | -    });
 | 
	
		
			
				|  |  | -    Verifier(GetParam().disable_blocking).Expect(2, true).Verify(cq_.get());
 | 
	
		
			
				|  |  | +    std::thread t1(
 | 
	
		
			
				|  |  | +        [this, &cli_cq] { Verifier().Expect(1, true).Verify(&cli_cq); });
 | 
	
		
			
				|  |  | +    Verifier().Expect(2, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |      t1.join();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      bool expected_server_cq_result = true;
 | 
	
	
		
			
				|  | @@ -1409,7 +1234,7 @@ class AsyncEnd2endServerTryCancelTest : public AsyncEnd2endTest {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      if (server_try_cancel == CANCEL_BEFORE_PROCESSING) {
 | 
	
		
			
				|  |  |        srv_ctx.TryCancel();
 | 
	
		
			
				|  |  | -      Verifier(GetParam().disable_blocking).Expect(11, true).Verify(cq_.get());
 | 
	
		
			
				|  |  | +      Verifier().Expect(11, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |        EXPECT_TRUE(srv_ctx.IsCancelled());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |        // Since cancellation is done before server reads any results, we know
 | 
	
	
		
			
				|  | @@ -1430,13 +1255,13 @@ class AsyncEnd2endServerTryCancelTest : public AsyncEnd2endTest {
 | 
	
		
			
				|  |  |        for (int tag_idx = 3; tag_idx <= 5; tag_idx++) {
 | 
	
		
			
				|  |  |          send_request.set_message("Ping " + grpc::to_string(tag_idx));
 | 
	
		
			
				|  |  |          cli_stream->Write(send_request, tag(tag_idx));
 | 
	
		
			
				|  |  | -        Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | +        Verifier()
 | 
	
		
			
				|  |  |              .Expect(tag_idx, expected_client_cq_result)
 | 
	
		
			
				|  |  |              .Verify(&cli_cq, ignore_client_cq_result);
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |        cli_stream->WritesDone(tag(6));
 | 
	
		
			
				|  |  |        // Ignore ok on WritesDone since cancel can affect it
 | 
	
		
			
				|  |  | -      Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | +      Verifier()
 | 
	
		
			
				|  |  |            .Expect(6, expected_client_cq_result)
 | 
	
		
			
				|  |  |            .Verify(&cli_cq, ignore_client_cq_result);
 | 
	
		
			
				|  |  |      });
 | 
	
	
		
			
				|  | @@ -1445,7 +1270,7 @@ class AsyncEnd2endServerTryCancelTest : public AsyncEnd2endTest {
 | 
	
		
			
				|  |  |      bool want_done_tag = false;
 | 
	
		
			
				|  |  |      std::thread* server_try_cancel_thd = nullptr;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    auto verif = Verifier(GetParam().disable_blocking);
 | 
	
		
			
				|  |  | +    auto verif = Verifier();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      if (server_try_cancel == CANCEL_DURING_PROCESSING) {
 | 
	
		
			
				|  |  |        server_try_cancel_thd =
 | 
	
	
		
			
				|  | @@ -1505,11 +1330,11 @@ class AsyncEnd2endServerTryCancelTest : public AsyncEnd2endTest {
 | 
	
		
			
				|  |  |      // Server sends the final message and cancelled status (but the RPC is
 | 
	
		
			
				|  |  |      // already cancelled at this point. So we expect the operation to fail)
 | 
	
		
			
				|  |  |      srv_stream.Finish(send_response, Status::CANCELLED, tag(9));
 | 
	
		
			
				|  |  | -    Verifier(GetParam().disable_blocking).Expect(9, false).Verify(cq_.get());
 | 
	
		
			
				|  |  | +    Verifier().Expect(9, false).Verify(cq_.get());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      // Client will see the cancellation
 | 
	
		
			
				|  |  |      cli_stream->Finish(&recv_status, tag(10));
 | 
	
		
			
				|  |  | -    Verifier(GetParam().disable_blocking).Expect(10, true).Verify(&cli_cq);
 | 
	
		
			
				|  |  | +    Verifier().Expect(10, true).Verify(&cli_cq);
 | 
	
		
			
				|  |  |      EXPECT_FALSE(recv_status.ok());
 | 
	
		
			
				|  |  |      EXPECT_EQ(::grpc::StatusCode::CANCELLED, recv_status.error_code());
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1555,10 +1380,9 @@ class AsyncEnd2endServerTryCancelTest : public AsyncEnd2endTest {
 | 
	
		
			
				|  |  |      service_->RequestResponseStream(&srv_ctx, &recv_request, &srv_stream,
 | 
	
		
			
				|  |  |                                      cq_.get(), cq_.get(), tag(2));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    std::thread t1([this, &cli_cq] {
 | 
	
		
			
				|  |  | -      Verifier(GetParam().disable_blocking).Expect(1, true).Verify(&cli_cq);
 | 
	
		
			
				|  |  | -    });
 | 
	
		
			
				|  |  | -    Verifier(GetParam().disable_blocking).Expect(2, true).Verify(cq_.get());
 | 
	
		
			
				|  |  | +    std::thread t1(
 | 
	
		
			
				|  |  | +        [this, &cli_cq] { Verifier().Expect(1, true).Verify(&cli_cq); });
 | 
	
		
			
				|  |  | +    Verifier().Expect(2, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |      t1.join();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      EXPECT_EQ(send_request.message(), recv_request.message());
 | 
	
	
		
			
				|  | @@ -1572,7 +1396,7 @@ class AsyncEnd2endServerTryCancelTest : public AsyncEnd2endTest {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      if (server_try_cancel == CANCEL_BEFORE_PROCESSING) {
 | 
	
		
			
				|  |  |        srv_ctx.TryCancel();
 | 
	
		
			
				|  |  | -      Verifier(GetParam().disable_blocking).Expect(11, true).Verify(cq_.get());
 | 
	
		
			
				|  |  | +      Verifier().Expect(11, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |        EXPECT_TRUE(srv_ctx.IsCancelled());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |        // We know for sure that all cq results will be false from this point
 | 
	
	
		
			
				|  | @@ -1587,7 +1411,7 @@ class AsyncEnd2endServerTryCancelTest : public AsyncEnd2endTest {
 | 
	
		
			
				|  |  |        for (int tag_idx = 6; tag_idx <= 8; tag_idx++) {
 | 
	
		
			
				|  |  |          EchoResponse recv_response;
 | 
	
		
			
				|  |  |          cli_stream->Read(&recv_response, tag(tag_idx));
 | 
	
		
			
				|  |  | -        Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | +        Verifier()
 | 
	
		
			
				|  |  |              .Expect(tag_idx, expected_client_cq_result)
 | 
	
		
			
				|  |  |              .Verify(&cli_cq, ignore_client_cq_result);
 | 
	
		
			
				|  |  |        }
 | 
	
	
		
			
				|  | @@ -1595,7 +1419,7 @@ class AsyncEnd2endServerTryCancelTest : public AsyncEnd2endTest {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      std::thread* server_try_cancel_thd = nullptr;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    auto verif = Verifier(GetParam().disable_blocking);
 | 
	
		
			
				|  |  | +    auto verif = Verifier();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      if (server_try_cancel == CANCEL_DURING_PROCESSING) {
 | 
	
		
			
				|  |  |        server_try_cancel_thd =
 | 
	
	
		
			
				|  | @@ -1656,11 +1480,11 @@ class AsyncEnd2endServerTryCancelTest : public AsyncEnd2endTest {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      // Server finishes the stream (but the RPC is already cancelled)
 | 
	
		
			
				|  |  |      srv_stream.Finish(Status::CANCELLED, tag(9));
 | 
	
		
			
				|  |  | -    Verifier(GetParam().disable_blocking).Expect(9, false).Verify(cq_.get());
 | 
	
		
			
				|  |  | +    Verifier().Expect(9, false).Verify(cq_.get());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      // Client will see the cancellation
 | 
	
		
			
				|  |  |      cli_stream->Finish(&recv_status, tag(10));
 | 
	
		
			
				|  |  | -    Verifier(GetParam().disable_blocking).Expect(10, true).Verify(&cli_cq);
 | 
	
		
			
				|  |  | +    Verifier().Expect(10, true).Verify(&cli_cq);
 | 
	
		
			
				|  |  |      EXPECT_FALSE(recv_status.ok());
 | 
	
		
			
				|  |  |      EXPECT_EQ(::grpc::StatusCode::CANCELLED, recv_status.error_code());
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1707,12 +1531,9 @@ class AsyncEnd2endServerTryCancelTest : public AsyncEnd2endTest {
 | 
	
		
			
				|  |  |      srv_ctx.AsyncNotifyWhenDone(tag(11));
 | 
	
		
			
				|  |  |      service_->RequestBidiStream(&srv_ctx, &srv_stream, cq_.get(), cq_.get(),
 | 
	
		
			
				|  |  |                                  tag(2));
 | 
	
		
			
				|  |  | -    Verifier(GetParam().disable_blocking)
 | 
	
		
			
				|  |  | -        .Expect(1, true)
 | 
	
		
			
				|  |  | -        .Expect(2, true)
 | 
	
		
			
				|  |  | -        .Verify(cq_.get());
 | 
	
		
			
				|  |  | +    Verifier().Expect(1, true).Expect(2, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    auto verif = Verifier(GetParam().disable_blocking);
 | 
	
		
			
				|  |  | +    auto verif = Verifier();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      // Client sends the first and the only message
 | 
	
		
			
				|  |  |      send_request.set_message("Ping");
 | 
	
	
		
			
				|  | @@ -1852,10 +1673,10 @@ class AsyncEnd2endServerTryCancelTest : public AsyncEnd2endTest {
 | 
	
		
			
				|  |  |      // know that cq results are supposed to return false on server.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      srv_stream.Finish(Status::CANCELLED, tag(9));
 | 
	
		
			
				|  |  | -    Verifier(GetParam().disable_blocking).Expect(9, false).Verify(cq_.get());
 | 
	
		
			
				|  |  | +    Verifier().Expect(9, false).Verify(cq_.get());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      cli_stream->Finish(&recv_status, tag(10));
 | 
	
		
			
				|  |  | -    Verifier(GetParam().disable_blocking).Expect(10, true).Verify(cq_.get());
 | 
	
		
			
				|  |  | +    Verifier().Expect(10, true).Verify(cq_.get());
 | 
	
		
			
				|  |  |      EXPECT_FALSE(recv_status.ok());
 | 
	
		
			
				|  |  |      EXPECT_EQ(grpc::StatusCode::CANCELLED, recv_status.error_code());
 | 
	
		
			
				|  |  |    }
 | 
	
	
		
			
				|  | @@ -1897,8 +1718,7 @@ TEST_P(AsyncEnd2endServerTryCancelTest, ServerBidiStreamingTryCancelAfter) {
 | 
	
		
			
				|  |  |    TestBidiStreamingServerCancel(CANCEL_AFTER_PROCESSING);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -std::vector<TestScenario> CreateTestScenarios(bool test_disable_blocking,
 | 
	
		
			
				|  |  | -                                              bool test_secure,
 | 
	
		
			
				|  |  | +std::vector<TestScenario> CreateTestScenarios(bool test_secure,
 | 
	
		
			
				|  |  |                                                int test_big_limit) {
 | 
	
		
			
				|  |  |    std::vector<TestScenario> scenarios;
 | 
	
		
			
				|  |  |    std::vector<grpc::string> credentials_types;
 | 
	
	
		
			
				|  | @@ -1936,14 +1756,10 @@ std::vector<TestScenario> CreateTestScenarios(bool test_disable_blocking,
 | 
	
		
			
				|  |  |      for (auto msg = messages.begin(); msg != messages.end(); msg++) {
 | 
	
		
			
				|  |  |        for (auto cred = credentials_types.begin();
 | 
	
		
			
				|  |  |             cred != credentials_types.end(); ++cred) {
 | 
	
		
			
				|  |  | -        scenarios.emplace_back(false, false, *cred, health_check_service, *msg);
 | 
	
		
			
				|  |  | -        if (test_disable_blocking) {
 | 
	
		
			
				|  |  | -          scenarios.emplace_back(true, false, *cred, health_check_service,
 | 
	
		
			
				|  |  | -                                 *msg);
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | +        scenarios.emplace_back(false, *cred, health_check_service, *msg);
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |        if (insec_ok()) {
 | 
	
		
			
				|  |  | -        scenarios.emplace_back(false, true, kInsecureCredentialsType,
 | 
	
		
			
				|  |  | +        scenarios.emplace_back(true, kInsecureCredentialsType,
 | 
	
		
			
				|  |  |                                 health_check_service, *msg);
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -1952,12 +1768,10 @@ std::vector<TestScenario> CreateTestScenarios(bool test_disable_blocking,
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  INSTANTIATE_TEST_CASE_P(AsyncEnd2end, AsyncEnd2endTest,
 | 
	
		
			
				|  |  | -                        ::testing::ValuesIn(CreateTestScenarios(true, true,
 | 
	
		
			
				|  |  | -                                                                1024)));
 | 
	
		
			
				|  |  | +                        ::testing::ValuesIn(CreateTestScenarios(true, 1024)));
 | 
	
		
			
				|  |  |  INSTANTIATE_TEST_CASE_P(AsyncEnd2endServerTryCancel,
 | 
	
		
			
				|  |  |                          AsyncEnd2endServerTryCancelTest,
 | 
	
		
			
				|  |  | -                        ::testing::ValuesIn(CreateTestScenarios(false, false,
 | 
	
		
			
				|  |  | -                                                                0)));
 | 
	
		
			
				|  |  | +                        ::testing::ValuesIn(CreateTestScenarios(false, 0)));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  }  // namespace
 | 
	
		
			
				|  |  |  }  // namespace testing
 |