--- a/src/internet/test/codel-queue-test-suite.cc Fri Aug 08 08:28:24 2014 -0500
+++ b/src/internet/test/codel-queue-test-suite.cc Fri Aug 08 16:55:07 2014 -0500
@@ -40,6 +40,7 @@
private:
void Enqueue (Ptr<CoDelQueue> queue, uint32_t size, uint32_t nPkt);
void FirstDequeue (Ptr<CoDelQueue> queue, uint32_t modeSize, Ptr<Packet> p1);
+ void SecondDequeue (Ptr<CoDelQueue> queue, uint32_t modeSize, Ptr<Packet> p2);
void RunCoDelTest (StringValue mode);
};
@@ -179,16 +180,23 @@
}
queue->Enqueue (p1);
+ NS_TEST_EXPECT_MSG_EQ (queue->GetQueueSize (), 1 * modeSize, "There should be 1 packet in there.");
queue->Enqueue (p2);
+ NS_TEST_EXPECT_MSG_EQ (queue->GetQueueSize (), 2 * modeSize, "There should be 2 packets in there.");
queue->Enqueue (p3);
+ NS_TEST_EXPECT_MSG_EQ (queue->GetQueueSize (), 3 * modeSize, "There should be 3 packets in there.");
queue->Enqueue (p4);
+ NS_TEST_EXPECT_MSG_EQ (queue->GetQueueSize (), 4 * modeSize, "There should be 4 packets in there.");
queue->Enqueue (p5);
+ NS_TEST_EXPECT_MSG_EQ (queue->GetQueueSize (), 5 * modeSize, "There should be 5 packets in there.");
queue->Enqueue (p6);
-
- Time waitUntilDequeue = 2 * queue->GetTarget ();
+ NS_TEST_EXPECT_MSG_EQ (queue->GetQueueSize (), 6 * modeSize, "There should be 6 packets in there.");
- Simulator::Schedule (waitUntilDequeue, &CoDelQueueTestCase::FirstDequeue, this, queue, modeSize, p1);
-
+ Time waitUntilFirstDequeue = 2 * queue->GetTarget ();
+ Simulator::Schedule (waitUntilFirstDequeue, &CoDelQueueTestCase::FirstDequeue, this, queue, modeSize, p1);
+
+ Time waitUntilSecondDequeue = waitUntilFirstDequeue + 2 * queue->GetInterval ();
+ Simulator::Schedule (waitUntilSecondDequeue, &CoDelQueueTestCase::SecondDequeue, this, queue, modeSize, p1);
//TODO: test CoDel while in dropping state
}
@@ -207,11 +215,20 @@
Ptr<Packet> p = queue->Dequeue ();
NS_TEST_EXPECT_MSG_EQ ((p != 0), true, "The first packet should be removed");
NS_TEST_EXPECT_MSG_EQ (queue->GetQueueSize (), 5 * modeSize, "There should be five packets in there");
- NS_TEST_EXPECT_MSG_EQ (p->GetUid (), p1->GetUid (), "was this the first packet ?");
+ NS_TEST_EXPECT_MSG_EQ (p->GetUid (), p1->GetUid (), "Was this the first packet?");
NS_TEST_EXPECT_MSG_EQ (queue->GetDropCount (), 0, "There should be no packet drops");
}
+void
+CoDelQueueTestCase::SecondDequeue (Ptr<CoDelQueue> queue, uint32_t modeSize, Ptr<Packet> p2)
+{
+ Ptr<Packet> p = queue->Dequeue ();
+ NS_TEST_EXPECT_MSG_EQ ((p != 0), true, "The second packet should be removed");
+ NS_TEST_EXPECT_MSG_EQ (queue->GetQueueSize (), 4 * modeSize, "There should be four packets in there");
+ //NS_TEST_EXPECT_MSG_EQ (p->GetUid (), p2->GetUid (), "Was this the second packet?");
+}
+
void
CoDelQueueTestCase::DoRun (void)
{