From: Francis Dupont Date: Fri, 17 Oct 2025 08:23:29 +0000 (+0200) Subject: [#3140] Finished lease query X-Git-Tag: Kea-3.1.4~63 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6a3a5d70c992586c4daf6e07c00e49266ac3a238;p=thirdparty%2Fkea.git [#3140] Finished lease query --- diff --git a/src/hooks/dhcp/lease_query/tests/lease_query_impl4_unittest.cc b/src/hooks/dhcp/lease_query/tests/lease_query_impl4_unittest.cc index c1e36daaa9..7aec48155b 100644 --- a/src/hooks/dhcp/lease_query/tests/lease_query_impl4_unittest.cc +++ b/src/hooks/dhcp/lease_query/tests/lease_query_impl4_unittest.cc @@ -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(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(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 { diff --git a/src/hooks/dhcp/lease_query/tests/lease_query_impl6_unittest.cc b/src/hooks/dhcp/lease_query/tests/lease_query_impl6_unittest.cc index dc8b136105..28503f31c9 100644 --- a/src/hooks/dhcp/lease_query/tests/lease_query_impl6_unittest.cc +++ b/src/hooks/dhcp/lease_query/tests/lease_query_impl6_unittest.cc @@ -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(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(0)); + // Add a client-id option. lq->addOption(makeClientIdOption(std::vector{ 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"));