table: fix Pit::erase crash when Interest name contains implicit digest

refs #3608

Change-Id: I41e0cd327b9dcc5f2d3a83f4cebff40c2d302fc1
This commit is contained in:
spirosmastorakis authored and Junxiao Shi committed 2016-05-26 18:09:31 +00:00
1 parent e0d71b0bc0
commit ff920303df
3 files changed
+32 -1

No files matched your search

+28
View File
@@ -347,6 +347,34 @@ BOOST_AUTO_TEST_CASE(EraseNameTreeEntry)
BOOST_CHECK_EQUAL(nameTree.size(), nNameTreeEntriesBefore);
}
BOOST_AUTO_TEST_CASE(EraseWithFullName)
{
shared_ptr<Data> data = makeData("/test");
shared_ptr<Interest> interest = makeInterest(data->getFullName());
NameTree nameTree(16);
Pit pit(nameTree);
BOOST_CHECK_EQUAL(pit.size(), 0);
BOOST_CHECK_EQUAL(pit.insert(*interest).second, true);
BOOST_CHECK_EQUAL(pit.size(), 1);
BOOST_CHECK(pit.find(*interest) != nullptr);
BOOST_CHECK_EQUAL(pit.insert(*interest).second, false);
BOOST_CHECK_EQUAL(pit.size(), 1);
shared_ptr<pit::Entry> pitEntry = pit.find(*interest);
BOOST_REQUIRE(pitEntry != nullptr);
pit.erase(pitEntry);
BOOST_CHECK_EQUAL(pit.size(), 0);
BOOST_CHECK(pit.find(*interest) == nullptr);
BOOST_CHECK_EQUAL(pit.insert(*interest).second, true);
BOOST_CHECK_EQUAL(pit.size(), 1);
BOOST_CHECK(pit.find(*interest) != nullptr);
}
BOOST_AUTO_TEST_CASE(FindAllDataMatches)
{
Name nameA ("ndn:/A");