table: erase NameTree entry when FIB/Measurements/StrategyChoice entry is erased
This commit also optimizes Measurements table to make use of NameTree shortcuts.
refs #1803
Change-Id: Ib0e465750ed5e8ff9ed129a926a7bc852db4e9e1
diff --git a/tests/daemon/table/measurements.cpp b/tests/daemon/table/measurements.cpp
index c2afb96..30b71c4 100644
--- a/tests/daemon/table/measurements.cpp
+++ b/tests/daemon/table/measurements.cpp
@@ -84,8 +84,8 @@
CHECK2 < EXTEND_C &&
EXTEND_C < CHECK3);
- measurements.extendLifetime(*entryA, EXTEND_A);
- measurements.extendLifetime(*entryC, EXTEND_C);
+ measurements.extendLifetime(entryA, EXTEND_A);
+ measurements.extendLifetime(entryC, EXTEND_C);
// remaining lifetime:
// A = initial lifetime, because it's extended by less duration
// B = initial lifetime
@@ -115,6 +115,22 @@
BOOST_CHECK_EQUAL(measurements.size(), 0);
}
+BOOST_AUTO_TEST_CASE(EraseNameTreeEntry)
+{
+ LimitedIo limitedIo;
+ NameTree nameTree;
+ Measurements measurements(nameTree);
+ size_t nNameTreeEntriesBefore = nameTree.size();
+
+ shared_ptr<measurements::Entry> entry = measurements.get("/A");
+ BOOST_CHECK_EQUAL(
+ limitedIo.run(LimitedIo::UNLIMITED_OPS,
+ Measurements::getInitialLifetime() + time::milliseconds(10)),
+ LimitedIo::EXCEED_TIME);
+ BOOST_CHECK_EQUAL(measurements.size(), 0);
+ BOOST_CHECK_EQUAL(nameTree.size(), nNameTreeEntriesBefore);
+}
+
BOOST_AUTO_TEST_SUITE_END()
} // namespace tests