| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 | package pipe_testimport (	"io"	"testing"	"v2ray.com/core/common/buf"	. "v2ray.com/core/transport/pipe"	. "v2ray.com/ext/assert")func TestPipeReadWrite(t *testing.T) {	assert := With(t)	pReader, pWriter := New()	payload := []byte{'a', 'b', 'c', 'd'}	b := buf.New()	b.Append(payload)	assert(pWriter.WriteMultiBuffer(buf.NewMultiBufferValue(b)), IsNil)	rb, err := pReader.ReadMultiBuffer()	assert(err, IsNil)	assert(rb.String(), Equals, b.String())}func TestPipeCloseError(t *testing.T) {	assert := With(t)	pReader, pWriter := New()	payload := []byte{'a', 'b', 'c', 'd'}	b := buf.New()	b.Append(payload)	assert(pWriter.WriteMultiBuffer(buf.NewMultiBufferValue(b)), IsNil)	pWriter.CloseError()	rb, err := pReader.ReadMultiBuffer()	assert(err, Equals, io.ErrClosedPipe)	assert(rb.IsEmpty(), IsTrue)}func TestPipeClose(t *testing.T) {	assert := With(t)	pReader, pWriter := New()	payload := []byte{'a', 'b', 'c', 'd'}	b := buf.New()	b.Append(payload)	assert(pWriter.WriteMultiBuffer(buf.NewMultiBufferValue(b)), IsNil)	assert(pWriter.Close(), IsNil)	rb, err := pReader.ReadMultiBuffer()	assert(err, IsNil)	assert(rb.String(), Equals, b.String())	rb, err = pReader.ReadMultiBuffer()	assert(err, Equals, io.EOF)	assert(rb.IsEmpty(), IsTrue)}
 |