From: Piotrek Zadroga Date: Tue, 23 May 2023 11:05:09 +0000 (+0200) Subject: [#2834] Adding UTs for relayed v6 opts X-Git-Tag: Kea-2.3.8~23 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a930ed01d805547f7b649742e719c3cb8440051d;p=thirdparty%2Fkea.git [#2834] Adding UTs for relayed v6 opts --- diff --git a/src/bin/perfdhcp/tests/command_options_unittest.cc b/src/bin/perfdhcp/tests/command_options_unittest.cc index 1d063de209..7f5eb271ea 100644 --- a/src/bin/perfdhcp/tests/command_options_unittest.cc +++ b/src/bin/perfdhcp/tests/command_options_unittest.cc @@ -909,6 +909,34 @@ TEST_F(CommandOptionsTest, UseRelayV6OptionsWithoutRelayEncapsulation) { EXPECT_THROW(process(opt, "perfdhcp -6 --o1r 32,00000E10 -l ethx all"), isc::InvalidParameter); } +TEST_F(CommandOptionsTest, UseMultipleRelayV6Options) { + CommandOptions opt; + EXPECT_NO_THROW(process(opt, "perfdhcp -6 -A1 --o1r 32,00000E10 --o1r " + "23,20010DB800010000000000000000CAFE -l ethx all")); + EXPECT_TRUE(opt.isUseRelayedV6()); + // 2 options expected at 1st level of encapsulation + EXPECT_EQ(2, opt.getRelayOpts().size()); + // no options expected at 2nd level of encapsulation + EXPECT_EQ(0, opt.getRelayOpts(2).size()); +} + +TEST_F(CommandOptionsTest, UseRelayV6OptionsWithMultiSubnets) { + CommandOptions opt; + std::string relay_addr_list_full_path = getFullPath("relay6-list.txt"); + std::ostringstream cmd; + cmd << "perfdhcp -6 -J " << relay_addr_list_full_path + << " -A1 --o1r 32,00000E10 --o1r 23,20010DB800010000000000000000CAFE -l ethx all"; + EXPECT_NO_THROW(process(opt, cmd.str())); + EXPECT_EQ(relay_addr_list_full_path, opt.getRelayAddrListFile()); + EXPECT_TRUE(opt.checkMultiSubnet()); + EXPECT_EQ(2, opt.getRelayAddrList().size()); + EXPECT_TRUE(opt.isUseRelayedV6()); + // 2 options expected at 1st level of encapsulation + EXPECT_EQ(2, opt.getRelayOpts().size()); + // no options expected at 2nd level of encapsulation + EXPECT_EQ(0, opt.getRelayOpts(2).size()); +} + TEST_F(CommandOptionsTest, UseRelayV6OptionsNoComma) { CommandOptions opt; @@ -927,5 +955,5 @@ TEST_F(CommandOptionsTest, UseRelayV6OptionsWrongHexstring) { CommandOptions opt; // --o1r hexstring containing char Z which is not correct - EXPECT_THROW(process(opt, "perfdhcp -6 --o1r -32,Z0000E10 -l ethx all"), isc::InvalidParameter); + EXPECT_THROW(process(opt, "perfdhcp -6 --o1r 32,Z0000E10 -l ethx all"), isc::InvalidParameter); }