From 21898ce55f8b40ebff0c984adaec9ba6c1ac2ab7 Mon Sep 17 00:00:00 2001 From: Piotrek Zadroga Date: Tue, 23 May 2023 13:58:49 +0200 Subject: [PATCH] [#2834] Adding UTs for relayed v6 opts --- .../perfdhcp/tests/test_control_unittest.cc | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/bin/perfdhcp/tests/test_control_unittest.cc b/src/bin/perfdhcp/tests/test_control_unittest.cc index c3650698f6..7e54cd748f 100644 --- a/src/bin/perfdhcp/tests/test_control_unittest.cc +++ b/src/bin/perfdhcp/tests/test_control_unittest.cc @@ -1498,6 +1498,33 @@ TEST_F(TestControlTest, Packet6Relayed) { EXPECT_EQ(pkt6->relay_info_[0].peeraddr_, tc.socket_.addr_); } +TEST_F(TestControlTest, Packet6RelayedWithRelayOpts) { + CommandOptions opt; + processCmdLine(opt, "perfdhcp -6 -l fake -A1 --o1r 32,00000E10 -L 10547 servers"); + NakedTestControl tc(opt); + uint32_t transid = 123; + boost::shared_ptr pkt6(new Pkt6(DHCPV6_SOLICIT, transid)); + // Set packet's parameters. + tc.setDefaults6(pkt6); + // Validate if parameters have been set correctly. + EXPECT_EQ(tc.fake_sock_.iface_->getName(), pkt6->getIface()); + EXPECT_EQ(tc.socket_.ifindex_, pkt6->getIndex()); + EXPECT_EQ(DHCP6_CLIENT_PORT, pkt6->getLocalPort()); + EXPECT_EQ(DHCP6_SERVER_PORT, pkt6->getRemotePort()); + EXPECT_EQ(tc.socket_.addr_, pkt6->getLocalAddr()); + EXPECT_EQ(asiolink::IOAddress("FF05::1:3"), pkt6->getRemoteAddr()); + // Packet should be relayed. + EXPECT_EQ(pkt6->relay_info_.size(), 1); + EXPECT_EQ(pkt6->relay_info_[0].hop_count_, 0); + EXPECT_EQ(pkt6->relay_info_[0].msg_type_, DHCPV6_RELAY_FORW); + EXPECT_EQ(pkt6->relay_info_[0].linkaddr_, tc.socket_.addr_); + EXPECT_EQ(pkt6->relay_info_[0].peeraddr_, tc.socket_.addr_); + // Checking if relayed option is there. + OptionBuffer opt_data = pkt6->relay_info_[0].options_.find(32)->second->getData(); + EXPECT_EQ(4, opt_data.size()); + EXPECT_EQ("0x00000E10", pkt6->relay_info_[0].options_.find(32)->second->toHexString()); +} + TEST_F(TestControlTest, Packet4Exchange) { const int iterations_num = 100; CommandOptions opt; -- 2.47.2