cover additional edges

pull/37448/head
Craig Tiller 5 months ago
parent 986c31e98e
commit 79cb121054
  1. 65
      test/core/call/request_buffer_test.cc

@ -125,6 +125,18 @@ TEST(RequestBufferTest, PushThenPullClientInitialMetadata) {
EXPECT_THAT(*value, IsTestMetadata());
}
TEST(RequestBufferTest, PushThenFinishThenPullClientInitialMetadata) {
RequestBuffer buffer;
EXPECT_EQ(buffer.PushClientInitialMetadata(TestMetadata()), 40);
buffer.FinishSends();
RequestBuffer::Reader reader(&buffer);
auto poll = reader.PullClientInitialMetadata()();
ASSERT_THAT(poll, IsReady());
auto value = std::move(poll.value());
ASSERT_TRUE(value.ok());
EXPECT_THAT(*value, IsTestMetadata());
}
TEST(RequestBufferTest, PullThenPushClientInitialMetadata) {
StrictMock<MockActivity> activity;
RequestBuffer buffer;
@ -649,6 +661,59 @@ TEST(RequestBufferTest, NothingAfterEndOfStream) {
EXPECT_FALSE(poll_msg.value().value().has_value());
}
TEST(RequestBufferTest, CancelBeforeInitialMetadataPush) {
RequestBuffer buffer;
buffer.Cancel();
EXPECT_EQ(buffer.PushClientInitialMetadata(TestMetadata()), Failure{});
RequestBuffer::Reader reader(&buffer);
auto pull_md = reader.PullClientInitialMetadata();
auto poll_md = pull_md();
ASSERT_THAT(poll_md, IsReady());
ASSERT_FALSE(poll_md.value().ok());
}
TEST(RequestBufferTest, CancelBeforeInitialMetadataPull) {
RequestBuffer buffer;
EXPECT_EQ(buffer.PushClientInitialMetadata(TestMetadata()), 40);
buffer.Cancel();
RequestBuffer::Reader reader(&buffer);
auto pull_md = reader.PullClientInitialMetadata();
auto poll_md = pull_md();
ASSERT_THAT(poll_md, IsReady());
ASSERT_FALSE(poll_md.value().ok());
}
TEST(RequestBufferTest, CancelBeforeMessagePush) {
RequestBuffer buffer;
EXPECT_EQ(buffer.PushClientInitialMetadata(TestMetadata()), 40);
buffer.Cancel();
auto pusher = buffer.PushMessage(TestMessage());
auto poll = pusher();
ASSERT_THAT(poll, IsReady());
ASSERT_FALSE(poll.value().ok());
RequestBuffer::Reader reader(&buffer);
auto pull_md = reader.PullClientInitialMetadata();
auto poll_md = pull_md();
ASSERT_THAT(poll_md, IsReady());
ASSERT_FALSE(poll_md.value().ok());
}
TEST(RequestBufferTest, CancelBeforeMessagePushButAfterInitialMetadataPull) {
RequestBuffer buffer;
EXPECT_EQ(buffer.PushClientInitialMetadata(TestMetadata()), 40);
RequestBuffer::Reader reader(&buffer);
auto pull_md = reader.PullClientInitialMetadata();
auto poll_md = pull_md();
ASSERT_THAT(poll_md, IsReady());
ASSERT_TRUE(poll_md.value().ok());
EXPECT_THAT(*poll_md.value(), IsTestMetadata());
buffer.Cancel();
auto pusher = buffer.PushMessage(TestMessage());
auto poll = pusher();
ASSERT_THAT(poll, IsReady());
ASSERT_FALSE(poll.value().ok());
}
} // namespace grpc_core
int main(int argc, char** argv) {

Loading…
Cancel
Save