func TestWriteTimeout(t *testing.T) { testutils.WithTestServer(t, nil, func(ts *testutils.TestServer) { ch := ts.Server() ctx, cancel := NewContext(testutils.Timeout(15 * time.Millisecond)) defer cancel() call, err := ch.BeginCall(ctx, ts.HostPort(), ch.ServiceName(), "call", nil) require.NoError(t, err, "Call failed") writer, err := call.Arg2Writer() require.NoError(t, err, "Arg2Writer failed") _, err = writer.Write([]byte{1}) require.NoError(t, err, "Write initial bytes failed") <-ctx.Done() _, err = io.Copy(writer, testreader.Looper([]byte{1})) assert.Equal(t, ErrTimeout, err, "Write should fail with timeout") ts.AssertRelayStats(relaytest.NewMockStats()) }) }
func TestReservedBytes(t *testing.T) { // Set up a frame with non-zero values f := NewFrame(MaxFramePayloadSize) reader := testreader.Looper([]byte{^byte(0)}) io.ReadFull(reader, f.Payload) f.Header.read(typed.NewReadBuffer(f.Payload)) m := &pingRes{id: 1} f.write(m) buf := &bytes.Buffer{} f.WriteOut(buf) assert.Equal(t, []byte{ 0x0, 0x10, // size 0xd1, // type 0x0, // reserved should always be 0 0x0, 0x0, 0x0, 0x1, // id 0x0, 0x0, 0x0, 0x0, // reserved should always be 0 0x0, 0x0, 0x0, 0x0, // reserved should always be 0 }, buf.Bytes(), "Unexpected bytes") }
func nString(n int) []byte { buf := make([]byte, n) reader := testreader.Looper([]byte{'a', 'b', 'c', 'd', 'e'}) io.ReadFull(reader, buf) return buf }
func (p dirtyFramePool) Get() *Frame { f := NewFrame(MaxFramePayloadSize) reader := testreader.Looper([]byte{^byte(0)}) io.ReadFull(reader, f.Payload) return f }