]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[755-Kea-DHCP-servers-observations-should-be-reset-to-some-initial-values-upon-restar...
authorFranciszek Gorski <fagorski9@gmail.com>
Mon, 26 Aug 2019 09:54:48 +0000 (11:54 +0200)
committerMarcin Siodelski <marcin@isc.org>
Fri, 6 Sep 2019 09:34:54 +0000 (11:34 +0200)
src/bin/dhcp4/dhcp4_srv.cc
src/bin/dhcp4/tests/ctrl_dhcp4_srv_unittest.cc
src/bin/dhcp6/dhcp6_srv.cc
src/bin/dhcp6/tests/ctrl_dhcp6_srv_unittest.cc
src/bin/dhcp6/tests/dhcp6_srv_unittest.cc
src/bin/dhcp6/tests/dhcp6_test_utils.cc
src/bin/dhcp6/tests/infrequest_unittest.cc
src/bin/dhcp6/tests/sarr_unittest.cc

index d6614f737b0da06c5f951756029f6197e94dbcf2..b84e5c3be3a691ad37266aa772a115f8f6d0fd05 100644 (file)
@@ -481,6 +481,48 @@ Dhcpv4Srv::Dhcpv4Srv(uint16_t server_port, uint16_t client_port,
         return;
     }
 
+    // Initializing all observations with zero value
+    isc::stats::StatsMgr::instance().setValue("pkt4-received",
+                                              static_cast<int64_t>(0));
+    isc::stats::StatsMgr::instance().setValue("pkt4-discover-received",
+                                              static_cast<int64_t>(0));
+    isc::stats::StatsMgr::instance().setValue("pkt4-offer-received",
+                                              static_cast<int64_t>(0));
+    isc::stats::StatsMgr::instance().setValue("pkt4-request-received",
+                                              static_cast<int64_t>(0));
+    isc::stats::StatsMgr::instance().setValue("pkt4-ack-received",
+                                              static_cast<int64_t>(0));
+    isc::stats::StatsMgr::instance().setValue("pkt4-nak-received",
+                                              static_cast<int64_t>(0));
+    isc::stats::StatsMgr::instance().setValue("pkt4-release-received",
+                                              static_cast<int64_t>(0));
+    isc::stats::StatsMgr::instance().setValue("pkt4-decline-received",
+                                              static_cast<int64_t>(0));
+    isc::stats::StatsMgr::instance().setValue("pkt4-inform-received",
+                                              static_cast<int64_t>(0));
+    isc::stats::StatsMgr::instance().setValue("pkt4-unknown-received",
+                                              static_cast<int64_t>(0));
+
+    isc::stats::StatsMgr::instance().setValue("pkt4-sent",
+                                              static_cast<int64_t>(0));
+    isc::stats::StatsMgr::instance().setValue("pkt4-offer-sent",
+                                              static_cast<int64_t>(0));
+    isc::stats::StatsMgr::instance().setValue("pkt4-ack-sent",
+                                              static_cast<int64_t>(0));
+    isc::stats::StatsMgr::instance().setValue("pkt4-nak-sent",
+                                              static_cast<int64_t>(0));
+
+    isc::stats::StatsMgr::instance().setValue("pkt4-parse-failed",
+                                              static_cast<int64_t>(0));
+    isc::stats::StatsMgr::instance().setValue("pkt4-receive-drop",
+                                              static_cast<int64_t>(0));
+
+    isc::stats::StatsMgr::instance().setValue("reclaimed-leases",
+                                              static_cast<int64_t>(0));
+    isc::stats::StatsMgr::instance().setValue("declined-addresses",
+                                              static_cast<int64_t>(0));
+    isc::stats::StatsMgr::instance().setValue("reclaimed-declined-addresses",
+                                              static_cast<int64_t>(0));
     shutdown_ = false;
 }
 
index 1793898ca9116f61339a1d96d0597dbe8a8e19c2..f06f62cf27f7ed81547af10db2f0df110ec2a1de 100644 (file)
@@ -21,6 +21,7 @@
 #include <hooks/hooks_manager.h>
 #include <log/logger_support.h>
 #include <stats/stats_mgr.h>
+#include <util/boost_time_utils.h>
 #include <testutils/io_utils.h>
 #include <testutils/unix_control_client.h>
 #include <testutils/sandbox.h>
@@ -550,7 +551,50 @@ TEST_F(CtrlChannelDhcpv4SrvTest, controlChannelStats) {
     // Check statistic-get-all
     sendUnixCommand("{ \"command\" : \"statistic-get-all\", "
                     "  \"arguments\": {}}", response);
-    EXPECT_EQ("{ \"arguments\": {  }, \"result\": 0 }", response);
+
+    // preparing the schema which check if all statistics are set to zero
+    std::string stats_get_all = "{ \"arguments\": { "
+         "\"declined-addresses\": [ [ 0, \"" + isc::util::ptimeToText(StatsMgr::instance().getObservation("declined-addresses")
+                                    ->getInteger().second) + "\" ] ], "
+         "\"pkt4-ack-received\": [ [ 0, \"" + isc::util::ptimeToText(StatsMgr::instance().getObservation("pkt4-ack-received")
+                                    ->getInteger().second) + "\" ] ], "
+         "\"pkt4-ack-sent\": [ [ 0, \"" + isc::util::ptimeToText(StatsMgr::instance().getObservation("pkt4-ack-sent")
+                                    ->getInteger().second) + "\" ] ], "
+         "\"pkt4-decline-received\": [ [ 0, \"" + isc::util::ptimeToText(StatsMgr::instance().getObservation("pkt4-decline-received")
+                                    ->getInteger().second) + "\" ] ], "
+         "\"pkt4-discover-received\": [ [ 0, \"" + isc::util::ptimeToText(StatsMgr::instance().getObservation("pkt4-discover-received")
+                                    ->getInteger().second) + "\" ] ], "
+         "\"pkt4-inform-received\": [ [ 0, \"" + isc::util::ptimeToText(StatsMgr::instance().getObservation("pkt4-inform-received")
+                                    ->getInteger().second) + "\" ] ], "
+         "\"pkt4-nak-received\": [ [ 0, \"" + isc::util::ptimeToText(StatsMgr::instance().getObservation("pkt4-nak-received")
+                                    ->getInteger().second) + "\" ] ], "
+         "\"pkt4-nak-sent\": [ [ 0, \"" + isc::util::ptimeToText(StatsMgr::instance().getObservation("pkt4-nak-sent")
+                                    ->getInteger().second) + "\" ] ], "
+         "\"pkt4-offer-received\": [ [ 0, \"" + isc::util::ptimeToText(StatsMgr::instance().getObservation("pkt4-offer-received")
+                                    ->getInteger().second) + "\" ] ], "
+         "\"pkt4-offer-sent\": [ [ 0, \"" + isc::util::ptimeToText(StatsMgr::instance().getObservation("pkt4-offer-sent")
+                                    ->getInteger().second) + "\" ] ], "
+         "\"pkt4-parse-failed\": [ [ 0, \"" + isc::util::ptimeToText(StatsMgr::instance().getObservation("pkt4-parse-failed")
+                                    ->getInteger().second) + "\" ] ], "
+         "\"pkt4-receive-drop\": [ [ 0, \"" + isc::util::ptimeToText(StatsMgr::instance().getObservation("pkt4-receive-drop")
+                                    ->getInteger().second) + "\" ] ], "
+         "\"pkt4-received\": [ [ 0, \"" + isc::util::ptimeToText(StatsMgr::instance().getObservation("pkt4-received")
+                                    ->getInteger().second) + "\" ] ], "
+         "\"pkt4-release-received\": [ [ 0, \"" + isc::util::ptimeToText(StatsMgr::instance().getObservation("pkt4-release-received")
+                                    ->getInteger().second) + "\" ] ], "
+         "\"pkt4-request-received\": [ [ 0, \"" + isc::util::ptimeToText(StatsMgr::instance().getObservation("pkt4-request-received")
+                                    ->getInteger().second) + "\" ] ], "
+         "\"pkt4-sent\": [ [ 0, \"" + isc::util::ptimeToText(StatsMgr::instance().getObservation("pkt4-sent")
+                                    ->getInteger().second) + "\" ] ], "
+         "\"pkt4-unknown-received\": [ [ 0, \"" + isc::util::ptimeToText(StatsMgr::instance().getObservation("pkt4-unknown-received")
+                                    ->getInteger().second) + "\" ] ], "
+         "\"reclaimed-declined-addresses\": [ [ 0, \"" + isc::util::ptimeToText(StatsMgr::instance().getObservation("reclaimed-declined-addresses")
+                                    ->getInteger().second) + "\" ] ], "
+         "\"reclaimed-leases\": [ [ 0, \"" + isc::util::ptimeToText(StatsMgr::instance().getObservation("reclaimed-leases")
+                                    ->getInteger().second) + "\" ] ] }, "
+         "\"result\": 0 }";
+
+    EXPECT_EQ(stats_get_all, response);
 
     // Check statistic-reset
     sendUnixCommand("{ \"command\" : \"statistic-reset\", "
index fd761877ef6795b50cb801e43898b8ead358fcd2..a82a0e634e8bd3a74d01f68a709133138406a5bd 100644 (file)
@@ -216,7 +216,54 @@ Dhcpv6Srv::Dhcpv6Srv(uint16_t server_port, uint16_t client_port)
         LOG_ERROR(dhcp6_logger, DHCP6_SRV_CONSTRUCT_ERROR).arg(e.what());
         return;
     }
-
+    // Initializing all observations with zero value
+    isc::stats::StatsMgr::instance().setValue("pkt6-received",
+                                              static_cast<int64_t>(0));
+    isc::stats::StatsMgr::instance().setValue("pkt6-solicit-received",
+                                              static_cast<int64_t>(0));
+    isc::stats::StatsMgr::instance().setValue("pkt6-advertise-received",
+                                              static_cast<int64_t>(0));
+    isc::stats::StatsMgr::instance().setValue("pkt6-request-received",
+                                              static_cast<int64_t>(0));
+    isc::stats::StatsMgr::instance().setValue("pkt6-reply-received",
+                                              static_cast<int64_t>(0));
+    isc::stats::StatsMgr::instance().setValue("pkt6-renew-received",
+                                              static_cast<int64_t>(0));
+    isc::stats::StatsMgr::instance().setValue("pkt6-rebind-received",
+                                              static_cast<int64_t>(0));
+    isc::stats::StatsMgr::instance().setValue("pkt6-release-received",
+                                              static_cast<int64_t>(0));
+    isc::stats::StatsMgr::instance().setValue("pkt6-decline-received",
+                                              static_cast<int64_t>(0));
+    isc::stats::StatsMgr::instance().setValue("pkt6-infrequest-received",
+                                              static_cast<int64_t>(0));
+    isc::stats::StatsMgr::instance().setValue("pkt6-dhcpv4-query-received",
+                                              static_cast<int64_t>(0));
+    isc::stats::StatsMgr::instance().setValue("pkt6-dhcpv4-response-received",
+                                              static_cast<int64_t>(0));
+    isc::stats::StatsMgr::instance().setValue("pkt6-unknown-received",
+                                              static_cast<int64_t>(0));
+
+    isc::stats::StatsMgr::instance().setValue("pkt6-sent",
+                                              static_cast<int64_t>(0));
+    isc::stats::StatsMgr::instance().setValue("pkt6-advertise-sent",
+                                              static_cast<int64_t>(0));
+    isc::stats::StatsMgr::instance().setValue("pkt6-reply-sent",
+                                              static_cast<int64_t>(0));
+    isc::stats::StatsMgr::instance().setValue("pkt6-dhcpv4-response-sent",
+                                              static_cast<int64_t>(0));
+
+    isc::stats::StatsMgr::instance().setValue("pkt6-parse-failed",
+                                              static_cast<int64_t>(0));
+    isc::stats::StatsMgr::instance().setValue("pkt6-receive-drop",
+                                              static_cast<int64_t>(0));
+
+    isc::stats::StatsMgr::instance().setValue("reclaimed-leases",
+                                              static_cast<int64_t>(0));
+    isc::stats::StatsMgr::instance().setValue("declined-addresses",
+                                              static_cast<int64_t>(0));
+    isc::stats::StatsMgr::instance().setValue("reclaimed-declined-addresses",
+                                              static_cast<int64_t>(0));
     // All done, so can proceed
     shutdown_ = false;
 }
index 08cbf13e5c11cb02e349f7ea990b1d16e2e02def..8cdb0a4f62799c2859d00975f8259c65389deaeb 100644 (file)
@@ -21,6 +21,7 @@
 #include <testutils/io_utils.h>
 #include <testutils/unix_control_client.h>
 #include <testutils/sandbox.h>
+#include <util/boost_time_utils.h>
 
 #include "marker_file.h"
 #include "test_libraries.h"
@@ -1115,6 +1116,129 @@ TEST_F(CtrlChannelDhcpv6SrvTest, controlLeasesReclaimRemove) {
     ASSERT_FALSE(lease1);
 }
 
+// Tests that the server properly responds to statistics commands.  Note this
+// is really only intended to verify that the appropriate Statistics handler
+// is called based on the command.  It is not intended to be an exhaustive
+// test of Dhcpv6 statistics.
+TEST_F(CtrlChannelDhcpv6SrvTest, controlChannelStats) {
+    createUnixChannelServer();
+    std::string response;
+
+    // Check statistic-get
+    sendUnixCommand("{ \"command\" : \"statistic-get\", "
+                    "  \"arguments\": {"
+                    "  \"name\":\"bogus\" }}", response);
+    EXPECT_EQ("{ \"arguments\": {  }, \"result\": 0 }", response);
+
+    // Check statistic-get-all
+    sendUnixCommand("{ \"command\" : \"statistic-get-all\", "
+                    "  \"arguments\": {}}", response);
+
+    // preparing the schema which check if all statistics are set to zero
+    std::string stats_get_all = "{ \"arguments\": { "
+         "\"declined-addresses\": [ [ 0, \"" + isc::util::ptimeToText(StatsMgr::instance().getObservation("declined-addresses")
+                                    ->getInteger().second) + "\" ] ], "
+         "\"pkt6-advertise-received\": [ [ 0, \"" + isc::util::ptimeToText(StatsMgr::instance().getObservation("pkt6-advertise-received")
+                                    ->getInteger().second) + "\" ] ], "
+         "\"pkt6-advertise-sent\": [ [ 0, \"" + isc::util::ptimeToText(StatsMgr::instance().getObservation("pkt6-advertise-sent")
+                                    ->getInteger().second) + "\" ] ], "
+         "\"pkt6-decline-received\": [ [ 0, \"" + isc::util::ptimeToText(StatsMgr::instance().getObservation("pkt6-decline-received")
+                                    ->getInteger().second) + "\" ] ], "
+         "\"pkt6-dhcpv4-query-received\": [ [ 0, \"" + isc::util::ptimeToText(StatsMgr::instance().getObservation("pkt6-dhcpv4-query-received")
+                                    ->getInteger().second) + "\" ] ], "
+         "\"pkt6-dhcpv4-response-received\": [ [ 0, \"" + isc::util::ptimeToText(StatsMgr::instance().getObservation("pkt6-dhcpv4-response-received")
+                                    ->getInteger().second) + "\" ] ], "
+         "\"pkt6-dhcpv4-response-sent\": [ [ 0, \"" + isc::util::ptimeToText(StatsMgr::instance().getObservation("pkt6-dhcpv4-response-sent")
+                                    ->getInteger().second) + "\" ] ], "
+         "\"pkt6-infrequest-received\": [ [ 0, \"" + isc::util::ptimeToText(StatsMgr::instance().getObservation("pkt6-infrequest-received")
+                                    ->getInteger().second) + "\" ] ], "
+         "\"pkt6-parse-failed\": [ [ 0, \"" + isc::util::ptimeToText(StatsMgr::instance().getObservation("pkt6-parse-failed")
+                                    ->getInteger().second) + "\" ] ], "
+         "\"pkt6-rebind-received\": [ [ 0, \"" + isc::util::ptimeToText(StatsMgr::instance().getObservation("pkt6-rebind-received")
+                                    ->getInteger().second) + "\" ] ], "
+         "\"pkt6-receive-drop\": [ [ 0, \"" + isc::util::ptimeToText(StatsMgr::instance().getObservation("pkt6-receive-drop")
+                                    ->getInteger().second) + "\" ] ], "
+         "\"pkt6-received\": [ [ 0, \"" + isc::util::ptimeToText(StatsMgr::instance().getObservation("pkt6-received")
+                                    ->getInteger().second) + "\" ] ], "
+         "\"pkt6-release-received\": [ [ 0, \"" + isc::util::ptimeToText(StatsMgr::instance().getObservation("pkt6-release-received")
+                                    ->getInteger().second) + "\" ] ], "
+         "\"pkt6-renew-received\": [ [ 0, \"" + isc::util::ptimeToText(StatsMgr::instance().getObservation("pkt6-renew-received")
+                                    ->getInteger().second) + "\" ] ], "
+         "\"pkt6-reply-received\": [ [ 0, \"" + isc::util::ptimeToText(StatsMgr::instance().getObservation("pkt6-reply-received")
+                                    ->getInteger().second) + "\" ] ], "
+         "\"pkt6-reply-sent\": [ [ 0, \"" + isc::util::ptimeToText(StatsMgr::instance().getObservation("pkt6-reply-sent")
+                                    ->getInteger().second) + "\" ] ], "
+         "\"pkt6-request-received\": [ [ 0, \"" + isc::util::ptimeToText(StatsMgr::instance().getObservation("pkt6-request-received")
+                                    ->getInteger().second) + "\" ] ], "
+         "\"pkt6-sent\": [ [ 0, \"" + isc::util::ptimeToText(StatsMgr::instance().getObservation("pkt6-sent")
+                                    ->getInteger().second) + "\" ] ], "
+         "\"pkt6-solicit-received\": [ [ 0, \"" + isc::util::ptimeToText(StatsMgr::instance().getObservation("pkt6-solicit-received")
+                                    ->getInteger().second) + "\" ] ], "
+         "\"pkt6-unknown-received\": [ [ 0, \"" + isc::util::ptimeToText(StatsMgr::instance().getObservation("pkt6-unknown-received")
+                                    ->getInteger().second) + "\" ] ], "
+         "\"reclaimed-declined-addresses\": [ [ 0, \"" + isc::util::ptimeToText(StatsMgr::instance().getObservation("reclaimed-declined-addresses")
+                                    ->getInteger().second) + "\" ] ], "
+         "\"reclaimed-leases\": [ [ 0, \"" + isc::util::ptimeToText(StatsMgr::instance().getObservation("reclaimed-leases")
+                                    ->getInteger().second) + "\" ] ] }, "
+         "\"result\": 0 }";
+
+    EXPECT_EQ(stats_get_all, response);
+
+    // Check statistic-reset
+    sendUnixCommand("{ \"command\" : \"statistic-reset\", "
+                    "  \"arguments\": {"
+                    "  \"name\":\"bogus\" }}", response);
+    EXPECT_EQ("{ \"result\": 1, \"text\": \"No 'bogus' statistic found\" }",
+              response);
+
+    // Check statistic-reset-all
+    sendUnixCommand("{ \"command\" : \"statistic-reset-all\", "
+                    "  \"arguments\": {}}", response);
+    EXPECT_EQ("{ \"result\": 0, \"text\": "
+              "\"All statistics reset to neutral values.\" }", response);
+
+    // Check statistic-remove
+    sendUnixCommand("{ \"command\" : \"statistic-remove\", "
+                    "  \"arguments\": {"
+                    "  \"name\":\"bogus\" }}", response);
+    EXPECT_EQ("{ \"result\": 1, \"text\": \"No 'bogus' statistic found\" }",
+              response);
+
+    // Check statistic-remove-all
+    sendUnixCommand("{ \"command\" : \"statistic-remove-all\", "
+                    "  \"arguments\": {}}", response);
+    EXPECT_EQ("{ \"result\": 0, \"text\": \"All statistics removed.\" }",
+              response);
+
+    // Check statistic-sample-age-set
+    sendUnixCommand("{ \"command\" : \"statistic-sample-age-set\", "
+                    "  \"arguments\": {"
+                    "  \"name\":\"bogus\", \"duration\": 1245 }}", response);
+    EXPECT_EQ("{ \"result\": 1, \"text\": \"No 'bogus' statistic found\" }",
+              response);
+
+    // Check statistic-sample-age-set-all
+    sendUnixCommand("{ \"command\" : \"statistic-sample-age-set-all\", "
+                    "  \"arguments\": {"
+                    "  \"duration\": 1245 }}", response);
+    EXPECT_EQ("{ \"result\": 0, \"text\": \"All statistics duration limit are set.\" }",
+              response);
+
+    // Check statistic-sample-count-set
+    sendUnixCommand("{ \"command\" : \"statistic-sample-count-set\", "
+                    "  \"arguments\": {"
+                    "  \"name\":\"bogus\", \"max-samples\": 100 }}", response);
+    EXPECT_EQ("{ \"result\": 1, \"text\": \"No 'bogus' statistic found\" }",
+              response);
+
+    // Check statistic-sample-count-set-all
+    sendUnixCommand("{ \"command\" : \"statistic-sample-count-set-all\", "
+                    "  \"arguments\": {"
+                    "  \"max-samples\": 100 }}", response);
+    EXPECT_EQ("{ \"result\": 0, \"text\": \"All statistics count limit are set.\" }",
+              response);
+}
+
 // Tests that the server properly responds to shtudown command sent
 // via ControlChannel
 TEST_F(CtrlChannelDhcpv6SrvTest, listCommands) {
index c01bf663c57d945d88c1fe08eb625352d5b47fbb..764d42b5d3f301a7d5c8277f4608fe340fc6f4e2 100644 (file)
@@ -2589,13 +2589,16 @@ TEST_F(Dhcpv6SrvTest, receiveParseFailedStat) {
     // And pretend it's packet is only 3 bytes long.
     pkt->data_.resize(3);
 
-    // Check that those statistics are not set before the test
+    // Check that those statistics are set before the test.
+    // All should be present because we initialize
+    // all of them in server constructor. This piece of code is mainly reffered
+    // to previous situation when Kea used lazy initialization of statistics.
     ObservationPtr pkt6_rcvd = mgr.getObservation("pkt6-received");
     ObservationPtr parse_fail = mgr.getObservation("pkt6-parse-failed");
     ObservationPtr recv_drop = mgr.getObservation("pkt6-receive-drop");
-    EXPECT_FALSE(pkt6_rcvd);
-    EXPECT_FALSE(parse_fail);
-    EXPECT_FALSE(recv_drop);
+    EXPECT_TRUE(pkt6_rcvd);
+    EXPECT_TRUE(parse_fail);
+    EXPECT_TRUE(recv_drop);
 
     // Simulate that we have received that traffic
     srv.fakeReceive(pkt);
index 9ff1706544977e381ae3caeb2bbfcc48819c9788..106a7d366ec3be6783875755353f08b5f90bc1e7 100644 (file)
@@ -770,11 +770,14 @@ Dhcpv6SrvTest::testReceiveStats(uint8_t pkt_type, const std::string& stat_name)
     // And pretend it's packet of a different type
     pkt->data_[0] = pkt_type;
 
-    // Check that those statistics are not set before the test
+    // Check that those statistics are set before the test.
+    // All should be present because we initialize
+    // all of them in server constructor. This piece of code is mainly reffered
+    // to previous situation when Kea used lazy initialization of statistics.
     ObservationPtr pkt6_rcvd = mgr.getObservation("pkt6-received");
     ObservationPtr tested_stat = mgr.getObservation(stat_name);
-    EXPECT_FALSE(pkt6_rcvd);
-    EXPECT_FALSE(tested_stat);
+    EXPECT_TRUE(pkt6_rcvd);
+    EXPECT_TRUE(tested_stat);
 
     // Simulate that we have received that traffic
     srv.fakeReceive(pkt);
index bf0cd4370627e533078b2085f69c8f30e6207b19..42ab8da99a9e299f7c684958fa1d9f441ac3153b 100644 (file)
@@ -316,17 +316,19 @@ TEST_F(InfRequestTest, infRequestStats) {
         getCfgSubnets6()->getAll();
     ASSERT_EQ(1, subnets->size());
 
-    // Ok, let's check the statistics. None should be present.
+    // Ok, let's check the statistics. All should be present because we initialize
+    // all of them in server constructor. This piece of code is mainly reffered
+    // to previous situation when Kea used lazy initialization of statistics.
     using namespace isc::stats;
     StatsMgr& mgr = StatsMgr::instance();
     ObservationPtr pkt6_rcvd = mgr.getObservation("pkt6-received");
     ObservationPtr pkt6_infreq_rcvd = mgr.getObservation("pkt6-infrequest-received");
     ObservationPtr pkt6_reply_sent = mgr.getObservation("pkt6-reply-sent");
     ObservationPtr pkt6_sent = mgr.getObservation("pkt6-sent");
-    EXPECT_FALSE(pkt6_rcvd);
-    EXPECT_FALSE(pkt6_infreq_rcvd);
-    EXPECT_FALSE(pkt6_reply_sent);
-    EXPECT_FALSE(pkt6_sent);
+    EXPECT_TRUE(pkt6_rcvd);
+    EXPECT_TRUE(pkt6_infreq_rcvd);
+    EXPECT_TRUE(pkt6_reply_sent);
+    EXPECT_TRUE(pkt6_sent);
 
     // Perform 2-way exchange (Inf-request/reply)
     client.requestOption(D6O_NAME_SERVERS);
index 120cb5a739b9e161d7b34f15471426e5f2abab3b..a0dfab6f15f9ef4b1912c3267c9b4f65daa06b6b 100644 (file)
@@ -492,7 +492,9 @@ TEST_F(SARRTest, sarrStats) {
         getCfgSubnets6()->getAll();
     ASSERT_EQ(2, subnets->size());
 
-    // Ok, let's check the statistics. None should be present.
+    // Ok, let's check the statistics. All should be present because we initialize
+    // all of them in server constructor. This piece of code is mainly reffered
+    // to previous situation when Kea used lazy initialization of statistics.
     using namespace isc::stats;
     StatsMgr& mgr = StatsMgr::instance();
     ObservationPtr pkt6_rcvd = mgr.getObservation("pkt6-received");
@@ -501,12 +503,12 @@ TEST_F(SARRTest, sarrStats) {
     ObservationPtr pkt6_request_rcvd = mgr.getObservation("pkt6-request-received");
     ObservationPtr pkt6_reply_sent = mgr.getObservation("pkt6-reply-sent");
     ObservationPtr pkt6_sent = mgr.getObservation("pkt6-sent");
-    EXPECT_FALSE(pkt6_rcvd);
-    EXPECT_FALSE(pkt6_solicit_rcvd);
-    EXPECT_FALSE(pkt6_adv_sent);
-    EXPECT_FALSE(pkt6_request_rcvd);
-    EXPECT_FALSE(pkt6_reply_sent);
-    EXPECT_FALSE(pkt6_sent);
+    EXPECT_TRUE(pkt6_rcvd);
+    EXPECT_TRUE(pkt6_solicit_rcvd);
+    EXPECT_TRUE(pkt6_adv_sent);
+    EXPECT_TRUE(pkt6_request_rcvd);
+    EXPECT_TRUE(pkt6_reply_sent);
+    EXPECT_TRUE(pkt6_sent);
 
     // Perform 4-way exchange.
     ASSERT_NO_THROW(client.doSARR());