LEFT | RIGHT |
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ | 1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ |
2 /* | 2 /* |
3 * Copyright (c) 2016 NITK Surathkal | 3 * Copyright (c) 2016 NITK Surathkal |
4 * | 4 * |
5 * This program is free software; you can redistribute it and/or modify | 5 * This program is free software; you can redistribute it and/or modify |
6 * it under the terms of the GNU General Public License version 2 as | 6 * it under the terms of the GNU General Public License version 2 as |
7 * published by the Free Software Foundation; | 7 * published by the Free Software Foundation; |
8 * | 8 * |
9 * This program is distributed in the hope that it will be useful, | 9 * This program is distributed in the hope that it will be useful, |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
(...skipping 28 matching lines...) Expand all Loading... |
39 * \brief Pie Queue Disc Test Item | 39 * \brief Pie Queue Disc Test Item |
40 */ | 40 */ |
41 class PieQueueDiscTestItem : public QueueDiscItem | 41 class PieQueueDiscTestItem : public QueueDiscItem |
42 { | 42 { |
43 public: | 43 public: |
44 /** | 44 /** |
45 * Constructor | 45 * Constructor |
46 * | 46 * |
47 * \param p the packet | 47 * \param p the packet |
48 * \param addr the address | 48 * \param addr the address |
49 * \param protocol the protocol | 49 */ |
50 */ | 50 PieQueueDiscTestItem (Ptr<Packet> p, const Address & addr); |
51 PieQueueDiscTestItem (Ptr<Packet> p, const Address & addr, uint16_t protocol); | |
52 virtual ~PieQueueDiscTestItem (); | 51 virtual ~PieQueueDiscTestItem (); |
53 virtual void AddHeader (void); | 52 virtual void AddHeader (void); |
54 virtual bool Mark (void); | 53 virtual bool Mark (void); |
55 | 54 |
56 private: | 55 private: |
57 PieQueueDiscTestItem (); | 56 PieQueueDiscTestItem (); |
58 /** | 57 /** |
59 * \brief Copy constructor | 58 * \brief Copy constructor |
60 * Disable default implementation to avoid misuse | 59 * Disable default implementation to avoid misuse |
61 */ | 60 */ |
62 PieQueueDiscTestItem (const PieQueueDiscTestItem &); | 61 PieQueueDiscTestItem (const PieQueueDiscTestItem &); |
63 /** | 62 /** |
64 * \brief Assignment operator | 63 * \brief Assignment operator |
65 * \return this object | 64 * \return this object |
66 * Disable default implementation to avoid misuse | 65 * Disable default implementation to avoid misuse |
67 */ | 66 */ |
68 PieQueueDiscTestItem &operator = (const PieQueueDiscTestItem &); | 67 PieQueueDiscTestItem &operator = (const PieQueueDiscTestItem &); |
69 }; | 68 }; |
70 | 69 |
71 PieQueueDiscTestItem::PieQueueDiscTestItem (Ptr<Packet> p, const Address & addr,
uint16_t protocol) | 70 PieQueueDiscTestItem::PieQueueDiscTestItem (Ptr<Packet> p, const Address & addr) |
72 : QueueDiscItem (p, addr, protocol) | 71 : QueueDiscItem (p, addr, 0) |
73 { | 72 { |
74 } | 73 } |
75 | 74 |
76 PieQueueDiscTestItem::~PieQueueDiscTestItem () | 75 PieQueueDiscTestItem::~PieQueueDiscTestItem () |
77 { | 76 { |
78 } | 77 } |
79 | 78 |
80 void | 79 void |
81 PieQueueDiscTestItem::AddHeader (void) | 80 PieQueueDiscTestItem::AddHeader (void) |
82 { | 81 { |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
173 p2 = Create<Packet> (pktSize); | 172 p2 = Create<Packet> (pktSize); |
174 p3 = Create<Packet> (pktSize); | 173 p3 = Create<Packet> (pktSize); |
175 p4 = Create<Packet> (pktSize); | 174 p4 = Create<Packet> (pktSize); |
176 p5 = Create<Packet> (pktSize); | 175 p5 = Create<Packet> (pktSize); |
177 p6 = Create<Packet> (pktSize); | 176 p6 = Create<Packet> (pktSize); |
178 p7 = Create<Packet> (pktSize); | 177 p7 = Create<Packet> (pktSize); |
179 p8 = Create<Packet> (pktSize); | 178 p8 = Create<Packet> (pktSize); |
180 | 179 |
181 queue->Initialize (); | 180 queue->Initialize (); |
182 NS_TEST_EXPECT_MSG_EQ (queue->GetQueueSize (), 0 * modeSize, "There should be
no packets in there"); | 181 NS_TEST_EXPECT_MSG_EQ (queue->GetQueueSize (), 0 * modeSize, "There should be
no packets in there"); |
183 queue->Enqueue (Create<PieQueueDiscTestItem> (p1, dest, (uint16_t)0)); | 182 queue->Enqueue (Create<PieQueueDiscTestItem> (p1, dest)); |
184 NS_TEST_EXPECT_MSG_EQ (queue->GetQueueSize (), 1 * modeSize, "There should be
one packet in there"); | 183 NS_TEST_EXPECT_MSG_EQ (queue->GetQueueSize (), 1 * modeSize, "There should be
one packet in there"); |
185 queue->Enqueue (Create<PieQueueDiscTestItem> (p2, dest, (uint16_t)0)); | 184 queue->Enqueue (Create<PieQueueDiscTestItem> (p2, dest)); |
186 NS_TEST_EXPECT_MSG_EQ (queue->GetQueueSize (), 2 * modeSize, "There should be
two packets in there"); | 185 NS_TEST_EXPECT_MSG_EQ (queue->GetQueueSize (), 2 * modeSize, "There should be
two packets in there"); |
187 queue->Enqueue (Create<PieQueueDiscTestItem> (p3, dest, (uint16_t)0)); | 186 queue->Enqueue (Create<PieQueueDiscTestItem> (p3, dest)); |
188 queue->Enqueue (Create<PieQueueDiscTestItem> (p4, dest, (uint16_t)0)); | 187 queue->Enqueue (Create<PieQueueDiscTestItem> (p4, dest)); |
189 queue->Enqueue (Create<PieQueueDiscTestItem> (p5, dest, (uint16_t)0)); | 188 queue->Enqueue (Create<PieQueueDiscTestItem> (p5, dest)); |
190 queue->Enqueue (Create<PieQueueDiscTestItem> (p6, dest, (uint16_t)0)); | 189 queue->Enqueue (Create<PieQueueDiscTestItem> (p6, dest)); |
191 queue->Enqueue (Create<PieQueueDiscTestItem> (p7, dest, (uint16_t)0)); | 190 queue->Enqueue (Create<PieQueueDiscTestItem> (p7, dest)); |
192 queue->Enqueue (Create<PieQueueDiscTestItem> (p8, dest, (uint16_t)0)); | 191 queue->Enqueue (Create<PieQueueDiscTestItem> (p8, dest)); |
193 NS_TEST_EXPECT_MSG_EQ (queue->GetQueueSize (), 8 * modeSize, "There should be
eight packets in there"); | 192 NS_TEST_EXPECT_MSG_EQ (queue->GetQueueSize (), 8 * modeSize, "There should be
eight packets in there"); |
194 | 193 |
195 Ptr<QueueDiscItem> item; | 194 Ptr<QueueDiscItem> item; |
196 | 195 |
197 item = queue->Dequeue (); | 196 item = queue->Dequeue (); |
198 NS_TEST_EXPECT_MSG_EQ ((item != 0), true, "I want to remove the first packet")
; | 197 NS_TEST_EXPECT_MSG_EQ ((item != 0), true, "I want to remove the first packet")
; |
199 NS_TEST_EXPECT_MSG_EQ (queue->GetQueueSize (), 7 * modeSize, "There should be
seven packets in there"); | 198 NS_TEST_EXPECT_MSG_EQ (queue->GetQueueSize (), 7 * modeSize, "There should be
seven packets in there"); |
200 NS_TEST_EXPECT_MSG_EQ (item->GetPacket ()->GetUid (), p1->GetUid (), "was this
the first packet ?"); | 199 NS_TEST_EXPECT_MSG_EQ (item->GetPacket ()->GetUid (), p1->GetUid (), "was this
the first packet ?"); |
201 | 200 |
202 item = queue->Dequeue (); | 201 item = queue->Dequeue (); |
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
343 NS_TEST_EXPECT_MSG_LT (test5, test4, "Test 5 should have less unforced drops t
han test 4"); | 342 NS_TEST_EXPECT_MSG_LT (test5, test4, "Test 5 should have less unforced drops t
han test 4"); |
344 NS_TEST_EXPECT_MSG_EQ (st.GetNDroppedPackets (PieQueueDisc::FORCED_DROP), 0, "
There should be zero forced drops"); | 343 NS_TEST_EXPECT_MSG_EQ (st.GetNDroppedPackets (PieQueueDisc::FORCED_DROP), 0, "
There should be zero forced drops"); |
345 } | 344 } |
346 | 345 |
347 void | 346 void |
348 PieQueueDiscTestCase::Enqueue (Ptr<PieQueueDisc> queue, uint32_t size, uint32_t
nPkt) | 347 PieQueueDiscTestCase::Enqueue (Ptr<PieQueueDisc> queue, uint32_t size, uint32_t
nPkt) |
349 { | 348 { |
350 Address dest; | 349 Address dest; |
351 for (uint32_t i = 0; i < nPkt; i++) | 350 for (uint32_t i = 0; i < nPkt; i++) |
352 { | 351 { |
353 queue->Enqueue (Create<PieQueueDiscTestItem> (Create<Packet> (size), dest,
(uint16_t)0)); | 352 queue->Enqueue (Create<PieQueueDiscTestItem> (Create<Packet> (size), dest)
); |
354 } | 353 } |
355 } | 354 } |
356 | 355 |
357 void | 356 void |
358 PieQueueDiscTestCase::EnqueueWithDelay (Ptr<PieQueueDisc> queue, uint32_t size,
uint32_t nPkt) | 357 PieQueueDiscTestCase::EnqueueWithDelay (Ptr<PieQueueDisc> queue, uint32_t size,
uint32_t nPkt) |
359 { | 358 { |
360 Address dest; | 359 Address dest; |
361 double delay = 0.01; // enqueue packets with delay | 360 double delay = 0.01; // enqueue packets with delay |
362 for (uint32_t i = 0; i < nPkt; i++) | 361 for (uint32_t i = 0; i < nPkt; i++) |
363 { | 362 { |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
399 */ | 398 */ |
400 static class PieQueueDiscTestSuite : public TestSuite | 399 static class PieQueueDiscTestSuite : public TestSuite |
401 { | 400 { |
402 public: | 401 public: |
403 PieQueueDiscTestSuite () | 402 PieQueueDiscTestSuite () |
404 : TestSuite ("pie-queue-disc", UNIT) | 403 : TestSuite ("pie-queue-disc", UNIT) |
405 { | 404 { |
406 AddTestCase (new PieQueueDiscTestCase (), TestCase::QUICK); | 405 AddTestCase (new PieQueueDiscTestCase (), TestCase::QUICK); |
407 } | 406 } |
408 } g_pieQueueTestSuite; ///< the test suite | 407 } g_pieQueueTestSuite; ///< the test suite |
LEFT | RIGHT |