]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[2280] Avoid overlapping pools in the alloc engine unit tests.
authorMarcin Siodelski <marcin@isc.org>
Wed, 12 Oct 2016 08:25:29 +0000 (10:25 +0200)
committerMarcin Siodelski <marcin@isc.org>
Wed, 12 Oct 2016 08:25:29 +0000 (10:25 +0200)
src/lib/dhcpsrv/tests/alloc_engine6_unittest.cc
src/lib/dhcpsrv/tests/alloc_engine_utils.cc
src/lib/dhcpsrv/tests/alloc_engine_utils.h

index 7cd707a4dc7e5bb80d21db4dabcc4df9523e9eea..e38c6b764d3f2fd68fb4251720205a3f7b21032d 100644 (file)
@@ -143,9 +143,9 @@ TEST_F(AllocEngine6Test, allocWithUsedHint6) {
 // in pool, but is currently used, can succeed
 TEST_F(AllocEngine6Test, pdAllocWithUsedHint6) {
     allocWithUsedHintTest(Lease::TYPE_PD,
-                          IOAddress("2001:db8:1::"), // allocate this prefix as used
-                          IOAddress("2001:db8:1::"), // request this prefix
-                          64);
+                          IOAddress("2001:db8:1:2::"), // allocate this prefix as used
+                          IOAddress("2001:db8:1:2::"), // request this prefix
+                          80);
 }
 
 // This test checks if the allocation with a hint that is out the blue
@@ -159,7 +159,7 @@ TEST_F(AllocEngine6Test, allocBogusHint6) {
 // can succeed. The invalid hint should be ignored completely.
 TEST_F(AllocEngine6Test, pdAllocBogusHint6) {
 
-    allocBogusHint6(Lease::TYPE_PD, IOAddress("3000::abc"), 64);
+    allocBogusHint6(Lease::TYPE_PD, IOAddress("3000::abc"), 80);
 }
 
 // This test checks that NULL values are handled properly
@@ -1612,7 +1612,7 @@ TEST_F(AllocEngine6Test, largePDPool) {
 
     // Configure the PD pool with the prefix length of /64 and the delegated
     // length /96.
-    Pool6Ptr pool(new Pool6(Lease::TYPE_PD, IOAddress("2001:db8:1::"), 64, 96));
+    Pool6Ptr pool(new Pool6(Lease::TYPE_PD, IOAddress("2001:db8:1:2::"), 80, 96));
     subnet_->addPool(pool);
 
     // We should have got exactly one lease.
@@ -1649,6 +1649,7 @@ TEST_F(AllocEngine6Test, largePoolOver32bits) {
 TEST_F(AllocEngine6Test, largeAllocationAttemptsOverride) {
     // Remove the default NA pools.
     subnet_->delPools(Lease::TYPE_NA);
+    subnet_->delPools(Lease::TYPE_PD);
 
     // Add exactly one pool with many addresses.
     Pool6Ptr pool(new Pool6(Lease::TYPE_NA, IOAddress("2001:db8:1::"), 56));
index 764ad60ee114612516816740561ede507e922e18..a38fb8970b7a161d04082c0de47f16c5415866ed 100644 (file)
@@ -140,7 +140,9 @@ AllocEngine6Test::AllocEngine6Test() {
     // Initialize a subnet and short address pool.
     initSubnet(IOAddress("2001:db8:1::"),
                IOAddress("2001:db8:1::10"),
-               IOAddress("2001:db8:1::20"));
+               IOAddress("2001:db8:1::20"),
+               IOAddress("2001:db8:1:2::"),
+               64, 80);
 
     initFqdn("", false, false);
 
@@ -148,8 +150,11 @@ AllocEngine6Test::AllocEngine6Test() {
 
 void
 AllocEngine6Test::initSubnet(const asiolink::IOAddress& subnet,
-                    const asiolink::IOAddress& pool_start,
-                    const asiolink::IOAddress& pool_end) {
+                             const asiolink::IOAddress& pool_start,
+                             const asiolink::IOAddress& pool_end,
+                             const asiolink::IOAddress& pd_pool_prefix,
+                             const uint8_t pd_pool_length,
+                             const uint8_t pd_delegated_length) {
     CfgMgr& cfg_mgr = CfgMgr::instance();
 
     subnet_ = Subnet6Ptr(new Subnet6(subnet, 56, 100, 200, 300, 400));
@@ -157,7 +162,10 @@ AllocEngine6Test::initSubnet(const asiolink::IOAddress& subnet,
 
     subnet_->addPool(pool_);
 
-    pd_pool_ = Pool6Ptr(new Pool6(Lease::TYPE_PD, subnet, 56, 64));
+    if (!pd_pool_prefix.isV6Zero()) {
+        pd_pool_ = Pool6Ptr(new Pool6(Lease::TYPE_PD, pd_pool_prefix,
+                                      pd_pool_length, pd_delegated_length));
+    }
     subnet_->addPool(pd_pool_);
 
     cfg_mgr.getStagingCfg()->getCfgSubnets6()->add(subnet_);
index b2473fe7e93b21aef7559474a59eba57e8b113ce..5bf68748e33ff1c940338f03355434c5fc9aa29c 100644 (file)
@@ -101,9 +101,18 @@ public:
     /// @param subnet Address of a subnet to be configured.
     /// @param pool_start First address in the address pool.
     /// @param pool_end Last address in the address pool.
+    /// @param pd_pool_prefix Prefix for the prefix delegation pool. It
+    /// defaults to 0 which means that PD pool is not specified.
+    /// @param pd_pool_length Length of the PD pool prefix.
+    /// @param pd_delegated_length Delegated prefix length.
     void initSubnet(const asiolink::IOAddress& subnet,
                     const asiolink::IOAddress& pool_start,
-                    const asiolink::IOAddress& pool_end);
+                    const asiolink::IOAddress& pool_end,
+                    const asiolink::IOAddress& pd_pool_prefix =
+                    asiolink::IOAddress::IPV6_ZERO_ADDRESS(),
+                    const uint8_t pd_pool_length = 0,
+                    const uint8_t pd_delegated_length = 0);
+
 
     /// @brief Initializes FQDN data for a test.
     ///