From: Francis Dupont Date: Wed, 7 Jun 2023 19:50:18 +0000 (+0200) Subject: [#2866] Added/restored specific tests X-Git-Tag: Kea-2.4.0~107 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f5595a5f5f530352a4ebade1ab223fd0f53b0fb9;p=thirdparty%2Fkea.git [#2866] Added/restored specific tests --- diff --git a/src/bin/dhcp4/tests/config_parser_unittest.cc b/src/bin/dhcp4/tests/config_parser_unittest.cc index 54c65f8db9..2d98963a43 100644 --- a/src/bin/dhcp4/tests/config_parser_unittest.cc +++ b/src/bin/dhcp4/tests/config_parser_unittest.cc @@ -1153,7 +1153,6 @@ TEST_F(Dhcp4ParserTest, subnetGlobalDefaults) { EXPECT_EQ(1, subnet->getID()); } -#if deprecated_unnumbered // Goal of this test is to verify that multiple subnets get unique // subnet-ids. Also, test checks that it's possible to do reconfiguration // multiple times. @@ -1185,7 +1184,6 @@ TEST_F(Dhcp4ParserTest, multipleSubnets) { ConstElementPtr json; ASSERT_NO_THROW(json = parseDHCP4(config)); - extractConfig(config); int cnt = 0; // Number of reconfigurations @@ -1213,7 +1211,6 @@ TEST_F(Dhcp4ParserTest, multipleSubnets) { // a bit. } while (++cnt < 10); } -#endif // This test checks that it is possible to assign arbitrary ids for subnets. TEST_F(Dhcp4ParserTest, multipleSubnetsExplicitIDs) { diff --git a/src/bin/dhcp6/tests/config_parser_unittest.cc b/src/bin/dhcp6/tests/config_parser_unittest.cc index 9ba9e35224..bd8435fd48 100644 --- a/src/bin/dhcp6/tests/config_parser_unittest.cc +++ b/src/bin/dhcp6/tests/config_parser_unittest.cc @@ -1426,22 +1426,19 @@ TEST_F(Dhcp6ParserTest, multipleSubnets) { "\"rebind-timer\": 2000, " "\"renew-timer\": 1000, " "\"subnet6\": [ { " - " \"id\": 1," " \"pools\": [ { \"pool\": \"2001:db8:1::/80\" } ]," " \"subnet\": \"2001:db8:1::/64\" " " }," " {" - " \"id\": 2," " \"pools\": [ { \"pool\": \"2001:db8:2::/80\" } ]," " \"subnet\": \"2001:db8:2::/64\", " + " \"id\": 0" " }," " {" - " \"id\": 3," " \"pools\": [ { \"pool\": \"2001:db8:3::/80\" } ]," " \"subnet\": \"2001:db8:3::/64\" " " }," " {" - " \"id\": 4," " \"pools\": [ { \"pool\": \"2001:db8:4::/80\" } ]," " \"subnet\": \"2001:db8:4::/64\" " " } ]," @@ -1451,7 +1448,6 @@ TEST_F(Dhcp6ParserTest, multipleSubnets) { ConstElementPtr json; ASSERT_NO_THROW(json = parseDHCP6(config)); - extractConfig(config); do { EXPECT_NO_THROW(x = Dhcpv6SrvTest::configure(srv_, json)); diff --git a/src/bin/dhcp6/tests/get_config_unittest.cc b/src/bin/dhcp6/tests/get_config_unittest.cc index 648254c5a8..fada83ab99 100644 --- a/src/bin/dhcp6/tests/get_config_unittest.cc +++ b/src/bin/dhcp6/tests/get_config_unittest.cc @@ -118,55 +118,6 @@ const char* EXTRACTED_CONFIGS[] = { " \"renew-timer\": 1000,\n" " \"subnet6\": [\n" " {\n" -" \"id\": 1,\n" -" \"pools\": [\n" -" {\n" -" \"pool\": \"2001:db8:1::/80\"\n" -" }\n" -" ],\n" -" \"subnet\": \"2001:db8:1::/64\"\n" -" },\n" -" {\n" -" \"id\": 2,\n" -" \"pools\": [\n" -" {\n" -" \"pool\": \"2001:db8:2::/80\"\n" -" }\n" -" ],\n" -" \"subnet\": \"2001:db8:2::/64\"\n" -" },\n" -" {\n" -" \"id\": 3,\n" -" \"pools\": [\n" -" {\n" -" \"pool\": \"2001:db8:3::/80\"\n" -" }\n" -" ],\n" -" \"subnet\": \"2001:db8:3::/64\"\n" -" },\n" -" {\n" -" \"id\": 4,\n" -" \"pools\": [\n" -" {\n" -" \"pool\": \"2001:db8:4::/80\"\n" -" }\n" -" ],\n" -" \"subnet\": \"2001:db8:4::/64\"\n" -" }\n" -" ],\n" -" \"valid-lifetime\": 4000\n" -" }\n", - // CONFIGURATION 3 -"{\n" -" \"interfaces-config\": {\n" -" \"interfaces\": [ \"*\" ],\n" -" \"re-detect\": false\n" -" },\n" -" \"preferred-lifetime\": 3000,\n" -" \"rebind-timer\": 2000,\n" -" \"renew-timer\": 1000,\n" -" \"subnet6\": [\n" -" {\n" " \"id\": 1024,\n" " \"pools\": [\n" " {\n" @@ -205,7 +156,7 @@ const char* EXTRACTED_CONFIGS[] = { " ],\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 4 + // CONFIGURATION 3 "{\n" " \"interfaces-config\": {\n" " \"interfaces\": [ \"*\" ],\n" @@ -254,7 +205,7 @@ const char* EXTRACTED_CONFIGS[] = { " ],\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 5 + // CONFIGURATION 4 "{\n" " \"compatibility\": {\n" " \"lenient-option-parsing\": true\n" @@ -279,7 +230,7 @@ const char* EXTRACTED_CONFIGS[] = { " ],\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 6 + // CONFIGURATION 5 "{\n" " \"interfaces-config\": {\n" " \"interfaces\": [ \"*\" ],\n" @@ -313,7 +264,7 @@ const char* EXTRACTED_CONFIGS[] = { " ],\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 7 + // CONFIGURATION 6 "{\n" " \"interfaces-config\": {\n" " \"interfaces\": [ \"*\" ],\n" @@ -336,7 +287,7 @@ const char* EXTRACTED_CONFIGS[] = { " ],\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 8 + // CONFIGURATION 7 "{\n" " \"preferred-lifetime\": 3000,\n" " \"rebind-timer\": 2000,\n" @@ -355,7 +306,7 @@ const char* EXTRACTED_CONFIGS[] = { " ],\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 9 + // CONFIGURATION 8 "{\n" " \"interfaces-config\": {\n" " \"interfaces\": [ \"*\" ],\n" @@ -392,7 +343,7 @@ const char* EXTRACTED_CONFIGS[] = { " ],\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 10 + // CONFIGURATION 9 "{\n" " \"interfaces-config\": {\n" " \"interfaces\": [ \"*\" ],\n" @@ -414,7 +365,7 @@ const char* EXTRACTED_CONFIGS[] = { " ],\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 11 + // CONFIGURATION 10 "{\n" " \"interfaces-config\": {\n" " \"interfaces\": [ \"*\" ],\n" @@ -438,7 +389,7 @@ const char* EXTRACTED_CONFIGS[] = { " }\n" " ]\n" " }\n", - // CONFIGURATION 12 + // CONFIGURATION 11 "{\n" " \"interfaces-config\": {\n" " \"interfaces\": [ \"*\" ],\n" @@ -464,7 +415,7 @@ const char* EXTRACTED_CONFIGS[] = { " }\n" " ]\n" " }\n", - // CONFIGURATION 13 + // CONFIGURATION 12 "{\n" " \"interfaces-config\": {\n" " \"interfaces\": [ \"*\" ],\n" @@ -503,7 +454,7 @@ const char* EXTRACTED_CONFIGS[] = { " }\n" " ]\n" " }\n", - // CONFIGURATION 14 + // CONFIGURATION 13 "{\n" " \"interfaces-config\": {\n" " \"interfaces\": [ \"*\" ],\n" @@ -527,7 +478,7 @@ const char* EXTRACTED_CONFIGS[] = { " }\n" " ]\n" " }\n", - // CONFIGURATION 15 + // CONFIGURATION 14 "{\n" " \"option-def\": [\n" " {\n" @@ -538,7 +489,7 @@ const char* EXTRACTED_CONFIGS[] = { " }\n" " ]\n" " }\n", - // CONFIGURATION 16 + // CONFIGURATION 15 "{\n" " \"option-def\": [\n" " {\n" @@ -550,7 +501,7 @@ const char* EXTRACTED_CONFIGS[] = { " }\n" " ]\n" " }\n", - // CONFIGURATION 17 + // CONFIGURATION 16 "{\n" " \"option-def\": [\n" " {\n" @@ -567,7 +518,7 @@ const char* EXTRACTED_CONFIGS[] = { " }\n" " ]\n" " }\n", - // CONFIGURATION 18 + // CONFIGURATION 17 "{\n" " \"option-def\": [\n" " {\n" @@ -579,7 +530,7 @@ const char* EXTRACTED_CONFIGS[] = { " }\n" " ]\n" " }\n", - // CONFIGURATION 19 + // CONFIGURATION 18 "{\n" " \"option-def\": [\n" " {\n" @@ -591,7 +542,7 @@ const char* EXTRACTED_CONFIGS[] = { " }\n" " ]\n" " }\n", - // CONFIGURATION 20 + // CONFIGURATION 19 "{\n" " \"interfaces-config\": {\n" " \"interfaces\": [ \"*\" ],\n" @@ -624,7 +575,7 @@ const char* EXTRACTED_CONFIGS[] = { " ],\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 21 + // CONFIGURATION 20 "{\n" " \"interfaces-config\": {\n" " \"interfaces\": [ \"*\" ],\n" @@ -657,7 +608,7 @@ const char* EXTRACTED_CONFIGS[] = { " ],\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 22 + // CONFIGURATION 21 "{\n" " \"interfaces-config\": {\n" " \"interfaces\": [ \"*\" ],\n" @@ -699,7 +650,7 @@ const char* EXTRACTED_CONFIGS[] = { " ],\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 23 + // CONFIGURATION 22 "{\n" " \"interfaces-config\": {\n" " \"interfaces\": [ \"*\" ],\n" @@ -736,7 +687,7 @@ const char* EXTRACTED_CONFIGS[] = { " \"renew-timer\": 1000,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 24 + // CONFIGURATION 23 "{\n" " \"interfaces-config\": {\n" " \"interfaces\": [ \"*\" ],\n" @@ -795,7 +746,7 @@ const char* EXTRACTED_CONFIGS[] = { " ],\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 25 + // CONFIGURATION 24 "{\n" " \"interfaces-config\": {\n" " \"interfaces\": [ \"*\" ],\n" @@ -840,7 +791,7 @@ const char* EXTRACTED_CONFIGS[] = { " ],\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 26 + // CONFIGURATION 25 "{\n" " \"interfaces-config\": {\n" " \"interfaces\": [ \"*\" ],\n" @@ -905,7 +856,7 @@ const char* EXTRACTED_CONFIGS[] = { " ],\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 27 + // CONFIGURATION 26 "{\n" " \"interfaces-config\": {\n" " \"interfaces\": [ \"*\" ],\n" @@ -943,7 +894,7 @@ const char* EXTRACTED_CONFIGS[] = { " ],\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 28 + // CONFIGURATION 27 "{\n" " \"interfaces-config\": {\n" " \"interfaces\": [ \"*\" ],\n" @@ -981,7 +932,7 @@ const char* EXTRACTED_CONFIGS[] = { " ],\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 29 + // CONFIGURATION 28 "{\n" " \"interfaces-config\": {\n" " \"interfaces\": [ \"eth0\" ],\n" @@ -992,7 +943,7 @@ const char* EXTRACTED_CONFIGS[] = { " \"renew-timer\": 1000,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 30 + // CONFIGURATION 29 "{\n" " \"interfaces-config\": {\n" " \"interfaces\": [ \"eth0\", \"eth1\", \"*\" ],\n" @@ -1003,7 +954,7 @@ const char* EXTRACTED_CONFIGS[] = { " \"renew-timer\": 1000,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 31 + // CONFIGURATION 30 "{\n" " \"interfaces-config\": {\n" " \"interfaces\": [ \"*\" ],\n" @@ -1028,7 +979,7 @@ const char* EXTRACTED_CONFIGS[] = { " ],\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 32 + // CONFIGURATION 31 "{\n" " \"interfaces-config\": {\n" " \"interfaces\": [ \"*\" ],\n" @@ -1053,7 +1004,7 @@ const char* EXTRACTED_CONFIGS[] = { " ],\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 33 + // CONFIGURATION 32 "{\n" " \"interfaces-config\": {\n" " \"interfaces\": [ \"*\" ],\n" @@ -1105,7 +1056,7 @@ const char* EXTRACTED_CONFIGS[] = { " ],\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 34 + // CONFIGURATION 33 "{\n" " \"interfaces-config\": {\n" " \"interfaces\": [ \"*\" ],\n" @@ -1139,7 +1090,7 @@ const char* EXTRACTED_CONFIGS[] = { " ],\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 35 + // CONFIGURATION 34 "{\n" " \"interfaces-config\": {\n" " \"interfaces\": [ \"*\" ],\n" @@ -1181,7 +1132,7 @@ const char* EXTRACTED_CONFIGS[] = { " ],\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 36 + // CONFIGURATION 35 "{\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": true,\n" @@ -1213,7 +1164,7 @@ const char* EXTRACTED_CONFIGS[] = { " ],\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 37 + // CONFIGURATION 36 "{\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": true,\n" @@ -1252,7 +1203,7 @@ const char* EXTRACTED_CONFIGS[] = { " ],\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 38 + // CONFIGURATION 37 "{\n" " \"ddns-generated-prefix\": \"global.prefix\",\n" " \"ddns-override-client-update\": true,\n" @@ -1299,7 +1250,7 @@ const char* EXTRACTED_CONFIGS[] = { " ],\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 39 + // CONFIGURATION 38 "{\n" " \"interfaces-config\": {\n" " \"interfaces\": [ \"*\" ],\n" @@ -1386,7 +1337,7 @@ const char* EXTRACTED_CONFIGS[] = { " ],\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 40 + // CONFIGURATION 39 "{\n" " \"interfaces-config\": {\n" " \"interfaces\": [ \"*\" ],\n" @@ -1426,7 +1377,7 @@ const char* EXTRACTED_CONFIGS[] = { " ],\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 41 + // CONFIGURATION 40 "{\n" " \"interfaces-config\": {\n" " \"interfaces\": [ \"*\" ],\n" @@ -1439,7 +1390,7 @@ const char* EXTRACTED_CONFIGS[] = { " \"subnet6\": [ ],\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 42 + // CONFIGURATION 41 "{\n" " \"interfaces-config\": {\n" " \"interfaces\": [ \"*\" ],\n" @@ -1452,7 +1403,7 @@ const char* EXTRACTED_CONFIGS[] = { " \"subnet6\": [ ],\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 43 + // CONFIGURATION 42 "{\n" " \"preferred-lifetime\": 3000,\n" " \"rebind-timer\": 2000,\n" @@ -1540,7 +1491,7 @@ const char* EXTRACTED_CONFIGS[] = { " ],\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 44 + // CONFIGURATION 43 "{\n" " \"preferred-lifetime\": 3000,\n" " \"rebind-timer\": 2000,\n" @@ -1573,7 +1524,7 @@ const char* EXTRACTED_CONFIGS[] = { " ],\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 45 + // CONFIGURATION 44 "{\n" " \"interfaces-config\": {\n" " \"interfaces\": [ \"*\" ],\n" @@ -1586,7 +1537,7 @@ const char* EXTRACTED_CONFIGS[] = { " \"subnet6\": [ ],\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 46 + // CONFIGURATION 45 "{\n" " \"interfaces-config\": {\n" " \"interfaces\": [ \"*\" ],\n" @@ -1594,7 +1545,7 @@ const char* EXTRACTED_CONFIGS[] = { " },\n" " \"subnet6\": [ ]\n" " }\n", - // CONFIGURATION 47 + // CONFIGURATION 46 "{\n" " \"interfaces-config\": {\n" " \"interfaces\": [ \"*\" ],\n" @@ -1602,7 +1553,7 @@ const char* EXTRACTED_CONFIGS[] = { " },\n" " \"subnet6\": [ ]\n" " }\n", - // CONFIGURATION 48 + // CONFIGURATION 47 "{\n" " \"decline-probation-period\": 12345,\n" " \"interfaces-config\": {\n" @@ -1611,7 +1562,7 @@ const char* EXTRACTED_CONFIGS[] = { " },\n" " \"subnet6\": [ ]\n" " }\n", - // CONFIGURATION 49 + // CONFIGURATION 48 "{\n" " \"expired-leases-processing\": {\n" " \"flush-reclaimed-timer-wait-time\": 35,\n" @@ -1627,7 +1578,7 @@ const char* EXTRACTED_CONFIGS[] = { " },\n" " \"subnet6\": [ ]\n" " }\n", - // CONFIGURATION 50 + // CONFIGURATION 49 "{\n" " \"client-classes\": [\n" " {\n" @@ -1660,7 +1611,7 @@ const char* EXTRACTED_CONFIGS[] = { " ],\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 51 + // CONFIGURATION 50 "{\n" " \"interfaces-config\": {\n" " \"interfaces\": [ \"*\" ],\n" @@ -1682,7 +1633,7 @@ const char* EXTRACTED_CONFIGS[] = { " ],\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 52 + // CONFIGURATION 51 "{\n" " \"interfaces-config\": {\n" " \"interfaces\": [ \"*\" ],\n" @@ -1705,7 +1656,7 @@ const char* EXTRACTED_CONFIGS[] = { " ],\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 53 + // CONFIGURATION 52 "{\n" " \"interfaces-config\": {\n" " \"interfaces\": [ \"*\" ],\n" @@ -1733,7 +1684,7 @@ const char* EXTRACTED_CONFIGS[] = { " ],\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 54 + // CONFIGURATION 53 "{\n" " \"interfaces-config\": {\n" " \"interfaces\": [ \"*\" ],\n" @@ -1761,7 +1712,7 @@ const char* EXTRACTED_CONFIGS[] = { " ],\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 55 + // CONFIGURATION 54 "{\n" " \"interfaces-config\": {\n" " \"interfaces\": [ \"*\" ],\n" @@ -1785,7 +1736,7 @@ const char* EXTRACTED_CONFIGS[] = { " ],\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 56 + // CONFIGURATION 55 "{\n" " \"interfaces-config\": {\n" " \"interfaces\": [ \"*\" ],\n" @@ -1810,7 +1761,7 @@ const char* EXTRACTED_CONFIGS[] = { " ],\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 57 + // CONFIGURATION 56 "{\n" " \"interfaces-config\": {\n" " \"interfaces\": [ \"*\" ],\n" @@ -1840,7 +1791,7 @@ const char* EXTRACTED_CONFIGS[] = { " ],\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 58 + // CONFIGURATION 57 "{\n" " \"hosts-databases\": [\n" " {\n" @@ -1865,7 +1816,7 @@ const char* EXTRACTED_CONFIGS[] = { " \"renew-timer\": 1000,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 59 + // CONFIGURATION 58 "{\n" " \"client-classes\": [\n" " {\n" @@ -1990,7 +1941,7 @@ const char* EXTRACTED_CONFIGS[] = { " \"comment\": \"A DHCPv6 server\"\n" " }\n" " }\n", - // CONFIGURATION 60 + // CONFIGURATION 59 "{\n" " \"interfaces-config\": {\n" " \"interfaces\": [ \"*\" ],\n" @@ -2055,7 +2006,7 @@ const char* EXTRACTED_CONFIGS[] = { " ],\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 61 + // CONFIGURATION 60 "{\n" " \"interfaces-config\": {\n" " \"interfaces\": [ \"*\" ],\n" @@ -2068,7 +2019,7 @@ const char* EXTRACTED_CONFIGS[] = { " \"statistic-default-sample-count\": 10,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 62 + // CONFIGURATION 61 "{\n" " \"interfaces-config\": {\n" " \"interfaces\": [ \"*\" ],\n" @@ -2076,7 +2027,7 @@ const char* EXTRACTED_CONFIGS[] = { " },\n" " \"subnet6\": [ ]\n" " }\n", - // CONFIGURATION 63 + // CONFIGURATION 62 "{\n" " \"interfaces-config\": {\n" " \"interfaces\": [ \"*\" ],\n" @@ -2089,7 +2040,7 @@ const char* EXTRACTED_CONFIGS[] = { " },\n" " \"subnet6\": [ ]\n" " }\n", - // CONFIGURATION 64 + // CONFIGURATION 63 "{\n" " \"client-classes\": [\n" " {\n" @@ -2121,7 +2072,7 @@ const char* EXTRACTED_CONFIGS[] = { " }\n" " ]\n" " }\n", - // CONFIGURATION 65 + // CONFIGURATION 64 "{\n" " \"client-classes\": [\n" " {\n" @@ -2475,221 +2426,6 @@ const char* UNPARSED_CONFIGS[] = { " \"pools\": [\n" " {\n" " \"option-data\": [ ],\n" -" \"pool\": \"2001:db8:1::/80\"\n" -" }\n" -" ],\n" -" \"preferred-lifetime\": 3000,\n" -" \"rapid-commit\": false,\n" -" \"rebind-timer\": 2000,\n" -" \"relay\": {\n" -" \"ip-addresses\": [ ]\n" -" },\n" -" \"renew-timer\": 1000,\n" -" \"reservations\": [ ],\n" -" \"store-extended-info\": false,\n" -" \"subnet\": \"2001:db8:1::/64\",\n" -" \"t1-percent\": 0.5,\n" -" \"t2-percent\": 0.8,\n" -" \"valid-lifetime\": 4000\n" -" },\n" -" {\n" -" \"allocator\": \"iterative\",\n" -" \"calculate-tee-times\": true,\n" -" \"id\": 2,\n" -" \"max-preferred-lifetime\": 3000,\n" -" \"max-valid-lifetime\": 4000,\n" -" \"min-preferred-lifetime\": 3000,\n" -" \"min-valid-lifetime\": 4000,\n" -" \"option-data\": [ ],\n" -" \"pd-allocator\": \"iterative\",\n" -" \"pd-pools\": [ ],\n" -" \"pools\": [\n" -" {\n" -" \"option-data\": [ ],\n" -" \"pool\": \"2001:db8:2::/80\"\n" -" }\n" -" ],\n" -" \"preferred-lifetime\": 3000,\n" -" \"rapid-commit\": false,\n" -" \"rebind-timer\": 2000,\n" -" \"relay\": {\n" -" \"ip-addresses\": [ ]\n" -" },\n" -" \"renew-timer\": 1000,\n" -" \"reservations\": [ ],\n" -" \"store-extended-info\": false,\n" -" \"subnet\": \"2001:db8:2::/64\",\n" -" \"t1-percent\": 0.5,\n" -" \"t2-percent\": 0.8,\n" -" \"valid-lifetime\": 4000\n" -" },\n" -" {\n" -" \"allocator\": \"iterative\",\n" -" \"calculate-tee-times\": true,\n" -" \"id\": 3,\n" -" \"max-preferred-lifetime\": 3000,\n" -" \"max-valid-lifetime\": 4000,\n" -" \"min-preferred-lifetime\": 3000,\n" -" \"min-valid-lifetime\": 4000,\n" -" \"option-data\": [ ],\n" -" \"pd-allocator\": \"iterative\",\n" -" \"pd-pools\": [ ],\n" -" \"pools\": [\n" -" {\n" -" \"option-data\": [ ],\n" -" \"pool\": \"2001:db8:3::/80\"\n" -" }\n" -" ],\n" -" \"preferred-lifetime\": 3000,\n" -" \"rapid-commit\": false,\n" -" \"rebind-timer\": 2000,\n" -" \"relay\": {\n" -" \"ip-addresses\": [ ]\n" -" },\n" -" \"renew-timer\": 1000,\n" -" \"reservations\": [ ],\n" -" \"store-extended-info\": false,\n" -" \"subnet\": \"2001:db8:3::/64\",\n" -" \"t1-percent\": 0.5,\n" -" \"t2-percent\": 0.8,\n" -" \"valid-lifetime\": 4000\n" -" },\n" -" {\n" -" \"allocator\": \"iterative\",\n" -" \"calculate-tee-times\": true,\n" -" \"id\": 4,\n" -" \"max-preferred-lifetime\": 3000,\n" -" \"max-valid-lifetime\": 4000,\n" -" \"min-preferred-lifetime\": 3000,\n" -" \"min-valid-lifetime\": 4000,\n" -" \"option-data\": [ ],\n" -" \"pd-allocator\": \"iterative\",\n" -" \"pd-pools\": [ ],\n" -" \"pools\": [\n" -" {\n" -" \"option-data\": [ ],\n" -" \"pool\": \"2001:db8:4::/80\"\n" -" }\n" -" ],\n" -" \"preferred-lifetime\": 3000,\n" -" \"rapid-commit\": false,\n" -" \"rebind-timer\": 2000,\n" -" \"relay\": {\n" -" \"ip-addresses\": [ ]\n" -" },\n" -" \"renew-timer\": 1000,\n" -" \"reservations\": [ ],\n" -" \"store-extended-info\": false,\n" -" \"subnet\": \"2001:db8:4::/64\",\n" -" \"t1-percent\": 0.5,\n" -" \"t2-percent\": 0.8,\n" -" \"valid-lifetime\": 4000\n" -" }\n" -" ],\n" -" \"t1-percent\": 0.5,\n" -" \"t2-percent\": 0.8,\n" -" \"valid-lifetime\": 4000\n" -" }\n", - // CONFIGURATION 3 -"{\n" -" \"allocator\": \"iterative\",\n" -" \"calculate-tee-times\": true,\n" -" \"ddns-generated-prefix\": \"myhost\",\n" -" \"ddns-override-client-update\": false,\n" -" \"ddns-override-no-update\": false,\n" -" \"ddns-qualifying-suffix\": \"\",\n" -" \"ddns-replace-client-name\": \"never\",\n" -" \"ddns-send-updates\": true,\n" -" \"ddns-update-on-renew\": false,\n" -" \"ddns-use-conflict-resolution\": true,\n" -" \"decline-probation-period\": 86400,\n" -" \"dhcp-ddns\": {\n" -" \"enable-updates\": false,\n" -" \"max-queue-size\": 1024,\n" -" \"ncr-format\": \"JSON\",\n" -" \"ncr-protocol\": \"UDP\",\n" -" \"sender-ip\": \"0.0.0.0\",\n" -" \"sender-port\": 0,\n" -" \"server-ip\": \"127.0.0.1\",\n" -" \"server-port\": 53001\n" -" },\n" -" \"dhcp-queue-control\": {\n" -" \"capacity\": 64,\n" -" \"enable-queue\": false,\n" -" \"queue-type\": \"kea-ring6\"\n" -" },\n" -" \"dhcp4o6-port\": 0,\n" -" \"early-global-reservations-lookup\": false,\n" -" \"expired-leases-processing\": {\n" -" \"flush-reclaimed-timer-wait-time\": 25,\n" -" \"hold-reclaimed-time\": 3600,\n" -" \"max-reclaim-leases\": 100,\n" -" \"max-reclaim-time\": 250,\n" -" \"reclaim-timer-wait-time\": 10,\n" -" \"unwarned-reclaim-cycles\": 5\n" -" },\n" -" \"hooks-libraries\": [ ],\n" -" \"host-reservation-identifiers\": [ \"hw-address\", \"duid\" ],\n" -" \"hostname-char-replacement\": \"\",\n" -" \"hostname-char-set\": \"[^A-Za-z0-9.-]\",\n" -" \"interfaces-config\": {\n" -" \"interfaces\": [ \"*\" ],\n" -" \"re-detect\": false\n" -" },\n" -" \"ip-reservations-unique\": true,\n" -" \"lease-database\": {\n" -" \"type\": \"memfile\"\n" -" },\n" -" \"mac-sources\": [ \"any\" ],\n" -" \"multi-threading\": {\n" -" \"enable-multi-threading\": true,\n" -" \"packet-queue-size\": 64,\n" -" \"thread-pool-size\": 0\n" -" },\n" -" \"option-data\": [ ],\n" -" \"option-def\": [ ],\n" -" \"parked-packet-limit\": 256,\n" -" \"pd-allocator\": \"iterative\",\n" -" \"preferred-lifetime\": 3000,\n" -" \"rebind-timer\": 2000,\n" -" \"relay-supplied-options\": [ \"65\" ],\n" -" \"renew-timer\": 1000,\n" -" \"reservations-global\": false,\n" -" \"reservations-in-subnet\": true,\n" -" \"reservations-lookup-first\": false,\n" -" \"reservations-out-of-pool\": false,\n" -" \"sanity-checks\": {\n" -" \"extended-info-checks\": \"fix\",\n" -" \"lease-checks\": \"warn\"\n" -" },\n" -" \"server-id\": {\n" -" \"enterprise-id\": 0,\n" -" \"htype\": 0,\n" -" \"identifier\": \"\",\n" -" \"persist\": true,\n" -" \"time\": 0,\n" -" \"type\": \"LLT\"\n" -" },\n" -" \"server-tag\": \"\",\n" -" \"shared-networks\": [ ],\n" -" \"statistic-default-sample-age\": 0,\n" -" \"statistic-default-sample-count\": 20,\n" -" \"store-extended-info\": false,\n" -" \"subnet6\": [\n" -" {\n" -" \"allocator\": \"iterative\",\n" -" \"calculate-tee-times\": true,\n" -" \"id\": 1,\n" -" \"max-preferred-lifetime\": 3000,\n" -" \"max-valid-lifetime\": 4000,\n" -" \"min-preferred-lifetime\": 3000,\n" -" \"min-valid-lifetime\": 4000,\n" -" \"option-data\": [ ],\n" -" \"pd-allocator\": \"iterative\",\n" -" \"pd-pools\": [ ],\n" -" \"pools\": [\n" -" {\n" -" \"option-data\": [ ],\n" " \"pool\": \"2001:db8:3::/80\"\n" " }\n" " ],\n" @@ -2805,7 +2541,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 4 + // CONFIGURATION 3 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -3020,7 +2756,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 5 + // CONFIGURATION 4 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -3145,7 +2881,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 6 + // CONFIGURATION 5 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -3271,7 +3007,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 7 + // CONFIGURATION 6 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -3394,7 +3130,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 8 + // CONFIGURATION 7 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -3517,7 +3253,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 9 + // CONFIGURATION 8 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -3678,7 +3414,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 10 + // CONFIGURATION 9 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -3800,7 +3536,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 11 + // CONFIGURATION 10 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -3924,7 +3660,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 7200\n" " }\n", - // CONFIGURATION 12 + // CONFIGURATION 11 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -4050,7 +3786,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 7200\n" " }\n", - // CONFIGURATION 13 + // CONFIGURATION 12 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -4191,7 +3927,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 7200\n" " }\n", - // CONFIGURATION 14 + // CONFIGURATION 13 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -4315,7 +4051,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 7200\n" " }\n", - // CONFIGURATION 15 + // CONFIGURATION 14 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -4412,7 +4148,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 7200\n" " }\n", - // CONFIGURATION 16 + // CONFIGURATION 15 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -4509,7 +4245,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 7200\n" " }\n", - // CONFIGURATION 17 + // CONFIGURATION 16 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -4615,7 +4351,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 7200\n" " }\n", - // CONFIGURATION 18 + // CONFIGURATION 17 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -4712,7 +4448,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 7200\n" " }\n", - // CONFIGURATION 19 + // CONFIGURATION 18 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -4809,7 +4545,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 7200\n" " }\n", - // CONFIGURATION 20 + // CONFIGURATION 19 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -4950,7 +4686,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 21 + // CONFIGURATION 20 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -5091,7 +4827,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 22 + // CONFIGURATION 21 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -5242,7 +4978,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 23 + // CONFIGURATION 22 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -5370,7 +5106,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 24 + // CONFIGURATION 23 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -5548,7 +5284,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 25 + // CONFIGURATION 24 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -5721,7 +5457,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 26 + // CONFIGURATION 25 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -5900,7 +5636,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 27 + // CONFIGURATION 26 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -6039,7 +5775,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 28 + // CONFIGURATION 27 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -6181,7 +5917,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 29 + // CONFIGURATION 28 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -6271,7 +6007,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 30 + // CONFIGURATION 29 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -6361,7 +6097,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 31 + // CONFIGURATION 30 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -6483,7 +6219,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 32 + // CONFIGURATION 31 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -6605,7 +6341,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 33 + // CONFIGURATION 32 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -6823,7 +6559,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 34 + // CONFIGURATION 33 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -6960,7 +6696,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 35 + // CONFIGURATION 34 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -7105,7 +6841,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 36 + // CONFIGURATION 35 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -7227,7 +6963,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 37 + // CONFIGURATION 36 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -7349,7 +7085,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 38 + // CONFIGURATION 37 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -7471,7 +7207,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 39 + // CONFIGURATION 38 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -7736,7 +7472,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 40 + // CONFIGURATION 39 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -7882,7 +7618,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 41 + // CONFIGURATION 40 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -7972,7 +7708,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 42 + // CONFIGURATION 41 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -8062,7 +7798,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 43 + // CONFIGURATION 42 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -8386,7 +8122,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 44 + // CONFIGURATION 43 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -8542,7 +8278,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 45 + // CONFIGURATION 44 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -8632,7 +8368,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 46 + // CONFIGURATION 45 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -8719,7 +8455,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 7200\n" " }\n", - // CONFIGURATION 47 + // CONFIGURATION 46 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -8806,7 +8542,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 7200\n" " }\n", - // CONFIGURATION 48 + // CONFIGURATION 47 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -8893,7 +8629,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 7200\n" " }\n", - // CONFIGURATION 49 + // CONFIGURATION 48 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -8980,7 +8716,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 7200\n" " }\n", - // CONFIGURATION 50 + // CONFIGURATION 49 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -9116,7 +8852,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 51 + // CONFIGURATION 50 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -9238,7 +8974,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 52 + // CONFIGURATION 51 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -9361,7 +9097,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 53 + // CONFIGURATION 52 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -9489,7 +9225,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 54 + // CONFIGURATION 53 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -9617,7 +9353,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 55 + // CONFIGURATION 54 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -9741,7 +9477,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 56 + // CONFIGURATION 55 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -9866,7 +9602,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 57 + // CONFIGURATION 56 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -9996,7 +9732,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 58 + // CONFIGURATION 57 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -10100,7 +9836,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 59 + // CONFIGURATION 58 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -10343,7 +10079,7 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"valid-lifetime\": 7200\n" " }\n", - // CONFIGURATION 60 + // CONFIGURATION 59 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -10573,7 +10309,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 61 + // CONFIGURATION 60 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -10663,7 +10399,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", - // CONFIGURATION 62 + // CONFIGURATION 61 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -10750,7 +10486,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 7200\n" " }\n", - // CONFIGURATION 63 + // CONFIGURATION 62 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -10837,7 +10573,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 7200\n" " }\n", - // CONFIGURATION 64 + // CONFIGURATION 63 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" @@ -10967,7 +10703,7 @@ const char* UNPARSED_CONFIGS[] = { " \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 7200\n" " }\n", - // CONFIGURATION 65 + // CONFIGURATION 64 "{\n" " \"allocator\": \"iterative\",\n" " \"calculate-tee-times\": true,\n" diff --git a/src/lib/dhcpsrv/tests/subnet_unittest.cc b/src/lib/dhcpsrv/tests/subnet_unittest.cc index ec8337b5d9..07752cdb0a 100644 --- a/src/lib/dhcpsrv/tests/subnet_unittest.cc +++ b/src/lib/dhcpsrv/tests/subnet_unittest.cc @@ -23,14 +23,16 @@ #include #include #include +#include #include #include using namespace isc; -using namespace isc::dhcp; using namespace isc::asiolink; +using namespace isc::dhcp; +using namespace isc::dhcp::test; using namespace isc::util; namespace { @@ -1957,4 +1959,87 @@ TEST(SubnetFetcherTest, getSubnet6ById) { EXPECT_EQ("2001:db8:2::/64", subnet->toText()); } +// Test fixture for subnet identifier auto-generation. +class SubnetIdTest : public LogContentTest { +public: + + /// @brief virtual destructor. + virtual ~SubnetIdTest() { + Subnet::resetSubnetID(); + } +}; + +// Test class for subnets with id = 0. +class TestSubnet : public Subnet { +public: + // @brief Constructor. + // + // @param prefix subnet prefix. + // @param len prefix length for the subnet. + TestSubnet(const IOAddress& prefix, uint8_t len) + : Subnet(prefix, len, 0) { + } + + // @brief Returns the default address that will be used for pool selection. + virtual IOAddress default_pool() const { + isc_throw(NotImplemented, "default_pool"); + } + + /// @brief Instantiates the allocators and their states. + virtual void createAllocators() { + isc_throw(NotImplemented, "createAllocators"); + } + + /// @brief Checks if used pool type is valid. + virtual void checkType(Lease::Type type) const { + isc_throw(NotImplemented, "checkType " << type); + } +}; + +// Type of pointers to test subnets. +typedef boost::shared_ptr TestSubnetPtr; + +// Test subnet identifier auto-generation. +TEST_F(SubnetIdTest, unnumbered) { + // Reset subnet identifier counter. + Subnet::resetSubnetID(); + + // First subnet. + IOAddress addr1("192.0.2.0"); + uint8_t len1(25); + TestSubnetPtr subnet1; + ASSERT_NO_THROW(subnet1.reset(new TestSubnet(addr1, len1))); + ASSERT_TRUE(subnet1); + EXPECT_EQ(1, subnet1->getID()); + EXPECT_EQ("192.0.2.0/25", subnet1->toText()); + + // Second subnet. + IOAddress addr2("192.0.2.128"); + uint8_t len2(25); + TestSubnetPtr subnet2; + ASSERT_NO_THROW(subnet2.reset(new TestSubnet(addr2, len2))); + ASSERT_TRUE(subnet2); + EXPECT_EQ(2, subnet2->getID()); + EXPECT_EQ("192.0.2.128/25", subnet2->toText()); + + // Reset subnet identifier counter again to get another log. + Subnet::resetSubnetID(); + + // Third subnet. + IOAddress addr3("2001:db8:1::"); + uint8_t len3(64); + TestSubnetPtr subnet3; + ASSERT_NO_THROW(subnet3.reset(new TestSubnet(addr3, len3))); + ASSERT_TRUE(subnet3); + EXPECT_EQ(1, subnet3->getID()); + EXPECT_EQ("2001:db8:1::/64", subnet3->toText()); + + // Subnet 1 and 3 are logged. + std::string msg = "DHCPSRV_UNNUMBERED_CONFIGURED_SUBNET "; + msg += "a subnet was configured unnumbered: "; + addString(msg + subnet1->toText()); + addString(msg + subnet3->toText()); + EXPECT_TRUE(checkFile()); +} + }