TCPMsgBasedSendQueue_1.test 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. %description:
  2. Test TCPMsgBasedSendQueue class
  3. - segments with/without last byte of msg.
  4. - enqueueing, create segment, discard up.
  5. %includes:
  6. #include "TCPQueueTesterFunctions.h"
  7. %global:
  8. using namespace ::inet::tcp;
  9. %activity:
  10. TCPMsgBasedSendQueue sendQueue;
  11. TCPMsgBasedSendQueue *q = &sendQueue;
  12. q->init(1000);
  13. EV << q->info() <<"\n";
  14. enqueue(q, "msg1", 100); // 1000..1100
  15. enqueue(q, "msg2", 400); // 1100..1500
  16. enqueue(q, "msg3", 600); // 1500..2100
  17. enqueue(q, "msg4", 200); // 2100..2300
  18. delete createSegmentWithBytes(q, 1000, 1099);
  19. delete createSegmentWithBytes(q, 1000, 1100);
  20. delete createSegmentWithBytes(q, 1000, 2099);
  21. delete createSegmentWithBytes(q, 1000, 2100);
  22. delete createSegmentWithBytes(q, 2000, 2099);
  23. delete createSegmentWithBytes(q, 2000, 2100);
  24. discardUpTo(q, 2099);
  25. discardUpTo(q, 2100);
  26. delete createSegmentWithBytes(q, 2100, 2100);
  27. EV << ".\n";
  28. %contains: stdout
  29. [1000..1000), 0 packets
  30. SQ:enqueue("msg1", 100): --> [1000..1100), 1 packets
  31. SQ:enqueue("msg2", 400): --> [1000..1500), 2 packets
  32. SQ:enqueue("msg3", 600): --> [1000..2100), 3 packets
  33. SQ:enqueue("msg4", 200): --> [1000..2300), 4 packets
  34. SQ:createSegmentWithBytes(1000, 1099):
  35. SQ:createSegmentWithBytes(1000, 1100): msg1[1000..1100)
  36. SQ:createSegmentWithBytes(1000, 2099): msg1[1000..1100), msg2[1100..1500)
  37. SQ:createSegmentWithBytes(1000, 2100): msg1[1000..1100), msg2[1100..1500), msg3[1500..2100)
  38. SQ:createSegmentWithBytes(2000, 2099):
  39. SQ:createSegmentWithBytes(2000, 2100): msg3[1500..2100)
  40. SQ:discardUpTo(2099): [2099..2300), 2 packets
  41. SQ:discardUpTo(2100): [2100..2300), 1 packets
  42. SQ:createSegmentWithBytes(2100, 2100):
  43. .