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)
| 3364 | // split across multiple buffers. It verifies that the reporting of the |
| 3365 | // number of bytes read for flow control is correct. |
| 3366 | func (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 |
nothing calls this directly
no test coverage detected