summaryrefslogtreecommitdiff
path: root/cpp/src/tests/Address.cpp
diff options
context:
space:
mode:
authorJonathan Robie <jonathan@apache.org>2010-09-16 14:52:37 +0000
committerJonathan Robie <jonathan@apache.org>2010-09-16 14:52:37 +0000
commita15b7ff7ba6e7ccd85bdd0042dd7ea65d6840e99 (patch)
treea5b1321053b4b2bb92023de1a78eb3fdb473f4ca /cpp/src/tests/Address.cpp
parent01fda72abf335c795df091ae6ea6a0b3a22ec72f (diff)
downloadqpid-python-a15b7ff7ba6e7ccd85bdd0042dd7ea65d6840e99.tar.gz
Fixes parsing problem with empty lists ('[]') in addresses, which previously raised an exception and leaked the memory associated with the AddressImpl.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@997771 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/tests/Address.cpp')
-rw-r--r--cpp/src/tests/Address.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/cpp/src/tests/Address.cpp b/cpp/src/tests/Address.cpp
index a0b87e25af..32d14bb4b8 100644
--- a/cpp/src/tests/Address.cpp
+++ b/cpp/src/tests/Address.cpp
@@ -87,6 +87,24 @@ QPID_AUTO_TEST_CASE(testParseOptionsWithList)
BOOST_CHECK_EQUAL((uint16_t) 101, address.getOptions()["x"].asInt64());
}
+QPID_AUTO_TEST_CASE(testParseOptionsWithEmptyList)
+{
+ Address address("my-topic; {a:[], x:101}");
+ BOOST_CHECK_EQUAL(std::string("my-topic"), address.getName());
+ Variant::List& list = address.getOptions()["a"].asList();
+ BOOST_CHECK_EQUAL(list.size(), 0);
+ BOOST_CHECK_EQUAL((uint16_t) 101, address.getOptions()["x"].asInt64());
+}
+
+QPID_AUTO_TEST_CASE(testParseOptionsWithEmptyMap)
+{
+ Address address("my-topic; {a:{}, x:101}");
+ BOOST_CHECK_EQUAL(std::string("my-topic"), address.getName());
+ Variant::Map& map = address.getOptions()["a"].asMap();
+ BOOST_CHECK_EQUAL(map.size(), 0);
+ BOOST_CHECK_EQUAL((uint16_t) 101, address.getOptions()["x"].asInt64());
+}
+
QPID_AUTO_TEST_CASE(testParseQuotedNameAndSubject)
{
Address address("'my topic with / in it'/'my subject with ; in it'");