}
// This test checks the precedence order in required evaluation.
-// This order is: shared-network > subnet > pools
+// This order is: pools > subnet > shared-network
TEST_F(ClassifyTest, precedenceNone) {
std::string config =
"{"
"\"valid-lifetime\": 600,"
"\"client-classes\": ["
" {"
- " \"name\": \"all\","
- " \"test\": \"'' == ''\""
- " },"
- " {"
" \"name\": \"for-pool\","
- " \"test\": \"member('all')\","
+ " \"test\": \"member('ALL')\","
" \"only-if-required\": true,"
" \"option-data\": [ {"
" \"name\": \"domain-name-servers\","
" },"
" {"
" \"name\": \"for-subnet\","
- " \"test\": \"member('all')\","
+ " \"test\": \"member('ALL')\","
" \"only-if-required\": true,"
" \"option-data\": [ {"
" \"name\": \"domain-name-servers\","
" },"
" {"
" \"name\": \"for-network\","
- " \"test\": \"member('all')\","
+ " \"test\": \"member('ALL')\","
" \"only-if-required\": true,"
" \"option-data\": [ {"
" \"name\": \"domain-name-servers\","
}
// This test checks the precedence order in required evaluation.
-// This order is: shared-network > subnet > pools
+// This order is: pools > subnet > shared-network
TEST_F(ClassifyTest, precedencePool) {
std::string config =
"{"
"\"valid-lifetime\": 600,"
"\"client-classes\": ["
" {"
- " \"name\": \"all\","
- " \"test\": \"'' == ''\""
- " },"
- " {"
" \"name\": \"for-pool\","
- " \"test\": \"member('all')\","
+ " \"test\": \"member('ALL')\","
" \"only-if-required\": true,"
" \"option-data\": [ {"
" \"name\": \"domain-name-servers\","
" },"
" {"
" \"name\": \"for-subnet\","
- " \"test\": \"member('all')\","
+ " \"test\": \"member('ALL')\","
" \"only-if-required\": true,"
" \"option-data\": [ {"
" \"name\": \"domain-name-servers\","
" },"
" {"
" \"name\": \"for-network\","
- " \"test\": \"member('all')\","
+ " \"test\": \"member('ALL')\","
" \"only-if-required\": true,"
" \"option-data\": [ {"
" \"name\": \"domain-name-servers\","
"],"
"\"shared-networks\": [ {"
" \"name\": \"frog\","
+ " \"require-client-classes\": [ \"for-network\" ],"
" \"subnet4\": [ { "
" \"subnet\": \"10.0.0.0/24\","
" \"id\": 1,"
+ " \"require-client-classes\": [ \"for-subnet\" ],"
" \"pools\": [ { "
" \"pool\": \"10.0.0.10-10.0.0.100\","
" \"require-client-classes\": [ \"for-pool\" ]"
}
// This test checks the precedence order in required evaluation.
-// This order is: shared-network > subnet > pools
+// This order is: pools > subnet > shared-network
TEST_F(ClassifyTest, precedenceSubnet) {
std::string config =
"{"
"\"valid-lifetime\": 600,"
"\"client-classes\": ["
" {"
- " \"name\": \"all\","
- " \"test\": \"'' == ''\""
- " },"
- " {"
" \"name\": \"for-pool\","
- " \"test\": \"member('all')\","
+ " \"test\": \"member('ALL')\","
" \"only-if-required\": true,"
" \"option-data\": [ {"
" \"name\": \"domain-name-servers\","
" },"
" {"
" \"name\": \"for-subnet\","
- " \"test\": \"member('all')\","
+ " \"test\": \"member('ALL')\","
" \"only-if-required\": true,"
" \"option-data\": [ {"
" \"name\": \"domain-name-servers\","
" },"
" {"
" \"name\": \"for-network\","
- " \"test\": \"member('all')\","
+ " \"test\": \"member('ALL')\","
" \"only-if-required\": true,"
" \"option-data\": [ {"
" \"name\": \"domain-name-servers\","
"],"
"\"shared-networks\": [ {"
" \"name\": \"frog\","
+ " \"require-client-classes\": [ \"for-network\" ],"
" \"subnet4\": [ { "
" \"subnet\": \"10.0.0.0/24\","
" \"id\": 1,"
" \"require-client-classes\": [ \"for-subnet\" ],"
" \"pools\": [ { "
- " \"pool\": \"10.0.0.10-10.0.0.100\","
- " \"require-client-classes\": [ \"for-pool\" ]"
+ " \"pool\": \"10.0.0.10-10.0.0.100\""
" } ]"
" } ]"
"} ]"
}
// This test checks the precedence order in required evaluation.
-// This order is: shared-network > subnet > pools
+// This order is: pools > subnet > shared-network
TEST_F(ClassifyTest, precedenceNetwork) {
std::string config =
"{"
"\"valid-lifetime\": 600,"
"\"client-classes\": ["
" {"
- " \"name\": \"all\","
- " \"test\": \"'' == ''\""
- " },"
- " {"
" \"name\": \"for-pool\","
- " \"test\": \"member('all')\","
+ " \"test\": \"member('ALL')\","
" \"only-if-required\": true,"
" \"option-data\": [ {"
" \"name\": \"domain-name-servers\","
" },"
" {"
" \"name\": \"for-subnet\","
- " \"test\": \"member('all')\","
+ " \"test\": \"member('ALL')\","
" \"only-if-required\": true,"
" \"option-data\": [ {"
" \"name\": \"domain-name-servers\","
" },"
" {"
" \"name\": \"for-network\","
- " \"test\": \"member('all')\","
+ " \"test\": \"member('ALL')\","
" \"only-if-required\": true,"
" \"option-data\": [ {"
" \"name\": \"domain-name-servers\","
" \"subnet4\": [ { "
" \"subnet\": \"10.0.0.0/24\","
" \"id\": 1,"
- " \"require-client-classes\": [ \"for-subnet\" ],"
" \"pools\": [ { "
- " \"pool\": \"10.0.0.10-10.0.0.100\","
- " \"require-client-classes\": [ \"for-pool\" ]"
+ " \"pool\": \"10.0.0.10-10.0.0.100\""
" } ]"
" } ]"
"} ]"
# This list is ordered alphabetically. When adding new files, please maintain
# this order.
dhcp6_unittests_SOURCES =
-dhcp6_unittests_SOURCES += classify_unittests.cc
+dhcp6_unittests_SOURCES += classify_unittest.cc
dhcp6_unittests_SOURCES += client_handler_unittest.cc
dhcp6_unittests_SOURCES += config_parser_unittest.cc
dhcp6_unittests_SOURCES += config_backend_unittest.cc
}
// This test checks the precedence order in required evaluation.
-// This order is: shared-network > subnet > pools
+// This order is: pools > subnet > shared-network
TEST_F(ClassifyTest, precedenceNone) {
std::string config =
"{"
"\"renew-timer\": 1000,"
"\"client-classes\": ["
" {"
- " \"name\": \"all\","
- " \"test\": \"'' == ''\""
- " },"
- " {"
" \"name\": \"for-pool\","
- " \"test\": \"member('all')\","
+ " \"test\": \"member('ALL')\","
" \"only-if-required\": true,"
" \"option-data\": [ {"
" \"name\": \"dns-servers\","
" },"
" {"
" \"name\": \"for-subnet\","
- " \"test\": \"member('all')\","
+ " \"test\": \"member('ALL')\","
" \"only-if-required\": true,"
" \"option-data\": [ {"
" \"name\": \"dns-servers\","
" },"
" {"
" \"name\": \"for-network\","
- " \"test\": \"member('all')\","
+ " \"test\": \"member('ALL')\","
" \"only-if-required\": true,"
" \"option-data\": [ {"
" \"name\": \"dns-servers\","
}
// This test checks the precedence order in required evaluation.
-// This order is: shared-network > subnet > pools
+// This order is: pools > subnet > shared-network
TEST_F(ClassifyTest, precedencePool) {
std::string config =
"{"
"},"
"\"client-classes\": ["
" {"
- " \"name\": \"all\","
- " \"test\": \"'' == ''\""
- " },"
- " {"
" \"name\": \"for-pool\","
- " \"test\": \"member('all')\","
+ " \"test\": \"member('ALL')\","
" \"only-if-required\": true,"
" \"option-data\": [ {"
" \"name\": \"dns-servers\","
" },"
" {"
" \"name\": \"for-subnet\","
- " \"test\": \"member('all')\","
+ " \"test\": \"member('ALL')\","
" \"only-if-required\": true,"
" \"option-data\": [ {"
" \"name\": \"dns-servers\","
" },"
" {"
" \"name\": \"for-network\","
- " \"test\": \"member('all')\","
+ " \"test\": \"member('ALL')\","
" \"only-if-required\": true,"
" \"option-data\": [ {"
" \"name\": \"dns-servers\","
"\"shared-networks\": [ {"
" \"name\": \"frog\","
" \"interface\": \"eth1\","
+ " \"require-client-classes\": [ \"for-network\" ],"
" \"subnet6\": [ { "
" \"subnet\": \"2001:db8:1::/64\","
" \"id\": 1,"
+ " \"require-client-classes\": [ \"for-subnet\" ],"
" \"pools\": [ { "
" \"pool\": \"2001:db8:1::1 - 2001:db8:1::64\","
" \"require-client-classes\": [ \"for-pool\" ]"
}
// This test checks the precedence order in required evaluation.
-// This order is: shared-network > subnet > pools
+// This order is: pools > subnet > shared-network
TEST_F(ClassifyTest, precedenceSubnet) {
std::string config =
"{"
"},"
"\"client-classes\": ["
" {"
- " \"name\": \"all\","
- " \"test\": \"'' == ''\""
- " },"
- " {"
" \"name\": \"for-pool\","
- " \"test\": \"member('all')\","
+ " \"test\": \"member('ALL')\","
" \"only-if-required\": true,"
" \"option-data\": [ {"
" \"name\": \"dns-servers\","
" },"
" {"
" \"name\": \"for-subnet\","
- " \"test\": \"member('all')\","
+ " \"test\": \"member('ALL')\","
" \"only-if-required\": true,"
" \"option-data\": [ {"
" \"name\": \"dns-servers\","
" },"
" {"
" \"name\": \"for-network\","
- " \"test\": \"member('all')\","
+ " \"test\": \"member('ALL')\","
" \"only-if-required\": true,"
" \"option-data\": [ {"
" \"name\": \"dns-servers\","
"\"shared-networks\": [ {"
" \"name\": \"frog\","
" \"interface\": \"eth1\","
+ " \"require-client-classes\": [ \"for-network\" ],"
" \"subnet6\": [ { "
" \"subnet\": \"2001:db8:1::/64\","
" \"id\": 1,"
" \"require-client-classes\": [ \"for-subnet\" ],"
" \"pools\": [ { "
- " \"pool\": \"2001:db8:1::1 - 2001:db8:1::64\","
- " \"require-client-classes\": [ \"for-pool\" ]"
+ " \"pool\": \"2001:db8:1::1 - 2001:db8:1::64\""
" } ]"
" } ]"
"} ],"
}
// This test checks the precedence order in required evaluation.
-// This order is: shared-network > subnet > pools
+// This order is: pools > subnet > shared-network
TEST_F(ClassifyTest, precedenceNetwork) {
std::string config =
"{"
"},"
"\"client-classes\": ["
" {"
- " \"name\": \"all\","
- " \"test\": \"'' == ''\""
- " },"
- " {"
" \"name\": \"for-pool\","
- " \"test\": \"member('all')\","
+ " \"test\": \"member('ALL')\","
" \"only-if-required\": true,"
" \"option-data\": [ {"
" \"name\": \"dns-servers\","
" },"
" {"
" \"name\": \"for-subnet\","
- " \"test\": \"member('all')\","
+ " \"test\": \"member('ALL')\","
" \"only-if-required\": true,"
" \"option-data\": [ {"
" \"name\": \"dns-servers\","
" },"
" {"
" \"name\": \"for-network\","
- " \"test\": \"member('all')\","
+ " \"test\": \"member('ALL')\","
" \"only-if-required\": true,"
" \"option-data\": [ {"
" \"name\": \"dns-servers\","
" \"subnet6\": [ { "
" \"subnet\": \"2001:db8:1::/64\","
" \"id\": 1,"
- " \"require-client-classes\": [ \"for-subnet\" ],"
" \"pools\": [ { "
- " \"pool\": \"2001:db8:1::1 - 2001:db8:1::64\","
- " \"require-client-classes\": [ \"for-pool\" ]"
+ " \"pool\": \"2001:db8:1::1 - 2001:db8:1::64\""
" } ]"
" } ]"
"} ],"