sending_test.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package kcp_test
  2. import (
  3. "testing"
  4. "github.com/v2ray/v2ray-core/testing/assert"
  5. . "github.com/v2ray/v2ray-core/transport/internet/kcp"
  6. )
  7. func TestSendingQueue(t *testing.T) {
  8. assert := assert.On(t)
  9. queue := NewSendingQueue(3)
  10. seg0 := &Segment{}
  11. seg1 := &Segment{}
  12. seg2 := &Segment{}
  13. seg3 := &Segment{}
  14. assert.Bool(queue.IsEmpty()).IsTrue()
  15. assert.Bool(queue.IsFull()).IsFalse()
  16. queue.Push(seg0)
  17. assert.Bool(queue.IsEmpty()).IsFalse()
  18. queue.Push(seg1)
  19. queue.Push(seg2)
  20. assert.Bool(queue.IsFull()).IsTrue()
  21. assert.Pointer(queue.Pop()).Equals(seg0)
  22. queue.Push(seg3)
  23. assert.Bool(queue.IsFull()).IsTrue()
  24. assert.Pointer(queue.Pop()).Equals(seg1)
  25. assert.Pointer(queue.Pop()).Equals(seg2)
  26. assert.Pointer(queue.Pop()).Equals(seg3)
  27. assert.Int(int(queue.Len())).Equals(0)
  28. }
  29. func TestSendingQueueClear(t *testing.T) {
  30. assert := assert.On(t)
  31. queue := NewSendingQueue(3)
  32. seg0 := &Segment{}
  33. seg1 := &Segment{}
  34. seg2 := &Segment{}
  35. seg3 := &Segment{}
  36. queue.Push(seg0)
  37. assert.Bool(queue.IsEmpty()).IsFalse()
  38. queue.Clear()
  39. assert.Bool(queue.IsEmpty()).IsTrue()
  40. queue.Push(seg1)
  41. queue.Push(seg2)
  42. queue.Push(seg3)
  43. queue.Clear()
  44. assert.Bool(queue.IsEmpty()).IsTrue()
  45. }