receiving_test.go 782 B

123456789101112131415161718192021222324252627282930313233343536
  1. package kcp_test
  2. import (
  3. "testing"
  4. "v2ray.com/core/testing/assert"
  5. . "v2ray.com/core/transport/internet/kcp"
  6. )
  7. func TestRecivingWindow(t *testing.T) {
  8. assert := assert.On(t)
  9. window := NewReceivingWindow(3)
  10. seg0 := &DataSegment{}
  11. seg1 := &DataSegment{}
  12. seg2 := &DataSegment{}
  13. seg3 := &DataSegment{}
  14. assert.Bool(window.Set(0, seg0)).IsTrue()
  15. assert.Pointer(window.RemoveFirst()).Equals(seg0)
  16. e := window.RemoveFirst()
  17. if e != nil {
  18. assert.Fail("Expecting nil.")
  19. }
  20. assert.Bool(window.Set(1, seg1)).IsTrue()
  21. assert.Bool(window.Set(2, seg2)).IsTrue()
  22. window.Advance()
  23. assert.Bool(window.Set(2, seg3)).IsTrue()
  24. assert.Pointer(window.RemoveFirst()).Equals(seg1)
  25. assert.Pointer(window.Remove(1)).Equals(seg2)
  26. assert.Pointer(window.Remove(2)).Equals(seg3)
  27. }