diff options
| author | Gordon Sim <gsim@apache.org> | 2007-10-02 09:54:59 +0000 |
|---|---|---|
| committer | Gordon Sim <gsim@apache.org> | 2007-10-02 09:54:59 +0000 |
| commit | 2ed6c3f489f3bf740d1641400037b644c132b75a (patch) | |
| tree | 62cfc2f5ed5c21d2823a4f6a47b20ba1ea6dc721 /cpp/src/tests | |
| parent | 5f0f7edc1f366cfd8981a29319130aa72b65efa3 (diff) | |
| download | qpid-python-2ed6c3f489f3bf740d1641400037b644c132b75a.tar.gz | |
Fixed recovery; unacked message records are now updated to hold the new command id when messages are resent.
Added unit and python test as previous bug was not being picked up by the existing tests.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@581175 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/tests')
| -rw-r--r-- | cpp/src/tests/DeliveryRecordTest.cpp | 68 | ||||
| -rw-r--r-- | cpp/src/tests/Makefile.am | 1 | ||||
| -rw-r--r-- | cpp/src/tests/TxAckTest.cpp | 2 |
3 files changed, 70 insertions, 1 deletions
diff --git a/cpp/src/tests/DeliveryRecordTest.cpp b/cpp/src/tests/DeliveryRecordTest.cpp new file mode 100644 index 0000000000..011d8bf694 --- /dev/null +++ b/cpp/src/tests/DeliveryRecordTest.cpp @@ -0,0 +1,68 @@ + +/* + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ +#include "qpid/broker/DeliveryRecord.h" +#include "qpid_test_plugin.h" +#include <iostream> +#include <memory> +#include <boost/format.hpp> + +using namespace qpid::broker; +using namespace qpid::sys; +using namespace qpid::framing; +using boost::dynamic_pointer_cast; +using std::list; + +class DeliveryRecordTest : public CppUnit::TestCase +{ + CPPUNIT_TEST_SUITE(DeliveryRecordTest); + CPPUNIT_TEST(testSort); + CPPUNIT_TEST_SUITE_END(); + +public: + + void testSort() + { + list<SequenceNumber> ids; + ids.push_back(SequenceNumber(6)); + ids.push_back(SequenceNumber(2)); + ids.push_back(SequenceNumber(4)); + ids.push_back(SequenceNumber(5)); + ids.push_back(SequenceNumber(1)); + ids.push_back(SequenceNumber(3)); + + list<DeliveryRecord> records; + for (list<SequenceNumber>::iterator i = ids.begin(); i != ids.end(); i++) { + records.push_back(DeliveryRecord(QueuedMessage(), Queue::shared_ptr(), "tag", DeliveryToken::shared_ptr(), *i, false, false)); + } + records.sort(); + + SequenceNumber expected(0); + for (list<DeliveryRecord>::iterator i = records.begin(); i != records.end(); i++) { + CPPUNIT_ASSERT(i->matches(++expected)); + } + } +}; + +// Make this test suite a plugin. +CPPUNIT_PLUGIN_IMPLEMENT(); +CPPUNIT_TEST_SUITE_REGISTRATION(DeliveryRecordTest); + diff --git a/cpp/src/tests/Makefile.am b/cpp/src/tests/Makefile.am index 9c4d5c0fd0..b8622fc925 100644 --- a/cpp/src/tests/Makefile.am +++ b/cpp/src/tests/Makefile.am @@ -86,6 +86,7 @@ perftest_LDADD=$(lib_client) broker_unit_tests = \ AccumulatedAckTest \ DtxWorkRecordTest \ + DeliveryRecordTest \ ExchangeTest \ HeadersExchangeTest \ MessageTest \ diff --git a/cpp/src/tests/TxAckTest.cpp b/cpp/src/tests/TxAckTest.cpp index 34d0bcd156..73628f25b5 100644 --- a/cpp/src/tests/TxAckTest.cpp +++ b/cpp/src/tests/TxAckTest.cpp @@ -78,7 +78,7 @@ public: messages.push_back(msg); QueuedMessage qm; qm.payload = msg; - deliveries.push_back(DeliveryRecord(qm, queue, "xyz", (i+1), true)); + deliveries.push_back(DeliveryRecord(qm, queue, "xyz", DeliveryToken::shared_ptr(), (i+1), true)); } //assume msgs 1-5, 7 and 9 are all acked (i.e. 6, 8 & 10 are not) |
