From: Slawek Figiel Date: Tue, 11 Apr 2023 15:31:50 +0000 (+0200) Subject: [#2815] Extend unit test X-Git-Tag: Kea-2.3.8~68 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4008815aa42e9e54e13b6319cb6069241bdb3167;p=thirdparty%2Fkea.git [#2815] Extend unit test --- diff --git a/src/lib/dhcpsrv/testutils/generic_host_data_source_unittest.cc b/src/lib/dhcpsrv/testutils/generic_host_data_source_unittest.cc index 4c2df4a37a..f88c37fb17 100644 --- a/src/lib/dhcpsrv/testutils/generic_host_data_source_unittest.cc +++ b/src/lib/dhcpsrv/testutils/generic_host_data_source_unittest.cc @@ -3228,6 +3228,39 @@ HostMgrTest::testGetAll6BySubnet(BaseHostDataSource& data_source1, IPv6Resrv(IPv6Resrv::TYPE_NA, IOAddress("2001:db8:1::5")))); EXPECT_TRUE(hosts[1]->hasReservation( IPv6Resrv(IPv6Resrv::TYPE_NA, IOAddress("2001:db8:1::6")))); + + // Make sure that the operation target is supported. + bool is_first_source_primary = isPrimaryDataSource(data_source1); + bool is_second_source_primary = isPrimaryDataSource(data_source2); + size_t hosts_in_primary_source = is_first_source_primary + is_second_source_primary; + + // Select hosts only from the primary source. + hosts = HostMgr::instance().getAll6(SubnetID(1), HostMgrOperationTarget::PRIMARY_SOURCE); + EXPECT_EQ(hosts_in_primary_source, hosts.size()); + if (is_first_source_primary) { + EXPECT_TRUE(hosts[0]->hasReservation( + IPv6Resrv(IPv6Resrv::TYPE_NA, IOAddress("2001:db8:1::5")))); + } + if (is_second_source_primary) { + EXPECT_TRUE(hosts[hosts_in_primary_source-1]->hasReservation( + IPv6Resrv(IPv6Resrv::TYPE_NA, IOAddress("2001:db8:1::6")))); + } + + // Select hosts only from the alternate sources. + hosts = HostMgr::instance().getAll6(SubnetID(1), HostMgrOperationTarget::ALTERNATE_SOURCES); + EXPECT_EQ(2 - hosts_in_primary_source, hosts.size()); + if (!is_first_source_primary) { + EXPECT_TRUE(hosts[0]->hasReservation( + IPv6Resrv(IPv6Resrv::TYPE_NA, IOAddress("2001:db8:1::5")))); + } + if (!is_second_source_primary) { + EXPECT_TRUE(hosts[2 - hosts_in_primary_source - 1]->hasReservation( + IPv6Resrv(IPv6Resrv::TYPE_NA, IOAddress("2001:db8:1::6")))); + } + + // Select hosts for an unspecified source. + hosts = HostMgr::instance().getAll6(SubnetID(1), HostMgrOperationTarget::UNSPECIFIED_SOURCE); + EXPECT_EQ(0, hosts.size()); } void @@ -3268,6 +3301,35 @@ HostMgrTest::testGetAllbyHostname(BaseHostDataSource& data_source1, // Make sure that hostname is correct including its case. EXPECT_EQ("Host", hosts[0]->getHostname()); EXPECT_EQ("hosT", hosts[1]->getHostname()); + + // Make sure that the operation target is supported. + bool is_first_source_primary = isPrimaryDataSource(data_source1); + bool is_second_source_primary = isPrimaryDataSource(data_source2); + size_t hosts_in_primary_source = is_first_source_primary + is_second_source_primary; + + // Select hosts only from the primary source. + hosts = HostMgr::instance().getAllbyHostname("host", HostMgrOperationTarget::PRIMARY_SOURCE); + EXPECT_EQ(hosts_in_primary_source, hosts.size()); + if (is_first_source_primary) { + EXPECT_EQ(1, hosts[0]->getIPv4SubnetID()); + } + if (is_second_source_primary) { + EXPECT_EQ(10, hosts[hosts_in_primary_source-1]->getIPv4SubnetID()); + } + + // Select hosts only from the alternate sources. + hosts = HostMgr::instance().getAllbyHostname("host", HostMgrOperationTarget::ALTERNATE_SOURCES); + EXPECT_EQ(2 - hosts_in_primary_source, hosts.size()); + if (!is_first_source_primary) { + EXPECT_EQ(1, hosts[0]->getIPv4SubnetID()); + } + if (!is_second_source_primary) { + EXPECT_EQ(10, hosts[2 - hosts_in_primary_source - 1]->getIPv4SubnetID()); + } + + // Select hosts for an unspecified source. + hosts = HostMgr::instance().getAllbyHostname("host", HostMgrOperationTarget::UNSPECIFIED_SOURCE); + EXPECT_EQ(0, hosts.size()); } void