MCPcopy
hub / github.com/grpc/grpc-go / TestReadMessageHeaderMultipleBuffers

Method TestReadMessageHeaderMultipleBuffers

internal/transport/transport_test.go:3366–3396  ·  view source on GitHub ↗

TestReadHeaderMultipleBuffers tests the stream when the gRPC headers are split across multiple buffers. It verifies that the reporting of the number of bytes read for flow control is correct.

(t *testing.T)

Source from the content-addressed store, hash-verified

3364// split across multiple buffers. It verifies that the reporting of the
3365// number of bytes read for flow control is correct.
3366func (s) TestReadMessageHeaderMultipleBuffers(t *testing.T) {
3367 headerLen := 5
3368 bytesRead := 0
3369 s := Stream{
3370 readRequester: &fakeReadRequester{},
3371 }
3372 s.buf.init()
3373 recvBuffer := &s.buf
3374 s.trReader = transportReader{
3375 reader: recvBufferReader{
3376 recv: recvBuffer,
3377 },
3378 windowHandler: &mockWindowUpdater{
3379 f: func(i int) {
3380 bytesRead += i
3381 },
3382 },
3383 }
3384
3385 recvBuffer.put(recvMsg{buffer: make(mem.SliceBuffer, 3)})
3386 recvBuffer.put(recvMsg{buffer: make(mem.SliceBuffer, headerLen-3)})
3387
3388 header := make([]byte, headerLen)
3389 err := s.ReadMessageHeader(header)
3390 if err != nil {
3391 t.Fatalf("ReadHeader(%v) = %v", header, err)
3392 }
3393 if bytesRead != headerLen {
3394 t.Errorf("bytesRead = %d, want = %d", bytesRead, headerLen)
3395 }
3396}
3397
3398// Tests a scenario when the client doesn't send an RST frame when the
3399// configured deadline is reached. The test verifies that the server sends an

Callers

nothing calls this directly

Calls 5

ReadMessageHeaderMethod · 0.65
FatalfMethod · 0.65
ErrorfMethod · 0.65
initMethod · 0.45
putMethod · 0.45

Tested by

no test coverage detected