diff options
author | Gordon Sim <gsim@apache.org> | 2007-10-04 16:06:05 +0000 |
---|---|---|
committer | Gordon Sim <gsim@apache.org> | 2007-10-04 16:06:05 +0000 |
commit | 03f1df9ff7894a6d910120c82bba49e6193178ee (patch) | |
tree | e27792701ea80e1aa83d1c5730da71502374d25d /cpp/src/tests/AccumulatedAckTest.cpp | |
parent | c848c1a4e6be50176f10170c6422c5e4d5385770 (diff) | |
download | qpid-python-03f1df9ff7894a6d910120c82bba49e6193178ee.tar.gz |
Additional tests and fixes
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@581957 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/tests/AccumulatedAckTest.cpp')
-rw-r--r-- | cpp/src/tests/AccumulatedAckTest.cpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/cpp/src/tests/AccumulatedAckTest.cpp b/cpp/src/tests/AccumulatedAckTest.cpp index 62245e463b..cbe44e6814 100644 --- a/cpp/src/tests/AccumulatedAckTest.cpp +++ b/cpp/src/tests/AccumulatedAckTest.cpp @@ -32,6 +32,7 @@ class AccumulatedAckTest : public CppUnit::TestCase CPPUNIT_TEST_SUITE(AccumulatedAckTest); CPPUNIT_TEST(testGeneral); CPPUNIT_TEST(testCovers); + CPPUNIT_TEST(testUpdateFromCompletionData); CPPUNIT_TEST(testCase1); CPPUNIT_TEST(testCase2); CPPUNIT_TEST(testCase3); @@ -39,6 +40,7 @@ class AccumulatedAckTest : public CppUnit::TestCase CPPUNIT_TEST(testConsolidation1); CPPUNIT_TEST(testConsolidation2); CPPUNIT_TEST(testConsolidation3); + CPPUNIT_TEST(testConsolidation4); CPPUNIT_TEST_SUITE_END(); public: @@ -97,6 +99,25 @@ public: CPPUNIT_ASSERT(!covers(ack, 10)); } + void testUpdateFromCompletionData() + { + AccumulatedAck ack(0); + SequenceNumber mark(2); + SequenceNumberSet ranges; + ranges.addRange(SequenceNumber(5), SequenceNumber(8)); + ranges.addRange(SequenceNumber(10), SequenceNumber(15)); + ranges.addRange(SequenceNumber(9), SequenceNumber(9)); + ranges.addRange(SequenceNumber(3), SequenceNumber(4)); + + ack.update(mark, ranges); + + for(int i = 0; i <= 15; i++) { + CPPUNIT_ASSERT(covers(ack, i)); + } + CPPUNIT_ASSERT(!covers(ack, 16)); + CPPUNIT_ASSERT_EQUAL((uint32_t) 15, ack.mark.getValue()); + } + void testCase1() { AccumulatedAck ack(3); @@ -205,6 +226,22 @@ public: CPPUNIT_ASSERT_EQUAL((size_t) 0, ack.ranges.size()); } + void testConsolidation4() + { + AccumulatedAck ack(0); + ack.update(SequenceNumber(0), SequenceNumber(2)); + ack.update(SequenceNumber(5), SequenceNumber(8)); + ack.update(SequenceNumber(10), SequenceNumber(15)); + ack.update(SequenceNumber(9), SequenceNumber(9)); + ack.update(SequenceNumber(3), SequenceNumber(4)); + + for(int i = 0; i <= 15; i++) { + CPPUNIT_ASSERT(covers(ack, i)); + } + CPPUNIT_ASSERT(!covers(ack, 16)); + CPPUNIT_ASSERT_EQUAL((uint32_t) 15, ack.mark.getValue()); + } + }; // Make this test suite a plugin. |