sending_test.go 974 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package kcp_test
  2. import (
  3. "testing"
  4. "v2ray.com/core/testing/assert"
  5. . "v2ray.com/core/transport/internet/kcp"
  6. )
  7. func TestSendingWindow(t *testing.T) {
  8. assert := assert.On(t)
  9. window := NewSendingWindow(5, nil, nil)
  10. window.Push(&DataSegment{
  11. Number: 0,
  12. })
  13. window.Push(&DataSegment{
  14. Number: 1,
  15. })
  16. window.Push(&DataSegment{
  17. Number: 2,
  18. })
  19. assert.Int(window.Len()).Equals(3)
  20. window.Remove(1)
  21. assert.Int(window.Len()).Equals(3)
  22. assert.Uint32(window.First().Number).Equals(0)
  23. window.Remove(0)
  24. assert.Int(window.Len()).Equals(1)
  25. assert.Uint32(window.First().Number).Equals(2)
  26. window.Remove(0)
  27. assert.Int(window.Len()).Equals(0)
  28. window.Push(&DataSegment{
  29. Number: 4,
  30. })
  31. assert.Int(window.Len()).Equals(1)
  32. assert.Uint32(window.First().Number).Equals(4)
  33. window.Push(&DataSegment{
  34. Number: 5,
  35. })
  36. assert.Int(window.Len()).Equals(2)
  37. window.Remove(1)
  38. assert.Int(window.Len()).Equals(2)
  39. window.Remove(0)
  40. assert.Int(window.Len()).Equals(0)
  41. }