From: Francis Dupont Date: Tue, 21 May 2019 22:33:13 +0000 (+0200) Subject: [295-min-max-lease-time-configuration-options] checkpoint: finished tests, still... X-Git-Tag: Kea-1.6.0-beta2~240 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7a05fd87c6762d7f080dc1719f8cbcd003b51149;p=thirdparty%2Fkea.git [295-min-max-lease-time-configuration-options] checkpoint: finished tests, still doc to do --- diff --git a/src/hooks/dhcp/mysql_cb/tests/mysql_cb_dhcp4_unittest.cc b/src/hooks/dhcp/mysql_cb/tests/mysql_cb_dhcp4_unittest.cc index 5aac4e41e8..be09ab75d0 100644 --- a/src/hooks/dhcp/mysql_cb/tests/mysql_cb_dhcp4_unittest.cc +++ b/src/hooks/dhcp/mysql_cb/tests/mysql_cb_dhcp4_unittest.cc @@ -941,6 +941,33 @@ TEST_F(MySqlConfigBackendDHCPv4Test, getModifiedSubnets4) { ASSERT_TRUE(subnets.empty()); } +// Test that lifetimes in subnets are handled as expected. +TEST_F(MySqlConfigBackendDHCPv4Test, subnetLifetime) { + // Insert new subnet with unspecified valid lifetime + Triplet unspecified; + Subnet4Ptr subnet(new Subnet4(IOAddress("192.0.2.0"), 24, 30, 40, + unspecified, 1111)); + subnet->setIface("eth1"); + cbptr_->createUpdateSubnet4(ServerSelector::ALL(), subnet); + + // Fetch this subnet by subnet identifier + Subnet4Ptr returned_subnet = cbptr_->getSubnet4(ServerSelector::ALL(), + subnet->getID()); + ASSERT_TRUE(returned_subnet); + + // Verified returned and original subnets match. + EXPECT_EQ(subnet->toElement()->str(), returned_subnet->toElement()->str()); + + // Update the valid lifetime. + subnet->setValid( Triplet(100, 200, 300)); + cbptr_->createUpdateSubnet4(ServerSelector::ALL(), subnet); + + // Fetch and verify again. + returned_subnet = cbptr_->getSubnet4(ServerSelector::ALL(), subnet->getID()); + ASSERT_TRUE(returned_subnet); + EXPECT_EQ(subnet->toElement()->str(), returned_subnet->toElement()->str()); +} + // Test that subnets belonging to a shared network can be retrieved. TEST_F(MySqlConfigBackendDHCPv4Test, getSharedNetworkSubnets4) { // Assign test subnets to shared networks level1 and level2. @@ -1271,6 +1298,35 @@ TEST_F(MySqlConfigBackendDHCPv4Test, getModifiedSharedNetworks4) { ASSERT_TRUE(networks.empty()); } +// Test that lifetimes in shared networks are handled as expected. +TEST_F(MySqlConfigBackendDHCPv4Test, sharedNetworkLifetime) { + // Insert new shared network with unspecified valid lifetime + SharedNetwork4Ptr network(new SharedNetwork4("foo")); + Triplet unspecified; + network->setValid(unspecified); + network->setIface("eth1"); + cbptr_->createUpdateSharedNetwork4(ServerSelector::ALL(), network); + + // Fetch this shared network. + SharedNetwork4Ptr returned_network = + cbptr_->getSharedNetwork4(ServerSelector::ALL(), "foo"); + ASSERT_TRUE(returned_network); + + // Verified returned and original shared networks match. + EXPECT_EQ(network->toElement()->str(), + returned_network->toElement()->str()); + + // Update the preferred and valid lifetime. + network->setValid( Triplet(100, 200, 300)); + cbptr_->createUpdateSharedNetwork4(ServerSelector::ALL(), network); + + // Fetch and verify again. + returned_network = cbptr_->getSharedNetwork4(ServerSelector::ALL(), "foo"); + ASSERT_TRUE(returned_network); + EXPECT_EQ(network->toElement()->str(), + returned_network->toElement()->str()); +} + // Test that option definition can be inserted, fetched, updated and then // fetched again. TEST_F(MySqlConfigBackendDHCPv4Test, getOptionDef4) { diff --git a/src/hooks/dhcp/mysql_cb/tests/mysql_cb_dhcp6_unittest.cc b/src/hooks/dhcp/mysql_cb/tests/mysql_cb_dhcp6_unittest.cc index cceee99257..0da4776b70 100644 --- a/src/hooks/dhcp/mysql_cb/tests/mysql_cb_dhcp6_unittest.cc +++ b/src/hooks/dhcp/mysql_cb/tests/mysql_cb_dhcp6_unittest.cc @@ -967,6 +967,34 @@ TEST_F(MySqlConfigBackendDHCPv6Test, getModifiedSubnets6) { ASSERT_TRUE(subnets.empty()); } +// Test that lifetimes in subnets are handled as expected. +TEST_F(MySqlConfigBackendDHCPv6Test, subnetLifetime) { + // Insert new subnet with unspecified valid lifetime + Triplet unspecified; + Subnet6Ptr subnet(new Subnet6(IOAddress("2001:db8::"), 64, 30, 40, + unspecified, unspecified, 1111)); + subnet->setIface("eth1"); + cbptr_->createUpdateSubnet6(ServerSelector::ALL(), subnet); + + // Fetch this subnet by subnet identifier + Subnet6Ptr returned_subnet = cbptr_->getSubnet6(ServerSelector::ALL(), + subnet->getID()); + ASSERT_TRUE(returned_subnet); + + // Verified returned and original subnets match. + EXPECT_EQ(subnet->toElement()->str(), returned_subnet->toElement()->str()); + + // Update the preferred and valid lifetime. + subnet->setPreferred( Triplet(100, 200, 300)); + subnet->setValid( Triplet(200, 300, 400)); + cbptr_->createUpdateSubnet6(ServerSelector::ALL(), subnet); + + // Fetch and verify again. + returned_subnet = cbptr_->getSubnet6(ServerSelector::ALL(), subnet->getID()); + ASSERT_TRUE(returned_subnet); + EXPECT_EQ(subnet->toElement()->str(), returned_subnet->toElement()->str()); +} + // Test that subnets belonging to a shared network can be retrieved. TEST_F(MySqlConfigBackendDHCPv6Test, getSharedNetworkSubnets6) { // Assign test subnets to shared networks level1 and level2. @@ -1295,6 +1323,37 @@ TEST_F(MySqlConfigBackendDHCPv6Test, getModifiedSharedNetworks6) { ASSERT_TRUE(networks.empty()); } +// Test that lifetimes in shared networks are handled as expected. +TEST_F(MySqlConfigBackendDHCPv6Test, sharedNetworkLifetime) { + // Insert new shared network with unspecified valid lifetime + SharedNetwork6Ptr network(new SharedNetwork6("foo")); + Triplet unspecified; + network->setPreferred(unspecified); + network->setValid(unspecified); + network->setIface("eth1"); + cbptr_->createUpdateSharedNetwork6(ServerSelector::ALL(), network); + + // Fetch this shared network. + SharedNetwork6Ptr returned_network = + cbptr_->getSharedNetwork6(ServerSelector::ALL(), "foo"); + ASSERT_TRUE(returned_network); + + // Verified returned and original shared networks match. + EXPECT_EQ(network->toElement()->str(), + returned_network->toElement()->str()); + + // Update the preferred and valid lifetime. + network->setPreferred( Triplet(100, 200, 300)); + network->setValid( Triplet(200, 300, 400)); + cbptr_->createUpdateSharedNetwork6(ServerSelector::ALL(), network); + + // Fetch and verify again. + returned_network = cbptr_->getSharedNetwork6(ServerSelector::ALL(), "foo"); + ASSERT_TRUE(returned_network); + EXPECT_EQ(network->toElement()->str(), + returned_network->toElement()->str()); +} + // Test that option definition can be inserted, fetched, updated and then // fetched again. TEST_F(MySqlConfigBackendDHCPv6Test, getOptionDef6) {