From d316d6c2bc2833a45f944044469fe6e9518df50b Mon Sep 17 00:00:00 2001 From: Francis Dupont Date: Fri, 29 May 2020 21:45:05 +0200 Subject: [PATCH] [#916] Added tests --- .../process/tests/d_controller_unittests.cc | 27 ++++++++++++++++--- src/lib/process/testutils/d_test_stubs.h | 3 +++ 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/src/lib/process/tests/d_controller_unittests.cc b/src/lib/process/tests/d_controller_unittests.cc index accc6dc6b1..010cd4e914 100644 --- a/src/lib/process/tests/d_controller_unittests.cc +++ b/src/lib/process/tests/d_controller_unittests.cc @@ -28,12 +28,13 @@ public: /// @brief Constructor. /// Note the constructor passes in the static DStubController instance /// method. - DStubControllerTest() : DControllerTest (DStubController::instance) { + DStubControllerTest() : DControllerTest(DStubController::instance) { controller_ = boost::dynamic_pointer_cast (DControllerTest:: getController()); } + /// @brief The controller. DStubControllerPtr controller_; }; @@ -287,6 +288,28 @@ TEST_F(DStubControllerTest, configUpdateTests) { EXPECT_EQ(1, rcode); } +// Tests that handleOtherObjects behaves as expected. +TEST_F(DStubControllerTest, handleOtherObjects) { + using namespace isc::data; + + // A bad config. + ElementPtr config = Element::createMap(); + config->set(controller_->getAppName(), Element::create(1)); + config->set("foo", Element::create(2)); + config->set("bar", Element::create(3)); + + // Check the error message. + std::string errmsg; + EXPECT_NO_THROW(errmsg = controller_->handleOtherObjects(config)); + EXPECT_EQ(" contains unsupported 'bar' parameter (and 'foo')", errmsg); + + // Retry with no error. + config = Element::createMap(); + config->set(controller_->getAppName(), Element::create(1)); + EXPECT_NO_THROW(errmsg = controller_->handleOtherObjects(config)); + EXPECT_TRUE(errmsg.empty()); +} + // Tests that registered signals are caught and handled. TEST_F(DStubControllerTest, ioSignals) { // Tell test controller just to record the signals, don't call the @@ -355,8 +378,6 @@ TEST_F(DStubControllerTest, alternateParsing) { EXPECT_EQ(SIGHUP, signals[0]); } - - // Tests that the original configuration is replaced after a SIGHUP triggered // reconfiguration succeeds. TEST_F(DStubControllerTest, validConfigReload) { diff --git a/src/lib/process/testutils/d_test_stubs.h b/src/lib/process/testutils/d_test_stubs.h index ff79363546..01531c76eb 100644 --- a/src/lib/process/testutils/d_test_stubs.h +++ b/src/lib/process/testutils/d_test_stubs.h @@ -190,6 +190,9 @@ public: return (processed_signals_); } + /// @brief Deals with other (i.e. not application name) global objects. + using DControllerBase::handleOtherObjects; + /// @brief Controls whether signals are processed in full or merely /// recorded. /// -- 2.47.2