]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#1065] updated and fixed unittests
authorRazvan Becheriu <razvan@isc.org>
Fri, 24 Jul 2020 15:10:08 +0000 (18:10 +0300)
committerRazvan Becheriu <razvan@isc.org>
Wed, 12 Aug 2020 06:56:43 +0000 (09:56 +0300)
src/hooks/dhcp/lease_cmds/lease_cmds.cc
src/hooks/dhcp/lease_cmds/tests/lease_cmds_unittest.cc

index 3518346614810bb1b9b00ad890ba0803186f56d7..c8c7fda02fa8df9204a048bb4159adf3f8cc6c35 100644 (file)
@@ -1218,11 +1218,13 @@ void updateOrAdd(Lease6Ptr lease) {
             }
             if (!lease->stateExpiredReclaimed()) {
                 // new lease is non expired-reclaimed
-                StatsMgr::instance().addValue(
-                    StatsMgr::generateName("subnet", lease->subnet_id_,
-                                           lease->type_ == Lease::TYPE_NA ?
-                                           "assigned-nas" : "assigned-pds"),
-                    int64_t(1));
+                if (lease6->subnet_id_ != lease->subnet_id_) {
+                    StatsMgr::instance().addValue(
+                        StatsMgr::generateName("subnet", lease->subnet_id_,
+                                               lease->type_ == Lease::TYPE_NA ?
+                                               "assigned-nas" : "assigned-pds"),
+                        int64_t(1));
+                }
             } else {
                 // new lease is expired-reclaimed
                 StatsMgr::instance().addValue("reclaimed-leases", int64_t(1));
@@ -1234,7 +1236,7 @@ void updateOrAdd(Lease6Ptr lease) {
             }
         } else {
             // old lease is expired-reclaimed
-            if (lease->stateExpiredReclaimed()) {
+            if (!lease->stateExpiredReclaimed()) {
                 // new lease is non expired-reclaimed
                 StatsMgr::instance().addValue(
                     StatsMgr::generateName("subnet", lease->subnet_id_,
@@ -1606,10 +1608,12 @@ bool addOrUpdate4(Lease4Ptr lease, bool force_create) {
         }
         if (!lease->stateExpiredReclaimed()) {
             // new lease is non expired-reclaimed
-            StatsMgr::instance().addValue(
-                StatsMgr::generateName("subnet", lease->subnet_id_,
-                                       "assigned-addresses"),
-                int64_t(1));
+            if (lease4->subnet_id_ != lease->subnet_id_) {
+                StatsMgr::instance().addValue(
+                    StatsMgr::generateName("subnet", lease->subnet_id_,
+                                           "assigned-addresses"),
+                    int64_t(1));
+            }
         } else {
             // new lease is expired-reclaimed
             StatsMgr::instance().addValue("reclaimed-leases", int64_t(1));
@@ -1621,7 +1625,7 @@ bool addOrUpdate4(Lease4Ptr lease, bool force_create) {
         }
     } else {
         // old lease is expired-reclaimed
-        if (lease->stateExpiredReclaimed()) {
+        if (!lease->stateExpiredReclaimed()) {
             // new lease is non expired-reclaimed
             StatsMgr::instance().addValue(
                 StatsMgr::generateName("subnet", lease->subnet_id_,
@@ -1748,11 +1752,13 @@ bool addOrUpdate6(Lease6Ptr lease, bool force_create) {
         }
         if (!lease->stateExpiredReclaimed()) {
             // new lease is non expired-reclaimed
-            StatsMgr::instance().addValue(
-                StatsMgr::generateName("subnet", lease->subnet_id_,
-                                       lease->type_ == Lease::TYPE_NA ?
-                                       "assigned-nas" : "assigned-pds"),
-                int64_t(1));
+            if (lease6->subnet_id_ != lease->subnet_id_) {
+                StatsMgr::instance().addValue(
+                    StatsMgr::generateName("subnet", lease->subnet_id_,
+                                           lease->type_ == Lease::TYPE_NA ?
+                                           "assigned-nas" : "assigned-pds"),
+                    int64_t(1));
+            }
         } else {
             // new lease is expired-reclaimed
             StatsMgr::instance().addValue("reclaimed-leases", int64_t(1));
@@ -1764,7 +1770,7 @@ bool addOrUpdate6(Lease6Ptr lease, bool force_create) {
         }
     } else {
         // old lease is expired-reclaimed
-        if (lease->stateExpiredReclaimed()) {
+        if (!lease->stateExpiredReclaimed()) {
             // new lease is non expired-reclaimed
             StatsMgr::instance().addValue(
                 StatsMgr::generateName("subnet", lease->subnet_id_,
index d7ca915848fbf7c9fed82306214fd3b44bca85f9..a6d35f15e207efc5c2c766373878071cce0209d3 100644 (file)
@@ -335,23 +335,41 @@ public:
                 lmptr_->addLease(createLease6("2001:db8:1::2", 66, 0x56, reclaimed));
                 lmptr_->addLease(createLease6("2001:db8:2::1", 99, 0x42, reclaimed));
                 lmptr_->addLease(createLease6("2001:db8:2::2", 99, 0x56, reclaimed));
-                StatsMgr::instance().setValue(
-                    StatsMgr::generateName("subnet", 66, "assigned-nas" ),
-                    int64_t(2));
-                StatsMgr::instance().setValue(
-                    StatsMgr::generateName("subnet", 99, "assigned-nas" ),
-                    int64_t(2));
+                if (reclaimed) {
+                    StatsMgr::instance().setValue(
+                        StatsMgr::generateName("subnet", 66, "reclaimed-leases"),
+                        int64_t(2));
+                    StatsMgr::instance().setValue(
+                        StatsMgr::generateName("subnet", 99, "reclaimed-leases"),
+                        int64_t(2));
+                } else {
+                    StatsMgr::instance().setValue(
+                        StatsMgr::generateName("subnet", 66, "assigned-nas" ),
+                        int64_t(2));
+                    StatsMgr::instance().setValue(
+                        StatsMgr::generateName("subnet", 99, "assigned-nas" ),
+                        int64_t(2));
+                }
             } else {
                 lmptr_->addLease(createLease4("192.0.2.1", 44, 0x08, 0x42, reclaimed));
                 lmptr_->addLease(createLease4("192.0.2.2", 44, 0x09, 0x56, reclaimed));
                 lmptr_->addLease(createLease4("192.0.3.1", 88, 0x08, 0x42, reclaimed));
                 lmptr_->addLease(createLease4("192.0.3.2", 88, 0x09, 0x56, reclaimed));
-                StatsMgr::instance().setValue(
-                    StatsMgr::generateName("subnet", 44, "assigned-addresses"),
-                    int64_t(2));
-                StatsMgr::instance().setValue(
-                    StatsMgr::generateName("subnet", 88, "assigned-addresses"),
-                    int64_t(2));
+                if (reclaimed) {
+                    StatsMgr::instance().setValue(
+                        StatsMgr::generateName("subnet", 44, "reclaimed-leases"),
+                        int64_t(2));
+                    StatsMgr::instance().setValue(
+                        StatsMgr::generateName("subnet", 88, "reclaimed-leases"),
+                        int64_t(2));
+                } else {
+                    StatsMgr::instance().setValue(
+                        StatsMgr::generateName("subnet", 44, "assigned-addresses"),
+                        int64_t(2));
+                    StatsMgr::instance().setValue(
+                        StatsMgr::generateName("subnet", 88, "assigned-addresses"),
+                        int64_t(2));
+                }
             }
         }
     }
@@ -3814,10 +3832,16 @@ TEST_F(LeaseCmdsTest, Lease4UpdateWithStats) {
     ASSERT_TRUE(lmptr_);
 
     ASSERT_EQ(StatsMgr::instance().getObservation(StatsMgr::generateName("subnet",
-              44, "assigned-addresses"))->getInteger().first, 2);
+              44, "assigned-addresses"))->getInteger().first, 0);
 
     ASSERT_EQ(StatsMgr::instance().getObservation(StatsMgr::generateName("subnet",
-              88, "assigned-addresses"))->getInteger().first, 2);
+              88, "assigned-addresses"))->getInteger().first, 0);
+
+    ASSERT_EQ(StatsMgr::instance().getObservation(StatsMgr::generateName("subnet",
+              44, "reclaimed-leases"))->getInteger().first, 2);
+
+    ASSERT_EQ(StatsMgr::instance().getObservation(StatsMgr::generateName("subnet",
+              88, "reclaimed-leases"))->getInteger().first, 2);
 
     // Now send the command.
     string txt =
@@ -3834,10 +3858,16 @@ TEST_F(LeaseCmdsTest, Lease4UpdateWithStats) {
     testCommand(txt, CONTROL_RESULT_SUCCESS, exp_rsp);
 
     ASSERT_EQ(StatsMgr::instance().getObservation(StatsMgr::generateName("subnet",
-              44, "assigned-addresses"))->getInteger().first, 3);
+              44, "assigned-addresses"))->getInteger().first, 1);
 
     ASSERT_EQ(StatsMgr::instance().getObservation(StatsMgr::generateName("subnet",
-              88, "assigned-addresses"))->getInteger().first, 2);
+              88, "assigned-addresses"))->getInteger().first, 0);
+
+    ASSERT_EQ(StatsMgr::instance().getObservation(StatsMgr::generateName("subnet",
+              44, "reclaimed-leases"))->getInteger().first, 1);
+
+    ASSERT_EQ(StatsMgr::instance().getObservation(StatsMgr::generateName("subnet",
+              88, "reclaimed-leases"))->getInteger().first, 2);
 
     // Now check that the lease is still there.
     Lease4Ptr l = lmptr_->getLease4(IOAddress("192.0.2.1"));
@@ -3907,10 +3937,16 @@ TEST_F(LeaseCmdsTest, Lease4UpdateNoSubnetIdWithStats) {
     ASSERT_TRUE(lmptr_);
 
     ASSERT_EQ(StatsMgr::instance().getObservation(StatsMgr::generateName("subnet",
-              44, "assigned-addresses"))->getInteger().first, 2);
+              44, "assigned-addresses"))->getInteger().first, 0);
 
     ASSERT_EQ(StatsMgr::instance().getObservation(StatsMgr::generateName("subnet",
-              88, "assigned-addresses"))->getInteger().first, 2);
+              88, "assigned-addresses"))->getInteger().first, 0);
+
+    ASSERT_EQ(StatsMgr::instance().getObservation(StatsMgr::generateName("subnet",
+              44, "reclaimed-leases"))->getInteger().first, 2);
+
+    ASSERT_EQ(StatsMgr::instance().getObservation(StatsMgr::generateName("subnet",
+              88, "reclaimed-leases"))->getInteger().first, 2);
 
     // Now send the command.
     string txt =
@@ -3926,10 +3962,16 @@ TEST_F(LeaseCmdsTest, Lease4UpdateNoSubnetIdWithStats) {
     testCommand(txt, CONTROL_RESULT_SUCCESS, exp_rsp);
 
     ASSERT_EQ(StatsMgr::instance().getObservation(StatsMgr::generateName("subnet",
-              44, "assigned-addresses"))->getInteger().first, 3);
+              44, "assigned-addresses"))->getInteger().first, 1);
 
     ASSERT_EQ(StatsMgr::instance().getObservation(StatsMgr::generateName("subnet",
-              88, "assigned-addresses"))->getInteger().first, 2);
+              88, "assigned-addresses"))->getInteger().first, 0);
+
+    ASSERT_EQ(StatsMgr::instance().getObservation(StatsMgr::generateName("subnet",
+              44, "reclaimed-leases"))->getInteger().first, 1);
+
+    ASSERT_EQ(StatsMgr::instance().getObservation(StatsMgr::generateName("subnet",
+              88, "reclaimed-leases"))->getInteger().first, 2);
 
     // Now check that the lease is still there.
     Lease4Ptr l = lmptr_->getLease4(IOAddress("192.0.2.1"));
@@ -4300,17 +4342,23 @@ TEST_F(LeaseCmdsTest, Lease6Update) {
     ASSERT_TRUE(lmptr_);
 
     ASSERT_EQ(StatsMgr::instance().getObservation(StatsMgr::generateName("subnet",
-              66, "assigned-nas"))->getInteger().first, 2);
+              66, "assigned-nas"))->getInteger().first, 0);
 
     ASSERT_EQ(StatsMgr::instance().getObservation(StatsMgr::generateName("subnet",
               66, "assigned-pds"))->getInteger().first, 0);
 
     ASSERT_EQ(StatsMgr::instance().getObservation(StatsMgr::generateName("subnet",
-              99, "assigned-nas"))->getInteger().first, 2);
+              99, "assigned-nas"))->getInteger().first, 0);
 
     ASSERT_EQ(StatsMgr::instance().getObservation(StatsMgr::generateName("subnet",
               99, "assigned-pds"))->getInteger().first, 0);
 
+    ASSERT_EQ(StatsMgr::instance().getObservation(StatsMgr::generateName("subnet",
+              66, "reclaimed-leases"))->getInteger().first, 2);
+
+    ASSERT_EQ(StatsMgr::instance().getObservation(StatsMgr::generateName("subnet",
+              99, "reclaimed-leases"))->getInteger().first, 2);
+
     // Now send the command.
     string txt =
         "{\n"
@@ -4388,17 +4436,23 @@ TEST_F(LeaseCmdsTest, Lease6UpdateWithStats) {
     testCommand(txt, CONTROL_RESULT_SUCCESS, exp_rsp);
 
     ASSERT_EQ(StatsMgr::instance().getObservation(StatsMgr::generateName("subnet",
-              66, "assigned-nas"))->getInteger().first, 3);
+              66, "assigned-nas"))->getInteger().first, 1);
 
     ASSERT_EQ(StatsMgr::instance().getObservation(StatsMgr::generateName("subnet",
               66, "assigned-pds"))->getInteger().first, 0);
 
     ASSERT_EQ(StatsMgr::instance().getObservation(StatsMgr::generateName("subnet",
-              99, "assigned-nas"))->getInteger().first, 2);
+              99, "assigned-nas"))->getInteger().first, 0);
 
     ASSERT_EQ(StatsMgr::instance().getObservation(StatsMgr::generateName("subnet",
               99, "assigned-pds"))->getInteger().first, 0);
 
+    ASSERT_EQ(StatsMgr::instance().getObservation(StatsMgr::generateName("subnet",
+              66, "reclaimed-leases"))->getInteger().first, 1);
+
+    ASSERT_EQ(StatsMgr::instance().getObservation(StatsMgr::generateName("subnet",
+              99, "reclaimed-leases"))->getInteger().first, 2);
+
     // Now check that the lease is really there.
     Lease6Ptr l = lmptr_->getLease6(Lease::TYPE_NA, IOAddress("2001:db8:1::1"));
     ASSERT_TRUE(l);
@@ -4422,17 +4476,23 @@ TEST_F(LeaseCmdsTest, Lease6UpdateNoSubnetId) {
     ASSERT_TRUE(lmptr_);
 
     ASSERT_EQ(StatsMgr::instance().getObservation(StatsMgr::generateName("subnet",
-              66, "assigned-nas"))->getInteger().first, 2);
+              66, "assigned-nas"))->getInteger().first, 0);
 
     ASSERT_EQ(StatsMgr::instance().getObservation(StatsMgr::generateName("subnet",
               66, "assigned-pds"))->getInteger().first, 0);
 
     ASSERT_EQ(StatsMgr::instance().getObservation(StatsMgr::generateName("subnet",
-              99, "assigned-nas"))->getInteger().first, 2);
+              99, "assigned-nas"))->getInteger().first, 0);
 
     ASSERT_EQ(StatsMgr::instance().getObservation(StatsMgr::generateName("subnet",
               99, "assigned-pds"))->getInteger().first, 0);
 
+    ASSERT_EQ(StatsMgr::instance().getObservation(StatsMgr::generateName("subnet",
+              66, "reclaimed-leases"))->getInteger().first, 2);
+
+    ASSERT_EQ(StatsMgr::instance().getObservation(StatsMgr::generateName("subnet",
+              99, "reclaimed-leases"))->getInteger().first, 2);
+
     // Now send the command.
     string txt =
         "{\n"
@@ -4511,17 +4571,23 @@ TEST_F(LeaseCmdsTest, Lease6UpdateNoSubnetIdWithStats) {
     testCommand(txt, CONTROL_RESULT_SUCCESS, exp_rsp);
 
     ASSERT_EQ(StatsMgr::instance().getObservation(StatsMgr::generateName("subnet",
-              66, "assigned-nas"))->getInteger().first, 3);
+              66, "assigned-nas"))->getInteger().first, 1);
 
     ASSERT_EQ(StatsMgr::instance().getObservation(StatsMgr::generateName("subnet",
               66, "assigned-pds"))->getInteger().first, 0);
 
     ASSERT_EQ(StatsMgr::instance().getObservation(StatsMgr::generateName("subnet",
-              99, "assigned-nas"))->getInteger().first, 2);
+              99, "assigned-nas"))->getInteger().first, 0);
 
     ASSERT_EQ(StatsMgr::instance().getObservation(StatsMgr::generateName("subnet",
               99, "assigned-pds"))->getInteger().first, 0);
 
+    ASSERT_EQ(StatsMgr::instance().getObservation(StatsMgr::generateName("subnet",
+              66, "reclaimed-leases"))->getInteger().first, 1);
+
+    ASSERT_EQ(StatsMgr::instance().getObservation(StatsMgr::generateName("subnet",
+              99, "reclaimed-leases"))->getInteger().first, 2);
+
     // Now check that the lease is really there.
     Lease6Ptr l = lmptr_->getLease6(Lease::TYPE_NA, IOAddress("2001:db8:1::1"));
     ASSERT_TRUE(l);