direct_test.go 888 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package ray_test
  2. import (
  3. "io"
  4. "testing"
  5. "context"
  6. "v2ray.com/core/common/buf"
  7. "v2ray.com/core/testing/assert"
  8. . "v2ray.com/core/transport/ray"
  9. )
  10. func TestStreamIO(t *testing.T) {
  11. assert := assert.On(t)
  12. stream := NewStream(context.Background())
  13. b1 := buf.New()
  14. b1.AppendBytes('a')
  15. assert.Error(stream.Write(b1)).IsNil()
  16. _, err := stream.Read()
  17. assert.Error(err).IsNil()
  18. stream.Close()
  19. _, err = stream.Read()
  20. assert.Error(err).Equals(io.EOF)
  21. b2 := buf.New()
  22. b2.AppendBytes('b')
  23. err = stream.Write(b2)
  24. assert.Error(err).Equals(io.ErrClosedPipe)
  25. }
  26. func TestStreamClose(t *testing.T) {
  27. assert := assert.On(t)
  28. stream := NewStream(context.Background())
  29. b1 := buf.New()
  30. b1.AppendBytes('a')
  31. assert.Error(stream.Write(b1)).IsNil()
  32. stream.Close()
  33. _, err := stream.Read()
  34. assert.Error(err).IsNil()
  35. _, err = stream.Read()
  36. assert.Error(err).Equals(io.EOF)
  37. }