From d8efd34b14a98ed96f71e7eaf64686c794c26fe1 Mon Sep 17 00:00:00 2001 From: Marcin Siodelski Date: Thu, 16 Sep 2021 13:58:21 +0200 Subject: [PATCH] [#2028] Correct test config backend logic --- .../testutils/test_config_backend_dhcp4.cc | 15 +++++++++++---- .../testutils/test_config_backend_dhcp6.cc | 15 +++++++++++---- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/src/lib/dhcpsrv/testutils/test_config_backend_dhcp4.cc b/src/lib/dhcpsrv/testutils/test_config_backend_dhcp4.cc index 1b3a953a5f..8648d97f29 100644 --- a/src/lib/dhcpsrv/testutils/test_config_backend_dhcp4.cc +++ b/src/lib/dhcpsrv/testutils/test_config_backend_dhcp4.cc @@ -319,17 +319,24 @@ TestConfigBackendDHCPv4::getAllOptionDefs4(const db::ServerSelector& server_sele OptionDefContainer option_defs; for (auto option_def : option_defs_) { bool got = false; - for (auto tag : tags) { - if (option_def->hasServerTag(ServerTag(tag))) { + if (server_selector.amUnassigned()) { + if (option_def->getServerTags().empty()) { option_defs.push_back(option_def); got = true; - break; + } + } else { + for (auto tag : tags) { + if (option_def->hasServerTag(ServerTag(tag))) { + option_defs.push_back(option_def); + got = true; + break; + } } } if (got) { continue; } - if (option_def->hasAllServerTag()) { + if (option_def->hasAllServerTag() && !server_selector.amUnassigned()) { option_defs.push_back(option_def); } } diff --git a/src/lib/dhcpsrv/testutils/test_config_backend_dhcp6.cc b/src/lib/dhcpsrv/testutils/test_config_backend_dhcp6.cc index 3afb48c637..e59ad5dd66 100644 --- a/src/lib/dhcpsrv/testutils/test_config_backend_dhcp6.cc +++ b/src/lib/dhcpsrv/testutils/test_config_backend_dhcp6.cc @@ -318,17 +318,24 @@ TestConfigBackendDHCPv6::getAllOptionDefs6(const db::ServerSelector& server_sele OptionDefContainer option_defs; for (auto option_def : option_defs_) { bool got = false; - for (auto tag : tags) { - if (option_def->hasServerTag(ServerTag(tag))) { + if (server_selector.amUnassigned()) { + if (option_def->getServerTags().empty()) { option_defs.push_back(option_def); got = true; - break; + } + } else { + for (auto tag : tags) { + if (option_def->hasServerTag(ServerTag(tag))) { + option_defs.push_back(option_def); + got = true; + break; + } } } if (got) { continue; } - if (option_def->hasAllServerTag()) { + if (option_def->hasAllServerTag() && !server_selector.amUnassigned()) { option_defs.push_back(option_def); } } -- 2.47.2