]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#2834] Adding UTs for relayed v6 opts
authorPiotrek Zadroga <piotrek@isc.org>
Tue, 23 May 2023 11:05:09 +0000 (13:05 +0200)
committerPiotrek Zadroga <piotrek@isc.org>
Fri, 26 May 2023 13:20:31 +0000 (15:20 +0200)
src/bin/perfdhcp/tests/command_options_unittest.cc

index 1d063de209dfcfd768d41ecafd547802f8845ddf..7f5eb271eabfab06021df2aef835a2d69b1e221f 100644 (file)
@@ -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);
 }