| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- package crypto_test
- import (
- "io"
- "testing"
- "v2ray.com/core/common/buf"
- . "v2ray.com/core/common/crypto"
- . "v2ray.com/ext/assert"
- )
- func TestChunkStreamIO(t *testing.T) {
- assert := With(t)
- cache := buf.NewSize(8192)
- writer := NewChunkStreamWriter(PlainChunkSizeParser{}, cache)
- reader := NewChunkStreamReader(PlainChunkSizeParser{}, cache)
- b := buf.New()
- b.AppendBytes('a', 'b', 'c', 'd')
- assert(writer.WriteMultiBuffer(buf.NewMultiBufferValue(b)), IsNil)
- b = buf.New()
- b.AppendBytes('e', 'f', 'g')
- assert(writer.WriteMultiBuffer(buf.NewMultiBufferValue(b)), IsNil)
- assert(writer.WriteMultiBuffer(buf.MultiBuffer{}), IsNil)
- assert(cache.Len(), Equals, int32(13))
- mb, err := reader.ReadMultiBuffer()
- assert(err, IsNil)
- assert(mb.Len(), Equals, int32(4))
- assert(mb[0].Bytes(), Equals, []byte("abcd"))
- mb, err = reader.ReadMultiBuffer()
- assert(err, IsNil)
- assert(mb.Len(), Equals, int32(3))
- assert(mb[0].Bytes(), Equals, []byte("efg"))
- _, err = reader.ReadMultiBuffer()
- assert(err, Equals, io.EOF)
- }
|