|
|
|
@ -103,14 +103,17 @@ ChannelArgs MakeChannelArgs() { |
|
|
|
|
TEST_F(TransportTest, AddOneStream) { |
|
|
|
|
MockPromiseEndpoint control_endpoint(1000); |
|
|
|
|
MockPromiseEndpoint data_endpoint(1001); |
|
|
|
|
static const std::string many_as(1024 * 1024, 'a'); |
|
|
|
|
control_endpoint.ExpectRead( |
|
|
|
|
{SerializedFrameHeader(FrameType::kFragment, 7, 1, 26, 8, 56, 15), |
|
|
|
|
{SerializedFrameHeader(FrameType::kServerInitialMetadata, 0, 1, 26), |
|
|
|
|
EventEngineSlice::FromCopiedBuffer(kPathDemoServiceStep, |
|
|
|
|
sizeof(kPathDemoServiceStep)), |
|
|
|
|
SerializedFrameHeader(FrameType::kMessage, 1, 1, many_as.length()), |
|
|
|
|
SerializedFrameHeader(FrameType::kServerTrailingMetadata, 0, 1, 15), |
|
|
|
|
EventEngineSlice::FromCopiedBuffer(kGrpcStatus0, sizeof(kGrpcStatus0))}, |
|
|
|
|
event_engine().get()); |
|
|
|
|
data_endpoint.ExpectRead( |
|
|
|
|
{EventEngineSlice::FromCopiedString("12345678"), Zeros(56)}, nullptr); |
|
|
|
|
{EventEngineSlice::FromCopiedString(many_as), Zeros(56)}, nullptr); |
|
|
|
|
EXPECT_CALL(*control_endpoint.endpoint, Read) |
|
|
|
|
.InSequence(control_endpoint.read_sequence) |
|
|
|
|
.WillOnce(Return(false)); |
|
|
|
@ -122,18 +125,17 @@ TEST_F(TransportTest, AddOneStream) { |
|
|
|
|
StrictMock<MockFunction<void()>> on_done; |
|
|
|
|
EXPECT_CALL(on_done, Call()); |
|
|
|
|
control_endpoint.ExpectWrite( |
|
|
|
|
{SerializedFrameHeader(FrameType::kFragment, 1, 1, |
|
|
|
|
sizeof(kPathDemoServiceStep), 0, 0, 0), |
|
|
|
|
{SerializedFrameHeader(FrameType::kClientInitialMetadata, 0, 1, |
|
|
|
|
sizeof(kPathDemoServiceStep)), |
|
|
|
|
EventEngineSlice::FromCopiedBuffer(kPathDemoServiceStep, |
|
|
|
|
sizeof(kPathDemoServiceStep))}, |
|
|
|
|
nullptr); |
|
|
|
|
control_endpoint.ExpectWrite( |
|
|
|
|
{SerializedFrameHeader(FrameType::kFragment, 2, 1, 0, 1, 63, 0)}, |
|
|
|
|
{SerializedFrameHeader(FrameType::kMessage, 0, 1, 1), |
|
|
|
|
EventEngineSlice::FromCopiedString("0")}, |
|
|
|
|
nullptr); |
|
|
|
|
data_endpoint.ExpectWrite( |
|
|
|
|
{EventEngineSlice::FromCopiedString("0"), Zeros(63)}, nullptr); |
|
|
|
|
control_endpoint.ExpectWrite( |
|
|
|
|
{SerializedFrameHeader(FrameType::kFragment, 4, 1, 0, 0, 0, 0)}, nullptr); |
|
|
|
|
{SerializedFrameHeader(FrameType::kClientEndOfStream, 0, 1, 0)}, nullptr); |
|
|
|
|
transport->StartCall(call.handler.StartCall()); |
|
|
|
|
call.initiator.SpawnGuarded("test-send", |
|
|
|
|
[initiator = call.initiator]() mutable { |
|
|
|
@ -157,7 +159,7 @@ TEST_F(TransportTest, AddOneStream) { |
|
|
|
|
[](ServerToClientNextMessage msg) { |
|
|
|
|
EXPECT_TRUE(msg.ok()); |
|
|
|
|
EXPECT_TRUE(msg.has_value()); |
|
|
|
|
EXPECT_EQ(msg.value().payload()->JoinIntoString(), "12345678"); |
|
|
|
|
EXPECT_EQ(msg.value().payload()->JoinIntoString(), many_as); |
|
|
|
|
return Empty{}; |
|
|
|
|
}, |
|
|
|
|
[initiator]() mutable { return initiator.PullMessage(); }, |
|
|
|
@ -184,18 +186,17 @@ TEST_F(TransportTest, AddOneStreamMultipleMessages) { |
|
|
|
|
MockPromiseEndpoint control_endpoint(1000); |
|
|
|
|
MockPromiseEndpoint data_endpoint(1001); |
|
|
|
|
control_endpoint.ExpectRead( |
|
|
|
|
{SerializedFrameHeader(FrameType::kFragment, 3, 1, 26, 8, 56, 0), |
|
|
|
|
// 3, 1, 26, 8, 56, 0
|
|
|
|
|
{SerializedFrameHeader(FrameType::kServerInitialMetadata, 0, 1, 26), |
|
|
|
|
EventEngineSlice::FromCopiedBuffer(kPathDemoServiceStep, |
|
|
|
|
sizeof(kPathDemoServiceStep))}, |
|
|
|
|
event_engine().get()); |
|
|
|
|
control_endpoint.ExpectRead( |
|
|
|
|
{SerializedFrameHeader(FrameType::kFragment, 6, 1, 0, 8, 56, 15), |
|
|
|
|
sizeof(kPathDemoServiceStep)), |
|
|
|
|
SerializedFrameHeader(FrameType::kMessage, 0, 1, 8), |
|
|
|
|
EventEngineSlice::FromCopiedString("12345678"), |
|
|
|
|
SerializedFrameHeader(FrameType::kMessage, 0, 1, 8), |
|
|
|
|
EventEngineSlice::FromCopiedString("87654321"), |
|
|
|
|
SerializedFrameHeader(FrameType::kServerTrailingMetadata, 0, 1, 15), |
|
|
|
|
EventEngineSlice::FromCopiedBuffer(kGrpcStatus0, sizeof(kGrpcStatus0))}, |
|
|
|
|
event_engine().get()); |
|
|
|
|
data_endpoint.ExpectRead( |
|
|
|
|
{EventEngineSlice::FromCopiedString("12345678"), Zeros(56)}, nullptr); |
|
|
|
|
data_endpoint.ExpectRead( |
|
|
|
|
{EventEngineSlice::FromCopiedString("87654321"), Zeros(56)}, nullptr); |
|
|
|
|
EXPECT_CALL(*control_endpoint.endpoint, Read) |
|
|
|
|
.InSequence(control_endpoint.read_sequence) |
|
|
|
|
.WillOnce(Return(false)); |
|
|
|
@ -207,23 +208,21 @@ TEST_F(TransportTest, AddOneStreamMultipleMessages) { |
|
|
|
|
StrictMock<MockFunction<void()>> on_done; |
|
|
|
|
EXPECT_CALL(on_done, Call()); |
|
|
|
|
control_endpoint.ExpectWrite( |
|
|
|
|
{SerializedFrameHeader(FrameType::kFragment, 1, 1, |
|
|
|
|
sizeof(kPathDemoServiceStep), 0, 0, 0), |
|
|
|
|
{SerializedFrameHeader(FrameType::kClientInitialMetadata, 0, 1, |
|
|
|
|
sizeof(kPathDemoServiceStep)), |
|
|
|
|
EventEngineSlice::FromCopiedBuffer(kPathDemoServiceStep, |
|
|
|
|
sizeof(kPathDemoServiceStep))}, |
|
|
|
|
nullptr); |
|
|
|
|
control_endpoint.ExpectWrite( |
|
|
|
|
{SerializedFrameHeader(FrameType::kFragment, 2, 1, 0, 1, 63, 0)}, |
|
|
|
|
{SerializedFrameHeader(FrameType::kMessage, 0, 1, 1), |
|
|
|
|
EventEngineSlice::FromCopiedString("0")}, |
|
|
|
|
nullptr); |
|
|
|
|
data_endpoint.ExpectWrite( |
|
|
|
|
{EventEngineSlice::FromCopiedString("0"), Zeros(63)}, nullptr); |
|
|
|
|
control_endpoint.ExpectWrite( |
|
|
|
|
{SerializedFrameHeader(FrameType::kFragment, 2, 1, 0, 1, 63, 0)}, |
|
|
|
|
{SerializedFrameHeader(FrameType::kMessage, 0, 1, 1), |
|
|
|
|
EventEngineSlice::FromCopiedString("1")}, |
|
|
|
|
nullptr); |
|
|
|
|
data_endpoint.ExpectWrite( |
|
|
|
|
{EventEngineSlice::FromCopiedString("1"), Zeros(63)}, nullptr); |
|
|
|
|
control_endpoint.ExpectWrite( |
|
|
|
|
{SerializedFrameHeader(FrameType::kFragment, 4, 1, 0, 0, 0, 0)}, nullptr); |
|
|
|
|
{SerializedFrameHeader(FrameType::kClientEndOfStream, 0, 1, 0)}, nullptr); |
|
|
|
|
transport->StartCall(call.handler.StartCall()); |
|
|
|
|
call.initiator.SpawnGuarded("test-send", |
|
|
|
|
[initiator = call.initiator]() mutable { |
|
|
|
|