table: drop Selectors processing from PIT
refs #4805
Change-Id: Ic15aec7f30d40485031e48e83377a621279e82f1
diff --git a/tests/daemon/table/pit.t.cpp b/tests/daemon/table/pit.t.cpp
index d5d77e9..99d23e7 100644
--- a/tests/daemon/table/pit.t.cpp
+++ b/tests/daemon/table/pit.t.cpp
@@ -29,8 +29,6 @@
#include "tests/daemon/global-io-fixture.hpp"
#include "tests/daemon/face/dummy-face.hpp"
-#include <ndn-cxx/exclude.hpp>
-
namespace nfd {
namespace pit {
namespace tests {
@@ -61,108 +59,62 @@
BOOST_AUTO_TEST_CASE(Insert)
{
- Name name1("ndn:/5vzBNnMst");
- Name name2("ndn:/igSGfEIM62");
- ndn::Exclude exclude1;
- exclude1.excludeOne(Name::Component("u26p47oep"));
- ndn::Exclude exclude2;
- exclude2.excludeBefore(Name::Component("u26p47oep"));
- ndn::KeyLocator keyLocator1("ndn:/sGAE3peMHA");
- ndn::KeyLocator keyLocator2("ndn:/nIJH6pr4");
+ Name name1("/5vzBNnMst");
+ Name name2("/igSGfEIM62");
NameTree nameTree(16);
Pit pit(nameTree);
BOOST_CHECK_EQUAL(pit.size(), 0);
- std::pair<shared_ptr<Entry>, bool> insertResult;
+
+ shared_ptr<Entry> entry;
+ bool isNew = false;
// base
- auto interestA = make_shared<Interest>(name1);
- insertResult = pit.insert(*interestA);
- BOOST_CHECK_EQUAL(insertResult.second, true);
+ auto interestA = makeInterest(name1, false, nullopt, 2148);
+ std::tie(entry, isNew) = pit.insert(*interestA);
+ BOOST_CHECK_EQUAL(isNew, true);
BOOST_CHECK_EQUAL(pit.size(), 1);
- // same as A
+ // same Interest, same PIT entry
auto interestA2 = make_shared<Interest>(*interestA);
- insertResult = pit.insert(*interestA2);
- BOOST_CHECK_EQUAL(insertResult.second, false); // sharing the same PIT entry
+ std::tie(entry, isNew) = pit.insert(*interestA2);
+ BOOST_CHECK_EQUAL(isNew, false);
BOOST_CHECK_EQUAL(pit.size(), 1);
- // A+MinSuffixComponents
+ // different CanBePrefix, different PIT entry
auto interestB = make_shared<Interest>(*interestA);
- interestB->setMinSuffixComponents(2);
- insertResult = pit.insert(*interestB);
- BOOST_CHECK_EQUAL(insertResult.second, true);
+ interestB->setCanBePrefix(true);
+ std::tie(entry, isNew) = pit.insert(*interestB);
+ BOOST_CHECK_EQUAL(isNew, true);
BOOST_CHECK_EQUAL(pit.size(), 2);
- // A+MaxSuffixComponents
+ // different MustBeFresh, different PIT entry
auto interestC = make_shared<Interest>(*interestA);
- interestC->setMaxSuffixComponents(4);
- insertResult = pit.insert(*interestC);
- BOOST_CHECK_EQUAL(insertResult.second, true);
+ interestC->setMustBeFresh(true);
+ std::tie(entry, isNew) = pit.insert(*interestC);
+ BOOST_CHECK_EQUAL(isNew, true);
BOOST_CHECK_EQUAL(pit.size(), 3);
- // A+KeyLocator1
+ // different InterestLifetime, same PIT entry
auto interestD = make_shared<Interest>(*interestA);
- interestD->setPublisherPublicKeyLocator(keyLocator1);
- insertResult = pit.insert(*interestD);
- BOOST_CHECK_EQUAL(insertResult.second, true);
- BOOST_CHECK_EQUAL(pit.size(), 4);
+ interestD->setInterestLifetime(1_s);
+ std::tie(entry, isNew) = pit.insert(*interestD);
+ BOOST_CHECK_EQUAL(isNew, false);
+ BOOST_CHECK_EQUAL(pit.size(), 3);
- // A+KeyLocator2
+ // different Nonce, same PIT entry
auto interestE = make_shared<Interest>(*interestA);
- interestE->setPublisherPublicKeyLocator(keyLocator2);
- insertResult = pit.insert(*interestE);
- BOOST_CHECK_EQUAL(insertResult.second, true);
- BOOST_CHECK_EQUAL(pit.size(), 5);
+ interestE->setNonce(2192);
+ std::tie(entry, isNew) = pit.insert(*interestE);
+ BOOST_CHECK_EQUAL(isNew, false);
+ BOOST_CHECK_EQUAL(pit.size(), 3);
- // A+Exclude1
+ // different name, different PIT entry
auto interestF = make_shared<Interest>(*interestA);
- interestF->setExclude(exclude1);
- insertResult = pit.insert(*interestF);
- BOOST_CHECK_EQUAL(insertResult.second, true);
- BOOST_CHECK_EQUAL(pit.size(), 6);
-
- // A+Exclude2
- auto interestG = make_shared<Interest>(*interestA);
- interestG->setExclude(exclude2);
- insertResult = pit.insert(*interestG);
- BOOST_CHECK_EQUAL(insertResult.second, true);
- BOOST_CHECK_EQUAL(pit.size(), 7);
-
- // A+ChildSelector1
- auto interestI = make_shared<Interest>(*interestA);
- interestI->setChildSelector(1);
- insertResult = pit.insert(*interestI);
- BOOST_CHECK_EQUAL(insertResult.second, true);
- BOOST_CHECK_EQUAL(pit.size(), 8);
-
- // A+MustBeFresh
- auto interestJ = make_shared<Interest>(*interestA);
- interestJ->setMustBeFresh(true);
- insertResult = pit.insert(*interestJ);
- BOOST_CHECK_EQUAL(insertResult.second, true);
- BOOST_CHECK_EQUAL(pit.size(), 9);
-
- // A+InterestLifetime
- auto interestK = make_shared<Interest>(*interestA);
- interestK->setInterestLifetime(1_s);
- insertResult = pit.insert(*interestK);
- BOOST_CHECK_EQUAL(insertResult.second, false); // only guiders differ
- BOOST_CHECK_EQUAL(pit.size(), 9);
-
- // A+Nonce
- auto interestL = make_shared<Interest>(*interestA);
- interestL->setNonce(2192);
- insertResult = pit.insert(*interestL);
- BOOST_CHECK_EQUAL(insertResult.second, false); // only guiders differ
- BOOST_CHECK_EQUAL(pit.size(), 9);
-
- // different Name+Exclude1
- auto interestM = make_shared<Interest>(name2);
- interestM->setExclude(exclude1);
- insertResult = pit.insert(*interestM);
- BOOST_CHECK_EQUAL(insertResult.second, true);
- BOOST_CHECK_EQUAL(pit.size(), 10);
+ interestF->setName(name2);
+ std::tie(entry, isNew) = pit.insert(*interestF);
+ BOOST_CHECK_EQUAL(isNew, true);
+ BOOST_CHECK_EQUAL(pit.size(), 4);
}
BOOST_AUTO_TEST_CASE(Erase)
@@ -172,26 +124,27 @@
NameTree nameTree(16);
Pit pit(nameTree);
- std::pair<shared_ptr<Entry>, bool> insertResult;
+ shared_ptr<Entry> entry;
+ bool isNew = false;
BOOST_CHECK_EQUAL(pit.size(), 0);
- insertResult = pit.insert(*interest);
- BOOST_CHECK_EQUAL(insertResult.second, true);
+ std::tie(entry, isNew) = pit.insert(*interest);
+ BOOST_CHECK_EQUAL(isNew, true);
BOOST_CHECK_EQUAL(pit.size(), 1);
BOOST_CHECK(pit.find(*interest) != nullptr);
- insertResult = pit.insert(*interest);
- BOOST_CHECK_EQUAL(insertResult.second, false);
+ std::tie(entry, isNew) = pit.insert(*interest);
+ BOOST_CHECK_EQUAL(isNew, false);
BOOST_CHECK_EQUAL(pit.size(), 1);
BOOST_CHECK(pit.find(*interest) != nullptr);
- pit.erase(insertResult.first.get());
+ pit.erase(entry.get());
BOOST_CHECK_EQUAL(pit.size(), 0);
BOOST_CHECK(pit.find(*interest) == nullptr);
- insertResult = pit.insert(*interest);
- BOOST_CHECK_EQUAL(insertResult.second, true);
+ std::tie(entry, isNew) = pit.insert(*interest);
+ BOOST_CHECK_EQUAL(isNew, true);
BOOST_CHECK_EQUAL(pit.size(), 1);
BOOST_CHECK(pit.find(*interest) != nullptr);
}
@@ -203,7 +156,7 @@
size_t nNameTreeEntriesBefore = nameTree.size();
auto interest = makeInterest("/37xWVvQ2K");
- shared_ptr<Entry> entry = pit.insert(*interest).first;
+ auto entry = pit.insert(*interest).first;
pit.erase(entry.get());
BOOST_CHECK_EQUAL(nameTree.size(), nNameTreeEntriesBefore);
}
@@ -238,11 +191,11 @@
BOOST_AUTO_TEST_CASE(FindAllDataMatches)
{
- Name nameA ("ndn:/A");
- Name nameAB ("ndn:/A/B");
- Name nameABC ("ndn:/A/B/C");
- Name nameABCD("ndn:/A/B/C/D");
- Name nameD ("ndn:/D");
+ Name nameA ("/A");
+ Name nameAB ("/A/B");
+ Name nameABC ("/A/B/C");
+ Name nameABCD("/A/B/C/D");
+ Name nameD ("/D");
auto interestA = makeInterest(nameA, true);
auto interestABC = makeInterest(nameABC, true);
@@ -271,7 +224,7 @@
bool hasABC = false;
bool hasD = false;
- for (const shared_ptr<Entry>& entry : matches) {
+ for (const auto& entry : matches) {
++count;
if (entry->getName().equals(nameA ))
@@ -307,7 +260,7 @@
DataMatchResult matches = pit.findAllDataMatches(*data);
BOOST_REQUIRE_EQUAL(std::distance(matches.begin(), matches.end()), 1);
- shared_ptr<Entry> found = *matches.begin();
+ auto found = *matches.begin();
BOOST_CHECK_EQUAL(found->getName(), fullName);
}
@@ -333,8 +286,8 @@
auto d3 = makeData(n3);
auto i3 = makeInterest(d3->getFullName());
- shared_ptr<Entry> entry2 = pit.insert(*i2).first;
- shared_ptr<Entry> entry3 = pit.insert(*i3).first;
+ auto entry2 = pit.insert(*i2).first;
+ auto entry3 = pit.insert(*i3).first;
BOOST_CHECK_EQUAL(pit.size(), 2);
BOOST_CHECK_EQUAL(nameTree.size(), 1 + NameTree::getMaxDepth()); // root node + max depth
@@ -354,11 +307,11 @@
NameTree nameTree(16);
Pit pit(nameTree);
- auto interestA = makeInterest("/A");
+ auto interestA = makeInterest("/A");
auto interestABC1 = makeInterest("/A/B/C");
auto interestABC2 = makeInterest("/A/B/C");
- interestABC2->setSelectors(ndn::Selectors().setMinSuffixComponents(10));
- auto interestD = makeInterest("/D");
+ interestABC2->setMustBeFresh(true);
+ auto interestD = makeInterest("/D");
BOOST_CHECK_EQUAL(pit.size(), 0);
BOOST_CHECK(pit.begin() == pit.end());
@@ -379,16 +332,13 @@
pit.insert(*interestABC2);
pit.insert(*interestD);
- std::set<const Interest*> expected = {&*interestA, &*interestABC1, &*interestABC2, &*interestD};
std::set<const Interest*> actual;
for (const auto& pitEntry : pit) {
actual.insert(&pitEntry.getInterest());
}
- BOOST_CHECK(actual == expected);
- for (auto actualIt = actual.begin(), expectedIt = expected.begin();
- actualIt != actual.end() && expectedIt != expected.end(); ++actualIt, ++expectedIt) {
- BOOST_CHECK_EQUAL(**actualIt, **expectedIt);
- }
+ std::set<const Interest*> expected = {interestA.get(), interestABC1.get(),
+ interestABC2.get(), interestD.get()};
+ BOOST_CHECK_EQUAL_COLLECTIONS(actual.begin(), actual.end(), expected.begin(), expected.end());
}
BOOST_AUTO_TEST_SUITE_END() // TestPit