ota_test.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. package shadowsocks_test
  2. import (
  3. "testing"
  4. "github.com/google/go-cmp/cmp"
  5. "v2ray.com/core/common"
  6. "v2ray.com/core/common/buf"
  7. . "v2ray.com/core/proxy/shadowsocks"
  8. )
  9. func TestNormalChunkReading(t *testing.T) {
  10. buffer := buf.New()
  11. buffer.Write([]byte{0, 8, 39, 228, 69, 96, 133, 39, 254, 26, 201, 70, 11, 12, 13, 14, 15, 16, 17, 18})
  12. reader := NewChunkReader(buffer, NewAuthenticator(ChunkKeyGenerator(
  13. []byte{21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36})))
  14. payload, err := reader.ReadMultiBuffer()
  15. common.Must(err)
  16. if diff := cmp.Diff(payload[0].Bytes(), []byte{11, 12, 13, 14, 15, 16, 17, 18}); diff != "" {
  17. t.Error(diff)
  18. }
  19. }
  20. func TestNormalChunkWriting(t *testing.T) {
  21. buffer := buf.New()
  22. writer := NewChunkWriter(buffer, NewAuthenticator(ChunkKeyGenerator(
  23. []byte{21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36})))
  24. b := buf.New()
  25. b.Write([]byte{11, 12, 13, 14, 15, 16, 17, 18})
  26. common.Must(writer.WriteMultiBuffer(buf.MultiBuffer{b}))
  27. if diff := cmp.Diff(buffer.Bytes(), []byte{0, 8, 39, 228, 69, 96, 133, 39, 254, 26, 201, 70, 11, 12, 13, 14, 15, 16, 17, 18}); diff != "" {
  28. t.Error(diff)
  29. }
  30. }