]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#505] added missing test
authorRazvan Becheriu <razvan@isc.org>
Thu, 20 Aug 2020 20:28:47 +0000 (23:28 +0300)
committerRazvan Becheriu <razvan@isc.org>
Fri, 21 Aug 2020 10:04:30 +0000 (10:04 +0000)
src/lib/dhcpsrv/tests/shared_network_parser_unittest.cc

index b63017c6ba6f7f112e672e261eb345f56a706fcb..ae0f7f351c0eb01f327c44b803685b932af162b0 100644 (file)
@@ -746,9 +746,11 @@ TEST_F(SharedNetwork6ParserTest, parseWithInvalidRenewRebind) {
     use_iface_id_ = true;
     std::string config = getWorkingConfig();
     ElementPtr config_element = Element::fromJSON(config);
-    ConstElementPtr valid_element = config_element->get("renew-timer");
-    ElementPtr invalid_element = boost::const_pointer_cast<Element>(valid_element);
-    invalid_element->setValue(200);
+    ConstElementPtr valid_element = config_element->get("rebind-timer");
+    int64_t value = valid_element->intValue();
+    valid_element = config_element->get("renew-timer");
+    ElementPtr mutable_element = boost::const_pointer_cast<Element>(valid_element);
+    mutable_element->setValue(value + 1);
 
     // Parse configuration specified above.
     SharedNetwork6Parser parser;
@@ -758,6 +760,29 @@ TEST_F(SharedNetwork6ParserTest, parseWithInvalidRenewRebind) {
     ASSERT_FALSE(network);
 }
 
+// This test verifies that shared network parser for IPv6 works properly
+// when renew and rebind timers are equal.
+TEST_F(SharedNetwork6ParserTest, parseValidWithEqualRenewRebind) {
+    IfaceMgrTestConfig ifmgr(true);
+
+    // Use the configuration with interface-id instead of interface parameter.
+    use_iface_id_ = true;
+    std::string config = getWorkingConfig();
+    ElementPtr config_element = Element::fromJSON(config);
+    ConstElementPtr valid_element = config_element->get("rebind-timer");
+    int64_t value = valid_element->intValue();
+    valid_element = config_element->get("renew-timer");
+    ElementPtr mutable_element = boost::const_pointer_cast<Element>(valid_element);
+    mutable_element->setValue(value);
+
+    // Parse configuration specified above.
+    SharedNetwork6Parser parser;
+    SharedNetwork6Ptr network;
+
+    ASSERT_NO_THROW(network = parser.parse(config_element));
+    ASSERT_TRUE(network);
+}
+
 // This test verifies that error is returned when trying to configure a
 // shared network with both interface and interface id.
 TEST_F(SharedNetwork6ParserTest, mutuallyExclusiveInterfaceId) {