]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#3140] Finished lease query
authorFrancis Dupont <fdupont@isc.org>
Fri, 17 Oct 2025 08:23:29 +0000 (10:23 +0200)
committerFrancis Dupont <fdupont@isc.org>
Wed, 5 Nov 2025 21:46:19 +0000 (22:46 +0100)
src/hooks/dhcp/lease_query/tests/lease_query_impl4_unittest.cc
src/hooks/dhcp/lease_query/tests/lease_query_impl6_unittest.cc

index c1e36daaa9ed09da7c2e8f13b7d50ff2987a4aa7..7aec48155b25cc51f5bd5608fd947000494a2244 100644 (file)
@@ -644,6 +644,9 @@ TEST(LeaseQueryImpl4Test, processQueryInvalidQuery) {
     EXPECT_FALSE(invalid);
     EXPECT_FALSE(sending);
 
+    // Set the pkt4-rfc-violation stat to 0.
+    StatsMgr::instance().setValue("pkt4-rfc-violation", static_cast<int64_t>(0));
+
     // An empty giaddr should fail.
     Pkt4Ptr lq(new Pkt4(DHCPLEASEQUERY, 123));
     invalid = false;
@@ -653,6 +656,12 @@ TEST(LeaseQueryImpl4Test, processQueryInvalidQuery) {
     EXPECT_TRUE(invalid);
     EXPECT_FALSE(sending);
 
+    // Check the pkt4-rfc-violation stat which was bumped by one.
+    ObservationPtr stat_rv =
+        StatsMgr::instance().getObservation("pkt4-rfc-violation");
+    ASSERT_TRUE(stat_rv);
+    EXPECT_EQ(1, stat_rv->getInteger().first);
+
     // Set the pkt4-admin-filtered stat to 0.
     StatsMgr::instance().setValue("pkt4-admin-filtered", static_cast<int64_t>(0));
 
@@ -665,10 +674,11 @@ TEST(LeaseQueryImpl4Test, processQueryInvalidQuery) {
     EXPECT_TRUE(invalid);
     EXPECT_FALSE(sending);
 
-    // Check the stat which was bumped by one.
-    ObservationPtr stat = StatsMgr::instance().getObservation("pkt4-admin-filtered");
-    ASSERT_TRUE(stat);
-    EXPECT_EQ(1, stat->getInteger().first);
+    // Check the pkt4-admin-filtered stat which was bumped by one.
+    ObservationPtr stat_af =
+        StatsMgr::instance().getObservation("pkt4-admin-filtered");
+    ASSERT_TRUE(stat_af);
+    EXPECT_EQ(1, stat_af->getInteger().first);
 
     // Now we'll iterate over all invalid combinations of ciaddr, HWAddr, client id.
     struct Scenario {
index dc8b1361059b9b64733d30319506dd2304a70502..28503f31c9165654788c3177687d4c5ded2f7cd6 100644 (file)
@@ -688,6 +688,9 @@ TEST_F(MemfileLeaseQueryImpl6ProcessTest, processQueryInvalidQuery) {
     EXPECT_FALSE(invalid);
     EXPECT_FALSE(sending);
 
+    // Set the pkt6-rfc-violation stat to 0.
+    StatsMgr::instance().setValue("pkt6-rfc-violation", static_cast<int64_t>(0));
+
     // No client-id option should fail.
     Pkt6Ptr lq(new Pkt6(DHCPV6_LEASEQUERY_REPLY, 123));
     invalid = false;
@@ -697,6 +700,14 @@ TEST_F(MemfileLeaseQueryImpl6ProcessTest, processQueryInvalidQuery) {
     EXPECT_TRUE(invalid);
     EXPECT_FALSE(sending);
 
+    // Check the pkt6-rfc-violation stat which was bumped by one.
+    ObservationPtr stat_rv = StatsMgr::instance().getObservation("pkt6-rfc-violation");
+    ASSERT_TRUE(stat_rv);
+    EXPECT_EQ(1, stat_rv->getInteger().first);
+
+    // Set the pkt6-not-for-us stat to 0.
+    StatsMgr::instance().setValue("pkt6-not-for-us", static_cast<int64_t>(0));
+
     // Add a client-id option.
     lq->addOption(makeClientIdOption(std::vector<uint8_t>{ 01, 02, 03, 04, 05, 06}));
 
@@ -710,6 +721,11 @@ TEST_F(MemfileLeaseQueryImpl6ProcessTest, processQueryInvalidQuery) {
     EXPECT_TRUE(invalid);
     EXPECT_FALSE(sending);
 
+    // Check the pkt6-not-for-us stat which was bumped by one.
+    ObservationPtr stat_nfu = StatsMgr::instance().getObservation("pkt6-not-for-us");
+    ASSERT_TRUE(stat_nfu);
+    EXPECT_EQ(1, stat_nfu->getInteger().first);
+
     // Add a matching server id.
     lq->delOption(D6O_SERVERID);
     lq->addOption(makeServerIdOption(server_id_->getDuid()));
@@ -736,10 +752,10 @@ TEST_F(MemfileLeaseQueryImpl6ProcessTest, processQueryInvalidQuery) {
     EXPECT_TRUE(invalid);
     EXPECT_FALSE(sending);
 
-    // Check the stat which was bumped by one.
-    ObservationPtr stat = StatsMgr::instance().getObservation("pkt6-admin-filtered");
-    ASSERT_TRUE(stat);
-    EXPECT_EQ(1, stat->getInteger().first);
+    // Check the pkt6-admin-filtered stat which was bumped by one.
+    ObservationPtr stat_af = StatsMgr::instance().getObservation("pkt6-admin-filtered");
+    ASSERT_TRUE(stat_af);
+    EXPECT_EQ(1, stat_af->getInteger().first);
 
     // Set source address to a known requester address.
     lq->setRemoteAddr(IOAddress("2001:db8:2::1"));