From: Razvan Becheriu Date: Thu, 7 Oct 2021 17:26:38 +0000 (+0300) Subject: [#2089] added ncr unittests X-Git-Tag: Kea-2.1.0~71 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2e4a094bfdf4073020c2578b7bc09645d0e71ddb;p=thirdparty%2Fkea.git [#2089] added ncr unittests --- 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 #include #include +#include #include #include @@ -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(0)); + static_cast(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(0)); + static_cast(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(0)); + static_cast(1)); result = ERROR; } }