"total-pds")),
pool->getCapacity());
- const std::string& name_nas =
+ const std::string& name_pds =
StatsMgr::generateName("subnet", subnet_id,
StatsMgr::generateName("pd-pool", pool->getID(),
"cumulative-assigned-pds"));
- if (!stats_mgr.getObservation(name_nas)) {
- stats_mgr.setValue(name_nas, static_cast<int64_t>(0));
+ if (!stats_mgr.getObservation(name_pds)) {
+ stats_mgr.setValue(name_pds, static_cast<int64_t>(0));
}
}
}
// Sort pools by first address.
std::sort(pools_writable.begin(), pools_writable.end(),
comparePoolFirstAddress);
-
- uint64_t index = 0;
- for (const auto& pool : pools_writable) {
- pool->setID(index);
- index++;
- }
}
void
// Assigned addresses should still be zero.
EXPECT_TRUE(testStatistics("assigned-addresses", 0, subnet_->getID()));
- EXPECT_EQ(cumulative,
- getStatistics("cumulative-assigned-addresses", subnet_->getID()));
- EXPECT_EQ(glbl_cumulative, getStatistics("cumulative-assigned-addresses"));
+ EXPECT_TRUE(testStatistics("cumulative-assigned-addresses",
+ cumulative, subnet_->getID()));
+ EXPECT_TRUE(testStatistics("cumulative-assigned-addresses", glbl_cumulative));
}
// This test checks if the allocation with a hint that is valid (in range,
// Check that the stats declined stats were not modified
EXPECT_TRUE(testStatistics("assigned-addresses", 0, subnet_->getID()));
- EXPECT_EQ(cumulative,
- getStatistics("cumulative-assigned-addresses", subnet_->getID()));
- EXPECT_EQ(glbl_cumulative, getStatistics("cumulative-assigned-addresses"));
+ EXPECT_TRUE(testStatistics("cumulative-assigned-addresses",
+ cumulative, subnet_->getID()));
+ EXPECT_TRUE(testStatistics("cumulative-assigned-addresses", glbl_cumulative));
EXPECT_TRUE(testStatistics("declined-addresses", 0));
EXPECT_TRUE(testStatistics("reclaimed-declined-addresses", 0));
EXPECT_TRUE(testStatistics("declined-addresses", 0, subnet_->getID()));
ObservationPtr stat = StatsMgr::instance().getObservation(name);
ASSERT_TRUE(stat);
EXPECT_EQ(100, stat->getInteger().first);
- EXPECT_EQ(cumulative,
- getStatistics("cumulative-assigned-addresses", subnet_->getID()));
- EXPECT_EQ(glbl_cumulative, getStatistics("cumulative-assigned-addresses"));
+ EXPECT_TRUE(testStatistics("cumulative-assigned-addresses",
+ cumulative, subnet_->getID()));
+ EXPECT_TRUE(testStatistics("cumulative-assigned-addresses", glbl_cumulative));
}
// This test checks that the allocated-addresses statistic is decreased when
// We should not have bumped the assigned counter.
EXPECT_TRUE(testStatistics("assigned-nas", 0, subnet_->getID()));
- EXPECT_EQ(cumulative,
- getStatistics("cumulative-assigned-nas", subnet_->getID()));
- EXPECT_EQ(glbl_cumulative, getStatistics("cumulative-assigned-nas"));
+ EXPECT_TRUE(testStatistics("cumulative-assigned-nas",
+ cumulative, subnet_->getID()));
+ EXPECT_TRUE(testStatistics("cumulative-assigned-nas", glbl_cumulative));
}
// This test checks if the fake PD allocation (for SOLICIT) can succeed
// We should not have bumped the assigned counter
EXPECT_TRUE(testStatistics("assigned-pds", 0, subnet_->getID()));
- EXPECT_EQ(cumulative,
- getStatistics("cumulative-assigned-pds", subnet_->getID()));
- EXPECT_EQ(glbl_cumulative, getStatistics("cumulative-assigned-pds"));
+ EXPECT_TRUE(testStatistics("cumulative-assigned-pds",
+ cumulative, subnet_->getID()));
+ EXPECT_TRUE(testStatistics("cumulative-assigned-pds", glbl_cumulative));
}
// This test checks if the allocation with a hint that is valid (in range,
// Verify the none of relevant stats were altered.
EXPECT_TRUE(testStatistics("assigned-nas", 0, subnet_->getID()));
- EXPECT_EQ(cumulative,
- getStatistics("cumulative-assigned-nas", subnet_->getID()));
- EXPECT_EQ(glbl_cumulative, getStatistics("cumulative-assigned-nas"));
+ EXPECT_TRUE(testStatistics("cumulative-assigned-nas",
+ cumulative, subnet_->getID()));
+ EXPECT_TRUE(testStatistics("cumulative-assigned-nas", glbl_cumulative));
EXPECT_TRUE(testStatistics("reclaimed-leases", 0));
EXPECT_TRUE(testStatistics("reclaimed-leases", 0, subnet_->getID()));
}
glbl_cumulative += 1;
EXPECT_TRUE(testStatistics("cumulative-assigned-nas", glbl_cumulative));
EXPECT_TRUE(testStatistics("assigned-nas", -1, other_subnetid));
- EXPECT_EQ(other_cumulative,
- getStatistics("cumulative-assigned-nas", other_subnetid));
+ EXPECT_FALSE(testStatistics("cumulative-assigned-nas",
+ other_cumulative, other_subnetid, false));
EXPECT_TRUE(testStatistics("reclaimed-leases", 1));
EXPECT_TRUE(testStatistics("reclaimed-leases", 0, subnet_->getID()));
EXPECT_TRUE(testStatistics("reclaimed-leases", 1, other_subnetid));
// Assigned count should not have been incremented.
EXPECT_TRUE(testStatistics("assigned-nas", 0, subnet_->getID()));
- EXPECT_EQ(cumulative,
- getStatistics("cumulative-assigned-nas", subnet_->getID()));
- EXPECT_EQ(glbl_cumulative, getStatistics("cumulative-assigned-nas"));
+ EXPECT_TRUE(testStatistics("cumulative-assigned-nas",
+ cumulative, subnet_->getID()));
+ EXPECT_TRUE(testStatistics("cumulative-assigned-nas", glbl_cumulative));
}
// Checks that a client gets the address reserved (in-pool case)
// Assigned count should not have been incremented.
EXPECT_TRUE(testStatistics("assigned-nas", 0, subnet_->getID()));
- EXPECT_EQ(cumulative,
- getStatistics("cumulative-assigned-nas", subnet_->getID()));
- EXPECT_EQ(glbl_cumulative, getStatistics("cumulative-assigned-nas"));
+ EXPECT_TRUE(testStatistics("cumulative-assigned-nas",
+ cumulative, subnet_->getID()));
+ EXPECT_TRUE(testStatistics("cumulative-assigned-nas", glbl_cumulative));
}
// Checks that a client gets the address reserved (in-pool case)
// Assigned count should not have been incremented.
EXPECT_TRUE(testStatistics("assigned-nas", 0, subnet_->getID()));
- EXPECT_EQ(cumulative,
- getStatistics("cumulative-assigned-nas", subnet_->getID()));
- EXPECT_EQ(glbl_cumulative, getStatistics("cumulative-assigned-nas"));
+ EXPECT_TRUE(testStatistics("cumulative-assigned-nas",
+ cumulative, subnet_->getID()));
+ EXPECT_TRUE(testStatistics("cumulative-assigned-nas", glbl_cumulative));
}
// Checks that a client gets the address reserved (out-of-pool case)
// We should not have bumped the address counter
EXPECT_TRUE(testStatistics("assigned-nas", 0, subnet_->getID()));
- EXPECT_EQ(cumulative,
- getStatistics("cumulative-assigned-nas", subnet_->getID()));
- EXPECT_EQ(glbl_cumulative, getStatistics("cumulative-assigned-nas"));
+ EXPECT_TRUE(testStatistics("cumulative-assigned-nas",
+ cumulative, subnet_->getID()));
+ EXPECT_TRUE(testStatistics("cumulative-assigned-nas", glbl_cumulative));
}
// Checks that a client gets the address reserved (in-pool case)
// We should not have bumped the address counter
EXPECT_TRUE(testStatistics("assigned-nas", 0, subnet_->getID()));
- EXPECT_EQ(cumulative,
- getStatistics("cumulative-assigned-nas", subnet_->getID()));
- EXPECT_EQ(glbl_cumulative, getStatistics("cumulative-assigned-nas"));
+ EXPECT_TRUE(testStatistics("cumulative-assigned-nas",
+ cumulative, subnet_->getID()));
+ EXPECT_TRUE(testStatistics("cumulative-assigned-nas", glbl_cumulative));
}
// Checks that a client gets the address reserved (out-of-pool case)
// We should not have bumped the address counter
EXPECT_TRUE(testStatistics("assigned-nas", 0, subnet_->getID()));
- EXPECT_EQ(cumulative,
- getStatistics("cumulative-assigned-nas", subnet_->getID()));
- EXPECT_EQ(glbl_cumulative, getStatistics("cumulative-assigned-nas"));
+ EXPECT_TRUE(testStatistics("cumulative-assigned-nas",
+ cumulative, subnet_->getID()));
+ EXPECT_TRUE(testStatistics("cumulative-assigned-nas", glbl_cumulative));
}
// Checks that a client gets the address reserved (out-of-pool case)
// We should not have bumped the address counter
EXPECT_TRUE(testStatistics("assigned-nas", 0, subnet_->getID()));
- EXPECT_EQ(cumulative,
- getStatistics("cumulative-assigned-nas", subnet_->getID()));
- EXPECT_EQ(glbl_cumulative, getStatistics("cumulative-assigned-nas"));
+ EXPECT_TRUE(testStatistics("cumulative-assigned-nas",
+ cumulative, subnet_->getID()));
+ EXPECT_TRUE(testStatistics("cumulative-assigned-nas", glbl_cumulative));
}
// Checks that a client gets the address reserved (out-of-pool case)
// We should not have bumped the address counter
EXPECT_TRUE(testStatistics("assigned-nas", 0, subnet_->getID()));
- EXPECT_EQ(cumulative,
- getStatistics("cumulative-assigned-nas", subnet_->getID()));
- EXPECT_EQ(glbl_cumulative, getStatistics("cumulative-assigned-nas"));
+ EXPECT_TRUE(testStatistics("cumulative-assigned-nas",
+ cumulative, subnet_->getID()));
+ EXPECT_TRUE(testStatistics("cumulative-assigned-nas", glbl_cumulative));
}
// In the following situation:
// Check that the stats were not modified
EXPECT_TRUE(testStatistics("assigned-nas", 0, subnet_->getID()));
- EXPECT_EQ(cumulative,
- getStatistics("cumulative-assigned-nas", subnet_->getID()));
- EXPECT_EQ(glbl_cumulative, getStatistics("cumulative-assigned-nas"));
+ EXPECT_TRUE(testStatistics("cumulative-assigned-nas",
+ cumulative, subnet_->getID()));
+ EXPECT_TRUE(testStatistics("cumulative-assigned-nas", glbl_cumulative));
EXPECT_TRUE(testStatistics("declined-addresses", 0));
EXPECT_TRUE(testStatistics("reclaimed-declined-addresses", 0));
EXPECT_TRUE(testStatistics("declined-addresses", 0, subnet_->getID()));
// Addresses (DHCPDECLINE support) (v4) or Duplicate Addresses (DECLINE
// support) sections in the User's Guide or a comment in
// Dhcpv4Srv::declineLease or Dhcpv6Srv::declineLease.
- testStatistics("subnet[1]." + stat_name, 1000 - subnet1_cnt);
- testStatistics("subnet[2]." + stat_name, 2000 - subnet2_cnt);
+ testStatistics(stat_name, 1000 - subnet1_cnt, 1);
+ testStatistics(stat_name, 2000 - subnet2_cnt, 2);
- testStatistics("subnet[1].declined-addresses", 100 - subnet1_cnt);
- testStatistics("subnet[2].declined-addresses", 200 - subnet2_cnt);
+ testStatistics("declined-addresses", 100 - subnet1_cnt, 1);
+ testStatistics("declined-addresses", 200 - subnet2_cnt, 2);
// subnet[X].reclaimed-declined-addresses should go up in each subnet
- testStatistics("subnet[1].reclaimed-declined-addresses", 10000 + subnet1_cnt);
- testStatistics("subnet[2].reclaimed-declined-addresses", 20000 + subnet1_cnt);
+ testStatistics("reclaimed-declined-addresses", 10000 + subnet1_cnt, 1);
+ testStatistics("reclaimed-declined-addresses", 20000 + subnet1_cnt, 2);
}
/// @brief Collection of leases created at construction time.
EXPECT_TRUE(testStatistics("reclaimed-leases", i));
// Make sure that the number of reclaimed leases is also distributed
// across two subnets.
- EXPECT_TRUE(testStatistics("subnet[1].reclaimed-leases", i / 2));
- EXPECT_TRUE(testStatistics("subnet[2].reclaimed-leases", i / 2));
+ EXPECT_TRUE(testStatistics("reclaimed-leases", i / 2, 1));
+ EXPECT_TRUE(testStatistics("reclaimed-leases", i / 2, 2));
// Number of assigned leases should decrease as we reclaim them.
- EXPECT_TRUE(testStatistics("subnet[1].assigned-nas",
- (TEST_LEASES_NUM - i) / 2));
- EXPECT_TRUE(testStatistics("subnet[2].assigned-pds",
- (TEST_LEASES_NUM - i) / 2));
+ EXPECT_TRUE(testStatistics("assigned-nas",
+ (TEST_LEASES_NUM - i) / 2, 1));
+ EXPECT_TRUE(testStatistics("assigned-pds",
+ (TEST_LEASES_NUM - i) / 2, 2));
}
}
EXPECT_TRUE(testStatistics("reclaimed-leases", i));
// Make sure that the number of reclaimed leases is also distributed
// across two subnets.
- EXPECT_TRUE(testStatistics("subnet[1].reclaimed-leases", i / 2));
- EXPECT_TRUE(testStatistics("subnet[2].reclaimed-leases", i / 2));
+ EXPECT_TRUE(testStatistics("reclaimed-leases", i / 2, 1));
+ EXPECT_TRUE(testStatistics("reclaimed-leases", i / 2, 2));
// Number of assigned leases should decrease as we reclaim them.
- EXPECT_TRUE(testStatistics("subnet[1].assigned-addresses",
- (TEST_LEASES_NUM - i) / 2));
- EXPECT_TRUE(testStatistics("subnet[2].assigned-addresses",
- (TEST_LEASES_NUM - i) / 2));
+ EXPECT_TRUE(testStatistics("assigned-addresses",
+ (TEST_LEASES_NUM - i) / 2, 1));
+ EXPECT_TRUE(testStatistics("assigned-addresses",
+ (TEST_LEASES_NUM - i) / 2, 2));
}
}
namespace test {
bool testStatistics(const std::string& stat_name, const int64_t exp_value,
- const SubnetID subnet_id) {
+ const SubnetID subnet_id, bool fail_missing) {
try {
std::string name = (subnet_id == SUBNET_ID_UNUSED ? stat_name :
StatsMgr::generateName("subnet", subnet_id, stat_name));
}
return (observation->getInteger().first == exp_value);
} else {
- ADD_FAILURE() << "Expected statistic " << name
- << " not found.";
+ if (fail_missing) {
+ ADD_FAILURE() << "Expected statistic " << name
+ << " not found.";
+ } else {
+ if (exp_value) {
+ ADD_FAILURE() << "Checking non existent statistic and expected value is not 0. Broken test?";
+ }
+ }
+ }
+ if (subnet_id != SUBNET_ID_UNUSED) {
+ name = StatsMgr::generateName("subnet", subnet_id, StatsMgr::generateName("pool", 0, stat_name));
+ observation = StatsMgr::instance().getObservation(name);
+ if (observation) {
+ if (observation->getInteger().first != exp_value) {
+ ADD_FAILURE()
+ << "value of the observed statistics '"
+ << name << "' ("
+ << observation->getInteger().first << ") "
+ << "doesn't match expected value (" << exp_value << ")";
+ }
+ return (observation->getInteger().first == exp_value);
+ } else {
+ if (fail_missing) {
+ ADD_FAILURE() << "Expected statistic " << name
+ << " not found.";
+ } else {
+ if (exp_value) {
+ ADD_FAILURE() << "Checking non existent statistic and expected value is not 0. Broken test?";
+ }
+ }
+ }
}
-
} catch (...) {
;
}
/// @param stat_name Statistic name.
/// @param exp_value Expected value.
/// @param subnet_id subnet_id of the desired subnet, if not zero
+/// @param fail_missing flag which indicate if test should fail if the statistic
+/// does not exist, or simply ignore it.
///
/// @return true if the statistic manager holds a particular value,
/// false otherwise.
bool testStatistics(const std::string& stat_name,
const int64_t exp_value,
- const SubnetID subnet_id = SUBNET_ID_UNUSED);
+ const SubnetID subnet_id = SUBNET_ID_UNUSED,
+ bool fail_missing = true);
/// @brief Get a value held by statistic manager.
///
// Create subnet.
Subnet4Ptr subnet(new Subnet4(IOAddress("192.0.2.0"), 26, 1, 2, 3, 100));
+ Pool4Ptr pool(new Pool4(IOAddress("192.0.2.0"), 26));
+ subnet->addPool(pool);
+
// Add subnet.
cfg->add(subnet);
"total-addresses"));
ASSERT_FALSE(observation);
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "total-addresses")));
+ ASSERT_FALSE(observation);
+
observation = StatsMgr::instance().getObservation(
StatsMgr::generateName("subnet", subnet_id,
"assigned-addresses"));
ASSERT_FALSE(observation);
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "assigned-addresses")));
+ ASSERT_FALSE(observation);
+
observation = StatsMgr::instance().getObservation(
StatsMgr::generateName("subnet", subnet_id,
"cumulative-assigned-addresses"));
ASSERT_FALSE(observation);
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "cumulative-assigned-addresses")));
+ ASSERT_FALSE(observation);
+
observation = StatsMgr::instance().getObservation(
StatsMgr::generateName("subnet", subnet_id,
"declined-addresses"));
ASSERT_FALSE(observation);
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "declined-addresses")));
+ ASSERT_FALSE(observation);
+
observation = StatsMgr::instance().getObservation(
StatsMgr::generateName("subnet", subnet_id,
"reclaimed-declined-addresses"));
ASSERT_FALSE(observation);
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "reclaimed-declined-addresses")));
+ ASSERT_FALSE(observation);
+
observation = StatsMgr::instance().getObservation(
StatsMgr::generateName("subnet", subnet_id,
"reclaimed-leases"));
ASSERT_FALSE(observation);
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "reclaimed-leases")));
+ ASSERT_FALSE(observation);
+
cfg->updateStatistics();
observation = StatsMgr::instance().getObservation(
StatsMgr::generateName("subnet", subnet_id,
"total-addresses"));
ASSERT_TRUE(observation);
- ASSERT_EQ(0, observation->getInteger().first);
+ ASSERT_EQ(64, observation->getInteger().first);
+
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "total-addresses")));
+ ASSERT_TRUE(observation);
+ ASSERT_EQ(64, observation->getInteger().first);
observation = StatsMgr::instance().getObservation(
StatsMgr::generateName("subnet", subnet_id,
ASSERT_TRUE(observation);
ASSERT_EQ(0, observation->getInteger().first);
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "assigned-addresses")));
+ ASSERT_TRUE(observation);
+ ASSERT_EQ(0, observation->getInteger().first);
+
observation = StatsMgr::instance().getObservation(
StatsMgr::generateName("subnet", subnet_id,
"cumulative-assigned-addresses"));
ASSERT_TRUE(observation);
ASSERT_EQ(0, observation->getInteger().first);
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "cumulative-assigned-addresses")));
+ ASSERT_TRUE(observation);
+ ASSERT_EQ(0, observation->getInteger().first);
+
observation = StatsMgr::instance().getObservation(
StatsMgr::generateName("subnet", subnet_id,
"declined-addresses"));
ASSERT_TRUE(observation);
ASSERT_EQ(0, observation->getInteger().first);
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "declined-addresses")));
+ ASSERT_TRUE(observation);
+ ASSERT_EQ(0, observation->getInteger().first);
+
observation = StatsMgr::instance().getObservation(
StatsMgr::generateName("subnet", subnet_id,
"reclaimed-declined-addresses"));
ASSERT_TRUE(observation);
ASSERT_EQ(0, observation->getInteger().first);
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "reclaimed-declined-addresses")));
+ ASSERT_TRUE(observation);
+ ASSERT_EQ(0, observation->getInteger().first);
+
observation = StatsMgr::instance().getObservation(
StatsMgr::generateName("subnet", subnet_id,
"reclaimed-leases"));
ASSERT_TRUE(observation);
ASSERT_EQ(0, observation->getInteger().first);
+
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "reclaimed-leases")));
+ ASSERT_TRUE(observation);
+ ASSERT_EQ(0, observation->getInteger().first);
}
// This test verifies that remove statistics works as expected.
// Create subnet.
Subnet4Ptr subnet(new Subnet4(IOAddress("192.0.2.0"), 26, 1, 2, 3, 100));
+ Pool4Ptr pool(new Pool4(IOAddress("192.0.2.0"), 26));
+ subnet->addPool(pool);
+
// Add subnet.
cfg.add(subnet);
ASSERT_TRUE(observation);
ASSERT_EQ(0, observation->getInteger().first);
+ StatsMgr::instance().setValue(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "total-addresses")),
+ int64_t(0));
+
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "total-addresses")));
+ ASSERT_TRUE(observation);
+ ASSERT_EQ(0, observation->getInteger().first);
+
StatsMgr::instance().setValue(
StatsMgr::generateName("subnet", subnet_id,
"assigned-addresses"),
ASSERT_TRUE(observation);
ASSERT_EQ(0, observation->getInteger().first);
+ StatsMgr::instance().setValue(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "assigned-addresses")),
+ int64_t(0));
+
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "assigned-addresses")));
+ ASSERT_TRUE(observation);
+ ASSERT_EQ(0, observation->getInteger().first);
+
StatsMgr::instance().setValue(
StatsMgr::generateName("subnet", subnet_id,
"cumulative-assigned-addresses"),
ASSERT_TRUE(observation);
ASSERT_EQ(0, observation->getInteger().first);
+ StatsMgr::instance().setValue(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "cumulative-assigned-addresses")),
+ int64_t(0));
+
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "cumulative-assigned-addresses")));
+ ASSERT_TRUE(observation);
+ ASSERT_EQ(0, observation->getInteger().first);
+
StatsMgr::instance().setValue(
StatsMgr::generateName("subnet", subnet_id,
"declined-addresses"),
ASSERT_TRUE(observation);
ASSERT_EQ(0, observation->getInteger().first);
+ StatsMgr::instance().setValue(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "declined-addresses")),
+ int64_t(0));
+
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "declined-addresses")));
+ ASSERT_TRUE(observation);
+ ASSERT_EQ(0, observation->getInteger().first);
+
StatsMgr::instance().setValue(
StatsMgr::generateName("subnet", subnet_id,
"reclaimed-declined-addresses"),
ASSERT_TRUE(observation);
ASSERT_EQ(0, observation->getInteger().first);
+ StatsMgr::instance().setValue(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "reclaimed-declined-addresses")),
+ int64_t(0));
+
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "reclaimed-declined-addresses")));
+ ASSERT_TRUE(observation);
+ ASSERT_EQ(0, observation->getInteger().first);
+
StatsMgr::instance().setValue(
StatsMgr::generateName("subnet", subnet_id,
"reclaimed-leases"),
ASSERT_TRUE(observation);
ASSERT_EQ(0, observation->getInteger().first);
+ StatsMgr::instance().setValue(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "reclaimed-leases")),
+ int64_t(0));
+
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "reclaimed-leases")));
+ ASSERT_TRUE(observation);
+ ASSERT_EQ(0, observation->getInteger().first);
+
// remove all statistics
cfg.removeStatistics();
"total-addresses"));
ASSERT_FALSE(observation);
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "total-addresses")));
+ ASSERT_FALSE(observation);
+
observation = StatsMgr::instance().getObservation(
StatsMgr::generateName("subnet", subnet_id,
"assigned-addresses"));
ASSERT_FALSE(observation);
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "assigned-addresses")));
+ ASSERT_FALSE(observation);
+
observation = StatsMgr::instance().getObservation(
StatsMgr::generateName("subnet", subnet_id,
"cumulative-assigned-addresses"));
ASSERT_FALSE(observation);
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "cumulative-assigned-addresses")));
+ ASSERT_FALSE(observation);
+
observation = StatsMgr::instance().getObservation(
StatsMgr::generateName("subnet", subnet_id,
"declined-addresses"));
ASSERT_FALSE(observation);
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "declined-addresses")));
+ ASSERT_FALSE(observation);
+
observation = StatsMgr::instance().getObservation(
StatsMgr::generateName("subnet", subnet_id,
"reclaimed-declined-addresses"));
ASSERT_FALSE(observation);
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "reclaimed-declined-addresses")));
+ ASSERT_FALSE(observation);
+
observation = StatsMgr::instance().getObservation(
StatsMgr::generateName("subnet", subnet_id,
"reclaimed-leases"));
ASSERT_FALSE(observation);
+
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "reclaimed-leases")));
+ ASSERT_FALSE(observation);
}
// This test verifies that in range host reservation works as expected.
// Create subnet.
Subnet6Ptr subnet(new Subnet6(IOAddress("2001:db8:1::"), 48, 1, 2, 3, 4, 100));
+ Pool6Ptr pool(new Pool6(Lease::TYPE_NA, IOAddress("2001:db8:1::"), IOAddress("2001:db8:1::FF")));
+ subnet->addPool(pool);
+
+ pool.reset(new Pool6(Lease::TYPE_PD, IOAddress("3001:1:2::"), 96, 112));
+ subnet->addPool(pool);
+
// Add subnet.
cfg->add(subnet);
"total-nas"));
ASSERT_FALSE(observation);
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "total-nas")));
+ ASSERT_FALSE(observation);
+
observation = StatsMgr::instance().getObservation(
StatsMgr::generateName("subnet", subnet_id,
"total-pds"));
ASSERT_FALSE(observation);
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pd-pool", 0, "total-pds")));
+ ASSERT_FALSE(observation);
+
observation = StatsMgr::instance().getObservation(
StatsMgr::generateName("subnet", subnet_id,
"assigned-nas"));
ASSERT_FALSE(observation);
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "assigned-nas")));
+ ASSERT_FALSE(observation);
+
observation = StatsMgr::instance().getObservation(
StatsMgr::generateName("subnet", subnet_id,
"assigned-pds"));
ASSERT_FALSE(observation);
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pd-pool", 0, "assigned-pds")));
+ ASSERT_FALSE(observation);
+
observation = StatsMgr::instance().getObservation(
StatsMgr::generateName("subnet", subnet_id,
"cumulative-assigned-nas"));
ASSERT_FALSE(observation);
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "cumulative-assigned-nas")));
+ ASSERT_FALSE(observation);
+
observation = StatsMgr::instance().getObservation(
StatsMgr::generateName("subnet", subnet_id,
"cumulative-assigned-pds"));
ASSERT_FALSE(observation);
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pd-pool", 0, "cumulative-assigned-pds")));
+ ASSERT_FALSE(observation);
+
observation = StatsMgr::instance().getObservation(
StatsMgr::generateName("subnet", subnet_id,
"declined-addresses"));
ASSERT_FALSE(observation);
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "declined-addresses")));
+ ASSERT_FALSE(observation);
+
observation = StatsMgr::instance().getObservation(
StatsMgr::generateName("subnet", subnet_id,
"reclaimed-declined-addresses"));
ASSERT_FALSE(observation);
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "reclaimed-declined-addresses")));
+ ASSERT_FALSE(observation);
+
observation = StatsMgr::instance().getObservation(
StatsMgr::generateName("subnet", subnet_id,
"reclaimed-leases"));
ASSERT_FALSE(observation);
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "reclaimed-leases")));
+ ASSERT_FALSE(observation);
+
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pd-pool", 0, "reclaimed-leases")));
+ ASSERT_FALSE(observation);
+
cfg->updateStatistics();
observation = StatsMgr::instance().getObservation(
StatsMgr::generateName("subnet", subnet_id,
"total-nas"));
ASSERT_TRUE(observation);
- ASSERT_EQ(0, observation->getBigInteger().first);
+ ASSERT_EQ(256, observation->getBigInteger().first);
+
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "total-nas")));
+ ASSERT_TRUE(observation);
+ ASSERT_EQ(256, observation->getBigInteger().first);
observation = StatsMgr::instance().getObservation(
StatsMgr::generateName("subnet", subnet_id,
"total-pds"));
ASSERT_TRUE(observation);
- ASSERT_EQ(0, observation->getBigInteger().first);
+ ASSERT_EQ(65536, observation->getBigInteger().first);
+
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pd-pool", 0, "total-pds")));
+ ASSERT_TRUE(observation);
+ ASSERT_EQ(65536, observation->getBigInteger().first);
observation = StatsMgr::instance().getObservation(
StatsMgr::generateName("subnet", subnet_id,
ASSERT_TRUE(observation);
ASSERT_EQ(0, observation->getInteger().first);
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "assigned-nas")));
+ ASSERT_TRUE(observation);
+ ASSERT_EQ(0, observation->getInteger().first);
+
observation = StatsMgr::instance().getObservation(
StatsMgr::generateName("subnet", subnet_id,
"assigned-pds"));
ASSERT_TRUE(observation);
ASSERT_EQ(0, observation->getInteger().first);
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pd-pool", 0, "assigned-pds")));
+ ASSERT_TRUE(observation);
+ ASSERT_EQ(0, observation->getInteger().first);
+
observation = StatsMgr::instance().getObservation(
StatsMgr::generateName("subnet", subnet_id,
"cumulative-assigned-nas"));
ASSERT_TRUE(observation);
ASSERT_EQ(0, observation->getInteger().first);
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "cumulative-assigned-nas")));
+ ASSERT_TRUE(observation);
+ ASSERT_EQ(0, observation->getInteger().first);
+
observation = StatsMgr::instance().getObservation(
StatsMgr::generateName("subnet", subnet_id,
"cumulative-assigned-pds"));
ASSERT_TRUE(observation);
ASSERT_EQ(0, observation->getInteger().first);
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pd-pool", 0, "cumulative-assigned-pds")));
+ ASSERT_TRUE(observation);
+ ASSERT_EQ(0, observation->getInteger().first);
+
observation = StatsMgr::instance().getObservation(
StatsMgr::generateName("subnet", subnet_id,
"declined-addresses"));
ASSERT_TRUE(observation);
ASSERT_EQ(0, observation->getInteger().first);
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "declined-addresses")));
+ ASSERT_TRUE(observation);
+ ASSERT_EQ(0, observation->getInteger().first);
+
observation = StatsMgr::instance().getObservation(
StatsMgr::generateName("subnet", subnet_id,
"reclaimed-declined-addresses"));
ASSERT_TRUE(observation);
ASSERT_EQ(0, observation->getInteger().first);
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "reclaimed-declined-addresses")));
+ ASSERT_TRUE(observation);
+ ASSERT_EQ(0, observation->getInteger().first);
+
observation = StatsMgr::instance().getObservation(
StatsMgr::generateName("subnet", subnet_id,
"reclaimed-leases"));
ASSERT_TRUE(observation);
ASSERT_EQ(0, observation->getInteger().first);
+
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "reclaimed-leases")));
+ ASSERT_TRUE(observation);
+ ASSERT_EQ(0, observation->getInteger().first);
+
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pd-pool", 0, "reclaimed-leases")));
+ ASSERT_TRUE(observation);
+ ASSERT_EQ(0, observation->getInteger().first);
}
// This test verifies that remove statistics works as expected.
// Create subnet.
Subnet6Ptr subnet(new Subnet6(IOAddress("2001:db8:1::"), 48, 1, 2, 3, 4, 100));
+ Pool6Ptr pool(new Pool6(Lease::TYPE_NA, IOAddress("2001:db8:1::"), IOAddress("2001:db8:1::FF")));
+ subnet->addPool(pool);
+
+ pool.reset(new Pool6(Lease::TYPE_PD, IOAddress("3001:1:2::"), 96, 112));
+ subnet->addPool(pool);
+
// Add subnet.
cfg.add(subnet);
ASSERT_TRUE(observation);
ASSERT_EQ(0, observation->getBigInteger().first);
+ StatsMgr::instance().setValue(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "total-nas")),
+ int128_t(0));
+
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "total-nas")));
+ ASSERT_TRUE(observation);
+ ASSERT_EQ(0, observation->getBigInteger().first);
+
StatsMgr::instance().setValue(
StatsMgr::generateName("subnet", subnet_id,
"total-pds"),
ASSERT_TRUE(observation);
ASSERT_EQ(0, observation->getBigInteger().first);
+ StatsMgr::instance().setValue(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pd-pool", 0, "total-pds")),
+ int128_t(0));
+
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pd-pool", 0, "total-pds")));
+ ASSERT_TRUE(observation);
+ ASSERT_EQ(0, observation->getBigInteger().first);
+
StatsMgr::instance().setValue(
StatsMgr::generateName("subnet", subnet_id,
"assigned-nas"),
ASSERT_TRUE(observation);
ASSERT_EQ(0, observation->getInteger().first);
+ StatsMgr::instance().setValue(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "assigned-nas")),
+ int64_t(0));
+
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "assigned-nas")));
+ ASSERT_TRUE(observation);
+ ASSERT_EQ(0, observation->getInteger().first);
+
StatsMgr::instance().setValue(
StatsMgr::generateName("subnet", subnet_id,
"assigned-pds"),
ASSERT_TRUE(observation);
ASSERT_EQ(0, observation->getInteger().first);
+ StatsMgr::instance().setValue(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pd-pool", 0, "assigned-pds")),
+ int64_t(0));
+
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pd-pool", 0, "assigned-pds")));
+ ASSERT_TRUE(observation);
+ ASSERT_EQ(0, observation->getInteger().first);
+
StatsMgr::instance().setValue(
StatsMgr::generateName("subnet", subnet_id,
"cumulative-assigned-nas"),
ASSERT_TRUE(observation);
ASSERT_EQ(0, observation->getInteger().first);
+ StatsMgr::instance().setValue(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "cumulative-assigned-nas")),
+ int64_t(0));
+
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "cumulative-assigned-nas")));
+ ASSERT_TRUE(observation);
+ ASSERT_EQ(0, observation->getInteger().first);
+
StatsMgr::instance().setValue(
StatsMgr::generateName("subnet", subnet_id,
"cumulative-assigned-pds"),
ASSERT_TRUE(observation);
ASSERT_EQ(0, observation->getInteger().first);
+ StatsMgr::instance().setValue(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pd-pool", 0, "cumulative-assigned-pds")),
+ int64_t(0));
+
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pd-pool", 0, "cumulative-assigned-pds")));
+ ASSERT_TRUE(observation);
+ ASSERT_EQ(0, observation->getInteger().first);
+
StatsMgr::instance().setValue(
StatsMgr::generateName("subnet", subnet_id,
"declined-addresses"),
ASSERT_TRUE(observation);
ASSERT_EQ(0, observation->getInteger().first);
+ StatsMgr::instance().setValue(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "declined-addresses")),
+ int64_t(0));
+
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "declined-addresses")));
+ ASSERT_TRUE(observation);
+ ASSERT_EQ(0, observation->getInteger().first);
+
StatsMgr::instance().setValue(
StatsMgr::generateName("subnet", subnet_id,
"reclaimed-declined-addresses"),
ASSERT_TRUE(observation);
ASSERT_EQ(0, observation->getInteger().first);
+ StatsMgr::instance().setValue(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "reclaimed-declined-addresses")),
+ int64_t(0));
+
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "reclaimed-declined-addresses")));
+ ASSERT_TRUE(observation);
+ ASSERT_EQ(0, observation->getInteger().first);
+
StatsMgr::instance().setValue(
StatsMgr::generateName("subnet", subnet_id,
"reclaimed-leases"),
ASSERT_TRUE(observation);
ASSERT_EQ(0, observation->getInteger().first);
+ StatsMgr::instance().setValue(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "reclaimed-leases")),
+ int64_t(0));
+
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "reclaimed-leases")));
+ ASSERT_TRUE(observation);
+ ASSERT_EQ(0, observation->getInteger().first);
+
+ StatsMgr::instance().setValue(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pd-pool", 0, "reclaimed-leases")),
+ int64_t(0));
+
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pd-pool", 0, "reclaimed-leases")));
+ ASSERT_TRUE(observation);
+ ASSERT_EQ(0, observation->getInteger().first);
+
// remove all statistics
cfg.removeStatistics();
"total-nas"));
ASSERT_FALSE(observation);
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "total-nas")));
+ ASSERT_FALSE(observation);
+
observation = StatsMgr::instance().getObservation(
StatsMgr::generateName("subnet", subnet_id,
"total-pds"));
ASSERT_FALSE(observation);
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pd-pool", 0, "total-pds")));
+ ASSERT_FALSE(observation);
+
observation = StatsMgr::instance().getObservation(
StatsMgr::generateName("subnet", subnet_id,
"assigned-nas"));
ASSERT_FALSE(observation);
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "assigned-nas")));
+ ASSERT_FALSE(observation);
+
observation = StatsMgr::instance().getObservation(
StatsMgr::generateName("subnet", subnet_id,
"assigned-pds"));
ASSERT_FALSE(observation);
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pd-pool", 0, "assigned-pds")));
+ ASSERT_FALSE(observation);
+
observation = StatsMgr::instance().getObservation(
StatsMgr::generateName("subnet", subnet_id,
"cumulative-assigned-nas"));
ASSERT_FALSE(observation);
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "cumulative-assigned-nas")));
+ ASSERT_FALSE(observation);
+
observation = StatsMgr::instance().getObservation(
StatsMgr::generateName("subnet", subnet_id,
"cumulative-assigned-pds"));
ASSERT_FALSE(observation);
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pd-pool", 0, "cumulative-assigned-pds")));
+ ASSERT_FALSE(observation);
+
observation = StatsMgr::instance().getObservation(
StatsMgr::generateName("subnet", subnet_id,
"declined-addresses"));
ASSERT_FALSE(observation);
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "declined-addresses")));
+ ASSERT_FALSE(observation);
+
observation = StatsMgr::instance().getObservation(
StatsMgr::generateName("subnet", subnet_id,
"reclaimed-declined-addresses"));
ASSERT_FALSE(observation);
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "reclaimed-declined-addresses")));
+ ASSERT_FALSE(observation);
+
observation = StatsMgr::instance().getObservation(
StatsMgr::generateName("subnet", subnet_id,
"reclaimed-leases"));
ASSERT_FALSE(observation);
+
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pool", 0, "reclaimed-leases")));
+ ASSERT_FALSE(observation);
+
+ observation = StatsMgr::instance().getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ StatsMgr::generateName("pd-pool", 0, "reclaimed-leases")));
+ ASSERT_FALSE(observation);
}
// This test verifies that in range host reservation works as expected.
detailCompareLease(leases[3], l_returned);
}
-
void
GenericLeaseMgrTest::testBasicLease6() {
// Get the leases to be used for the test.
for (int subnet_idx = 0; subnet_idx < expectedStats.size(); ++subnet_idx) {
BOOST_FOREACH(StatValPair expectedStat, expectedStats[subnet_idx]) {
// Verify the per subnet value.
- checkStat(stats::StatsMgr::generateName("subnet", subnet_idx+1,
+ checkStat(stats::StatsMgr::generateName("subnet", subnet_idx + 1,
expectedStat.first),
- expectedStat.second);
+ expectedStat.second.value_);
+
+ if (expectedStat.second.check_pool_) {
+ if (expectedStat.first.find("pd") != string::npos) {
+ checkStat(stats::StatsMgr::generateName("subnet", subnet_idx + 1,
+ stats::StatsMgr::generateName("pd-pool", 0,
+ expectedStat.first)),
+ expectedStat.second.value_);
+ } else {
+ checkStat(stats::StatsMgr::generateName("subnet", subnet_idx + 1,
+ stats::StatsMgr::generateName("pool", 0,
+ expectedStat.first)),
+ expectedStat.second.value_);
+ }
+ } else {
+ string name;
+ if (expectedStat.first.find("pd") != string::npos) {
+ name = stats::StatsMgr::generateName("subnet", subnet_idx + 1,
+ stats::StatsMgr::generateName("pd-pool", 0,
+ expectedStat.first));
+ } else {
+ name = stats::StatsMgr::generateName("subnet", subnet_idx + 1,
+ stats::StatsMgr::generateName("pool", 0,
+ expectedStat.first));
+ }
+ ObservationPtr const obs(stats::StatsMgr::instance().getObservation(name));
+ ASSERT_FALSE(obs) << "stat " << name << " should not be present";
+ }
// Add the value to globals as needed.
if (expectedStat.first == "declined-addresses") {
- declined_addresses += expectedStat.second;
+ declined_addresses += expectedStat.second.value_;
} else if (expectedStat.first == "reclaimed-declined-addresses") {
- reclaimed_declined_addresses += expectedStat.second;
+ reclaimed_declined_addresses += expectedStat.second.value_;
}
}
}
subnet->addPool(pool);
cfg->add(subnet);
-
ASSERT_NO_THROW(CfgMgr::instance().commit());
// Create the expected stats list. At this point, the only stat
for (int i = 0; i < num_subnets; ++i) {
expectedStats[i]["total-addresses"] = 256;
expectedStats[i]["assigned-addresses"] = 0;
+ expectedStats[i]["cumulative-assigned-addresses"] = 0;
expectedStats[i]["declined-addresses"] = 0;
expectedStats[i]["reclaimed-declined-addresses"] = 0;
expectedStats[i]["reclaimed-leases"] = 0;
cfg->add(subnet);
ASSERT_NO_THROW(CfgMgr::instance().commit());
-
-
// Create the expected stats list. At this point, the only stat
// that should be non-zero is total-nas/total-pds.
for (int i = 0; i < num_subnets; ++i) {
expectedStats[i]["assigned-nas"] = 0;
+ expectedStats[i]["cumulative-assigned-nas"] = 0;
expectedStats[i]["declined-addresses"] = 0;
expectedStats[i]["reclaimed-declined-addresses"] = 0;
- expectedStats[i]["assigned-pds"] = 0;
expectedStats[i]["reclaimed-leases"] = 0;
+ expectedStats[i]["assigned-pds"] = 0;
+ expectedStats[i]["cumulative-assigned-pds"] = 0;
}
+ // Stats should not be present because the subnet has no PD pool.
+ expectedStats[subnet_id - 1]["total-pds"].check_pool_ = false;
+ expectedStats[subnet_id - 1]["assigned-pds"].check_pool_ = false;
+ expectedStats[subnet_id - 1]["cumulative-assigned-pds"].check_pool_ = false;
+
// Make sure stats are as expected.
ASSERT_NO_FATAL_FAILURE(checkLeaseStats(expectedStats));
-
// Recount stats. We should have the same results.
ASSERT_NO_THROW(lmptr_->recountLeaseStats6());
checkQueryAgainstRowSet(query, expected_rows);
}
-
// Now let's insert some leases into subnet 1.
// Three assigned NAs.
// Two declined NAs.
namespace test {
/// @brief typedefs to simplify lease statistic testing
-typedef std::map<std::string, int64_t> StatValMap;
-typedef std::pair<std::string, int64_t> StatValPair;
+struct SubnetPoolVal {
+ int64_t value_;
+ bool check_pool_;
+ SubnetPoolVal() : value_(0), check_pool_(true) {
+ };
+ SubnetPoolVal(int64_t value) : value_(value), check_pool_(true) {
+ };
+ SubnetPoolVal(int64_t value, bool check) : value_(value), check_pool_(check) {
+ };
+};
+typedef std::map<std::string, SubnetPoolVal> StatValMap;
+typedef std::pair<std::string, SubnetPoolVal> StatValPair;
typedef std::vector<StatValMap> StatValMapList;
typedef std::set<LeaseStatsRow> RowSet;