| 12345678910111213141516171819202122232425262728293031323334353637 |
- package io_test
- import (
- "bytes"
- "crypto/rand"
- "io"
- "testing"
- "github.com/v2ray/v2ray-core/common/alloc"
- . "github.com/v2ray/v2ray-core/common/io"
- v2testing "github.com/v2ray/v2ray-core/testing"
- "github.com/v2ray/v2ray-core/testing/assert"
- )
- func TestReaderAndWrite(t *testing.T) {
- v2testing.Current(t)
- size := 1024 * 1024
- buffer := make([]byte, size)
- nBytes, err := rand.Read(buffer)
- assert.Int(nBytes).Equals(len(buffer))
- assert.Error(err).IsNil()
- readerBuffer := bytes.NewReader(buffer)
- writerBuffer := bytes.NewBuffer(make([]byte, 0, size))
- transportChan := make(chan *alloc.Buffer, 1024)
- err = ReaderToChan(transportChan, NewAdaptiveReader(readerBuffer))
- assert.Error(err).Equals(io.EOF)
- close(transportChan)
- err = ChanToRawWriter(writerBuffer, transportChan)
- assert.Error(err).IsNil()
- assert.Bytes(buffer).Equals(writerBuffer.Bytes())
- }
|