ota_test.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. package shadowsocks_test
  2. import (
  3. "testing"
  4. "v2ray.com/core/common/alloc"
  5. . "v2ray.com/core/proxy/shadowsocks"
  6. "v2ray.com/core/testing/assert"
  7. )
  8. func TestNormalChunkReading(t *testing.T) {
  9. assert := assert.On(t)
  10. buffer := alloc.NewBuffer()
  11. buffer.AppendBytes(
  12. 0, 8, 39, 228, 69, 96, 133, 39, 254, 26, 201, 70, 11, 12, 13, 14, 15, 16, 17, 18)
  13. reader := NewChunkReader(buffer, NewAuthenticator(ChunkKeyGenerator(
  14. []byte{21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36})))
  15. payload, err := reader.Read()
  16. assert.Error(err).IsNil()
  17. assert.Bytes(payload.Bytes()).Equals([]byte{11, 12, 13, 14, 15, 16, 17, 18})
  18. payload.PrependBytes(3, 4)
  19. assert.Bytes(payload.Bytes()).Equals([]byte{3, 4, 11, 12, 13, 14, 15, 16, 17, 18})
  20. }
  21. func TestNormalChunkWriting(t *testing.T) {
  22. assert := assert.On(t)
  23. buffer := alloc.NewLocalBuffer(512)
  24. writer := NewChunkWriter(buffer, NewAuthenticator(ChunkKeyGenerator(
  25. []byte{21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36})))
  26. b := alloc.NewLocalBuffer(256)
  27. b.Append([]byte{11, 12, 13, 14, 15, 16, 17, 18})
  28. err := writer.Write(b)
  29. assert.Error(err).IsNil()
  30. assert.Bytes(buffer.Bytes()).Equals([]byte{0, 8, 39, 228, 69, 96, 133, 39, 254, 26, 201, 70, 11, 12, 13, 14, 15, 16, 17, 18})
  31. }