From: Francis Dupont Date: Thu, 2 Jul 2026 14:31:31 +0000 (+0200) Subject: [#2598] Added VCI UTs X-Git-Tag: Kea-3.3.0~104 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=301a4d5da0bd932eac332995a40dcc31bec393ab;p=thirdparty%2Fkea.git [#2598] Added VCI UTs --- diff --git a/src/bin/dhcp4/tests/vendor_opts_unittest.cc b/src/bin/dhcp4/tests/vendor_opts_unittest.cc index 06c05febfc..fba63cf92d 100644 --- a/src/bin/dhcp4/tests/vendor_opts_unittest.cc +++ b/src/bin/dhcp4/tests/vendor_opts_unittest.cc @@ -2904,3 +2904,55 @@ TEST_F(VendorOptsTest, twoVivcos) { ASSERT_EQ(1U, opt_class5678->getTuplesNum()); EXPECT_EQ("bar", opt_class5678->getTuple(0).getText()); } + +// Tests whether a packet with custom vendor-class is classified properly. +TEST_F(VendorOptsTest, vendorClassIdClassification2) { + // Let's create a DISCOVER. + Pkt4Ptr dis = Pkt4Ptr(new Pkt4(DHCPDISCOVER, 1234)); + dis->setIface("eth0"); + dis->setIndex(ETH0_INDEX); + OptionPtr clientid = generateClientId(); + dis->addOption(clientid); + + // Now let's add a vendor-class with content "foo", + OptionStringPtr vendor_class(new OptionString(Option::V4, + DHO_VENDOR_CLASS_IDENTIFIER, + "foo")); + dis->addOption(vendor_class); + + // Now the server classifies the packet. + srv_->classifyPacket(dis); + + // The packet should now belong to VENDOR_CLASS_foo. + EXPECT_TRUE(dis->inClass(srv_->VENDOR_CLASS_PREFIX + "foo")); + + // It should not belong to "foo" + EXPECT_FALSE(dis->inClass("foo")); +} + +// Tests whether a packet with custom vendor-class with to-be-escaped +// characters is classified properly. +TEST_F(VendorOptsTest, vendorClassIdClassification3) { + // Let's create a DISCOVER. + Pkt4Ptr dis = Pkt4Ptr(new Pkt4(DHCPDISCOVER, 1234)); + dis->setIface("eth0"); + dis->setIndex(ETH0_INDEX); + OptionPtr clientid = generateClientId(); + dis->addOption(clientid); + + // Now let's add a vendor-class with content "foo", + OptionStringPtr vendor_class(new OptionString(Option::V4, + DHO_VENDOR_CLASS_IDENTIFIER, + "foo bar")); + dis->addOption(vendor_class); + + // Now the server classifies the packet. + srv_->classifyPacket(dis); + + // The packet should now belong to VENDOR_CLASS_foo. + EXPECT_TRUE(dis->inClass(srv_->VENDOR_CLASS_PREFIX + "foo%20bar")); + + // It should not belong to "foo bar" or "foo%20bar". + EXPECT_FALSE(dis->inClass("foo bar")); + EXPECT_FALSE(dis->inClass("foo%20bar")); +} diff --git a/src/bin/dhcp6/tests/classify_unittest.cc b/src/bin/dhcp6/tests/classify_unittest.cc index bb3a0f7bbd..09c7e66f5d 100644 --- a/src/bin/dhcp6/tests/classify_unittest.cc +++ b/src/bin/dhcp6/tests/classify_unittest.cc @@ -1768,7 +1768,7 @@ TEST_F(ClassifyTest, vendorClientClassification3) { // The packet should now belong to VENDOR_CLASS_foo%20bar. EXPECT_TRUE(sol->inClass(srv_->VENDOR_CLASS_PREFIX + "foo%20bar")); - // It should not belong to "foo bar" or "foo%20bar: + // It should not belong to "foo bar" or "foo%20bar". EXPECT_FALSE(sol->inClass("foo bar")); EXPECT_FALSE(sol->inClass("foo%20bar")); } diff --git a/src/hooks/dhcp/forensic_log/tests/legal_log4_unittests.cc b/src/hooks/dhcp/forensic_log/tests/legal_log4_unittests.cc index d51888045e..ccad0223d8 100644 --- a/src/hooks/dhcp/forensic_log/tests/legal_log4_unittests.cc +++ b/src/hooks/dhcp/forensic_log/tests/legal_log4_unittests.cc @@ -1759,7 +1759,7 @@ TEST_F(CalloutTestv4, customLogRenderError) { "-parser-format failed for lease 192.2.1.100 hwaddr hwtype" "=1 08:00:2b:02:3f:4e (Can not convert to valid uint32.);" " falling back to default format"; - EXPECT_EQ(1, countFile(err_text)); + EXPECT_EQ(1U, countFile(err_text)); // Verify that the default entry was generated. std::vectorlines; diff --git a/src/hooks/dhcp/forensic_log/tests/legal_log6_unittests.cc b/src/hooks/dhcp/forensic_log/tests/legal_log6_unittests.cc index 329e8b0b3d..a76d280b0d 100644 --- a/src/hooks/dhcp/forensic_log/tests/legal_log6_unittests.cc +++ b/src/hooks/dhcp/forensic_log/tests/legal_log6_unittests.cc @@ -2812,7 +2812,7 @@ TEST_F(CalloutTestv6, customLogRenderError) { "response-parser-format failed for lease 2001:db8:1::" " duid 17:34:e2:ff:09:92:54 (Can not convert to valid" " uint32.); falling back to default format"; - EXPECT_EQ(1, countFile(err_text)); + EXPECT_EQ(1U, countFile(err_text)); // Verify that the default entry was generated. std::vectorlines;