| 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())
 
- }
 
 
  |