summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRazvan Becheriu <razvan@isc.org>2021-10-07 19:26:38 +0200
committerRazvan Becheriu <razvan@isc.org>2021-10-08 13:47:19 +0200
commit2e4a094bfdf4073020c2578b7bc09645d0e71ddb (patch)
tree22f902c1ddce220afeae83a0a2854ef50979b743
parent[#2089] check keys stats in unittests (diff)
downloadkea-2e4a094bfdf4073020c2578b7bc09645d0e71ddb.tar.xz
kea-2e4a094bfdf4073020c2578b7bc09645d0e71ddb.zip
[#2089] added ncr unittests
-rw-r--r--src/bin/d2/tests/d2_queue_mgr_unittests.cc19
-rw-r--r--src/lib/dhcp_ddns/ncr_udp.cc6
2 files changed, 20 insertions, 5 deletions
diff --git a/src/bin/d2/tests/d2_queue_mgr_unittests.cc b/src/bin/d2/tests/d2_queue_mgr_unittests.cc
index a00de29f4b..d2d41f5e56 100644
--- a/src/bin/d2/tests/d2_queue_mgr_unittests.cc
+++ b/src/bin/d2/tests/d2_queue_mgr_unittests.cc
@@ -9,6 +9,7 @@
#include <asiolink/io_service.h>
#include <asiolink/interval_timer.h>
#include <d2/d2_queue_mgr.h>
+#include <d2srv/testutils/stats_test_utils.h>
#include <dhcp_ddns/ncr_udp.h>
#include <util/time_utilities.h>
@@ -21,6 +22,7 @@ using namespace std;
using namespace isc;
using namespace isc::dhcp_ddns;
using namespace isc::d2;
+using namespace isc::d2::test;
namespace {
@@ -203,7 +205,7 @@ bool checkSendVsReceived(NameChangeRequestPtr sent_ncr,
/// @brief Text fixture that allows testing a listener and sender together
/// It derives from both the receive and send handler classes and contains
/// and instance of UDP listener and UDP sender.
-class QueueMgrUDPTest : public virtual ::testing::Test,
+class QueueMgrUDPTest : public virtual ::testing::Test, public D2StatTest,
NameChangeSender::RequestSendHandler {
public:
asiolink::IOServicePtr io_service_;
@@ -384,6 +386,13 @@ TEST_F (QueueMgrUDPTest, liveFeed) {
EXPECT_EQ(0, queue_mgr_->getQueueSize());
}
+ StatMap stats_ncr = {
+ { "ncr-received", 3},
+ { "ncr-invalid", 0},
+ { "ncr-error", 0}
+ };
+ checkStats(stats_ncr);
+
// Iterate over the list of requests, sending and receiving
// each one. Allow them to accumulate in the queue.
for (int i = 0; i < VALID_MSG_CNT; i++) {
@@ -397,6 +406,13 @@ TEST_F (QueueMgrUDPTest, liveFeed) {
EXPECT_EQ(i+1, queue_mgr_->getQueueSize());
}
+ StatMap stats_ncr_new = {
+ { "ncr-received", 6},
+ { "ncr-invalid", 0},
+ { "ncr-error", 0}
+ };
+ checkStats(stats_ncr_new);
+
// Verify that the queue is at max capacity.
EXPECT_EQ(queue_mgr_->getMaxQueueSize(), queue_mgr_->getQueueSize());
@@ -428,7 +444,6 @@ TEST_F (QueueMgrUDPTest, liveFeed) {
EXPECT_NO_THROW(queue_mgr_->clearQueue());
EXPECT_EQ(0, queue_mgr_->getQueueSize());
-
// Verify that we can again receive requests.
// Send should be fine.
ASSERT_NO_THROW(sender_->sendRequest(send_ncr));
diff --git a/src/lib/dhcp_ddns/ncr_udp.cc b/src/lib/dhcp_ddns/ncr_udp.cc
index fc46f5b651..43629d1818 100644
--- a/src/lib/dhcp_ddns/ncr_udp.cc
+++ b/src/lib/dhcp_ddns/ncr_udp.cc
@@ -163,12 +163,12 @@ NameChangeUDPListener::receiveCompletionHandler(const bool successful,
try {
ncr = NameChangeRequest::fromFormat(format_, input_buffer);
isc::stats::StatsMgr::instance().addValue("ncr-received",
- static_cast<int64_t>(0));
+ static_cast<int64_t>(1));
} catch (const NcrMessageError& ex) {
// log it and go back to listening
LOG_ERROR(dhcp_ddns_logger, DHCP_DDNS_INVALID_NCR).arg(ex.what());
isc::stats::StatsMgr::instance().addValue("ncr-invalid",
- static_cast<int64_t>(0));
+ static_cast<int64_t>(1));
// Queue up the next receive.
// NOTE: We must call the base class, NEVER doReceive
@@ -187,7 +187,7 @@ NameChangeUDPListener::receiveCompletionHandler(const bool successful,
LOG_ERROR(dhcp_ddns_logger, DHCP_DDNS_NCR_UDP_RECV_ERROR)
.arg(error_code.message());
isc::stats::StatsMgr::instance().addValue("ncr-error",
- static_cast<int64_t>(0));
+ static_cast<int64_t>(1));
result = ERROR;
}
}