func TestBytesizeError(t *testing.T) { var err error _, err = Parse("--1") assert.Must(errors.Equal(err, ErrBadBytesize)) _, err = Parse("hello world") assert.Must(errors.Equal(err, ErrBadBytesize)) _, err = Parse("123.132.32") assert.Must(errors.Equal(err, ErrBadBytesize)) }
func TestConnReaderTimeout(t *testing.T) { resp := NewString([]byte("hello world")) conn1, conn2 := newConnPair() defer func() { connPool.Put(conn2) }() var wg sync.WaitGroup wg.Add(1) go func() { defer wg.Done() var err error conn1.ReaderTimeout = time.Millisecond * 10 _, err = conn1.Reader.Decode() assert.Must(err != nil && IsTimeout(err)) conn1.Reader.Err = nil conn1.ReaderTimeout = 0 _, err = conn1.Reader.Decode() assert.MustNoError(err) _, err = conn1.Reader.Decode() assert.Must(err != nil && errors.Equal(err, io.EOF)) }() wg.Add(1) go func() { defer wg.Done() var err error time.Sleep(time.Millisecond * 100) err = conn2.Writer.Encode(resp, true) assert.MustNoError(err) conn2.Close() }() wg.Wait() conn1.Close() conn2.Close() }
func TestConnWriterTimeout(t *testing.T) { resp := NewString([]byte("hello world")) conn1, conn2 := newConnPair() defer func() { connPool.Put(conn2) }() var wg sync.WaitGroup var count atomic2.Int64 wg.Add(1) go func() { defer wg.Done() defer conn2.Close() conn2.WriterTimeout = time.Millisecond * 50 for { if err := conn2.Writer.Encode(resp, true); err != nil { assert.Must(IsTimeout(err)) return } count.Incr() } }() wg.Wait() for i := count.Get(); i != 0; i-- { _, err := conn1.Reader.Decode() assert.MustNoError(err) } _, err := conn1.Reader.Decode() assert.Must(err != nil && errors.Equal(err, io.EOF)) conn1.Close() conn2.Close() }