table: add CS policy interface
Change-Id: I1946fe03ca00150b1ff9f08acae48c01bc569904 Refs: #1207
This commit is contained in:
1 parent
5620fb2ac9
commit
cb6e05f2dd
11 files changed
+797
-273
No files matched your search
@@ -330,107 +330,6 @@ BOOST_AUTO_TEST_CASE(CachingPolicyNoCache)
|
||||
bind([] { BOOST_CHECK(true); }));
|
||||
}
|
||||
|
||||
BOOST_FIXTURE_TEST_CASE(Evict, UnitTestTimeFixture)
|
||||
{
|
||||
Cs cs(3);
|
||||
|
||||
shared_ptr<Data> dataA = makeData("ndn:/A");
|
||||
dataA->setFreshnessPeriod(time::milliseconds(99999));
|
||||
dataA->wireEncode();
|
||||
cs.insert(*dataA);
|
||||
|
||||
shared_ptr<Data> dataB = makeData("ndn:/B");
|
||||
dataB->setFreshnessPeriod(time::milliseconds(10));
|
||||
dataB->wireEncode();
|
||||
cs.insert(*dataB);
|
||||
|
||||
shared_ptr<Data> dataC = makeData("ndn:/C");
|
||||
dataC->setFreshnessPeriod(time::milliseconds(99999));
|
||||
dataC->wireEncode();
|
||||
cs.insert(*dataC, true);
|
||||
|
||||
this->advanceClocks(time::milliseconds(11));
|
||||
|
||||
// evict unsolicited
|
||||
shared_ptr<Data> dataD = makeData("ndn:/D");
|
||||
dataD->setFreshnessPeriod(time::milliseconds(99999));
|
||||
dataD->wireEncode();
|
||||
cs.insert(*dataD);
|
||||
BOOST_CHECK_EQUAL(cs.size(), 3);
|
||||
cs.find(Interest("ndn:/C"),
|
||||
bind([] { BOOST_CHECK(false); }),
|
||||
bind([] { BOOST_CHECK(true); }));
|
||||
|
||||
// evict stale
|
||||
shared_ptr<Data> dataE = makeData("ndn:/E");
|
||||
dataE->setFreshnessPeriod(time::milliseconds(99999));
|
||||
dataE->wireEncode();
|
||||
cs.insert(*dataE);
|
||||
BOOST_CHECK_EQUAL(cs.size(), 3);
|
||||
cs.find(Interest("ndn:/B"),
|
||||
bind([] { BOOST_CHECK(false); }),
|
||||
bind([] { BOOST_CHECK(true); }));
|
||||
|
||||
// evict fifo
|
||||
shared_ptr<Data> dataF = makeData("ndn:/F");
|
||||
dataF->setFreshnessPeriod(time::milliseconds(99999));
|
||||
dataF->wireEncode();
|
||||
cs.insert(*dataF);
|
||||
BOOST_CHECK_EQUAL(cs.size(), 3);
|
||||
cs.find(Interest("ndn:/A"),
|
||||
bind([] { BOOST_CHECK(false); }),
|
||||
bind([] { BOOST_CHECK(true); }));
|
||||
}
|
||||
|
||||
BOOST_FIXTURE_TEST_CASE(Refresh, UnitTestTimeFixture)
|
||||
{
|
||||
Cs cs(3);
|
||||
|
||||
shared_ptr<Data> dataA = makeData("ndn:/A");
|
||||
dataA->setFreshnessPeriod(time::milliseconds(99999));
|
||||
dataA->wireEncode();
|
||||
cs.insert(*dataA);
|
||||
|
||||
shared_ptr<Data> dataB = makeData("ndn:/B");
|
||||
dataB->setFreshnessPeriod(time::milliseconds(10));
|
||||
dataB->wireEncode();
|
||||
cs.insert(*dataB);
|
||||
|
||||
shared_ptr<Data> dataC = makeData("ndn:/C");
|
||||
dataC->setFreshnessPeriod(time::milliseconds(10));
|
||||
dataC->wireEncode();
|
||||
cs.insert(*dataC);
|
||||
|
||||
this->advanceClocks(time::milliseconds(11));
|
||||
|
||||
// refresh dataB
|
||||
shared_ptr<Data> dataB2 = make_shared<Data>(*dataB);
|
||||
dataB2->wireEncode();
|
||||
cs.insert(*dataB2);
|
||||
BOOST_CHECK_EQUAL(cs.size(), 3);
|
||||
cs.find(Interest("ndn:/A"),
|
||||
bind([] { BOOST_CHECK(true); }),
|
||||
bind([] { BOOST_CHECK(false); }));
|
||||
|
||||
cs.find(Interest("ndn:/B"),
|
||||
bind([] { BOOST_CHECK(true); }),
|
||||
bind([] { BOOST_CHECK(false); }));
|
||||
|
||||
cs.find(Interest("ndn:/C"),
|
||||
bind([] { BOOST_CHECK(true); }),
|
||||
bind([] { BOOST_CHECK(false); }));
|
||||
|
||||
// evict dataC stale
|
||||
shared_ptr<Data> dataD = makeData("ndn:/D");
|
||||
dataD->setFreshnessPeriod(time::milliseconds(99999));
|
||||
dataD->wireEncode();
|
||||
cs.insert(*dataD);
|
||||
BOOST_CHECK_EQUAL(cs.size(), 3);
|
||||
cs.find(Interest("ndn:/C"),
|
||||
bind([] { BOOST_CHECK(false); }),
|
||||
bind([] { BOOST_CHECK(true); }));
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(Enumeration)
|
||||
{
|
||||
Cs cs;
|
||||
|
||||
Reference in new issue
Block a user