From: Michal 'vorner' Vaner Date: Tue, 23 Jul 2013 11:08:28 +0000 (+0200) Subject: [2862] Signal if segment was reset by result X-Git-Tag: bind10-1.2.0beta1-release~317^2~3 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9cccfbbc4e13274cc1c5750704f03fbc577189ef;p=thirdparty%2Fkea.git [2862] Signal if segment was reset by result --- diff --git a/src/lib/datasrc/client_list.cc b/src/lib/datasrc/client_list.cc index 4fe1eb3741..531821ceb5 100644 --- a/src/lib/datasrc/client_list.cc +++ b/src/lib/datasrc/client_list.cc @@ -330,7 +330,7 @@ ConfigurableClientList::findInternal(MutableResult& candidate, // and the need_updater parameter is true, get the zone there. } -void +bool ConfigurableClientList::resetMemorySegment (const std::string& datasrc_name, ZoneTableSegment::MemorySegmentOpenMode mode, @@ -340,9 +340,10 @@ ConfigurableClientList::resetMemorySegment if (info.name_ == datasrc_name) { ZoneTableSegment& segment = *info.ztable_segment_; segment.reset(mode, config_params); - break; + return true; } } + return false; } ConfigurableClientList::ZoneWriterPair diff --git a/src/lib/datasrc/client_list.h b/src/lib/datasrc/client_list.h index b4dadffd6a..77c2fd5bba 100644 --- a/src/lib/datasrc/client_list.h +++ b/src/lib/datasrc/client_list.h @@ -385,7 +385,8 @@ public: /// \param datasrc_name The name of the data source whose segment to reset /// \param mode The open mode for the new memory segment /// \param config_params The configuration for the new memory segment. - void resetMemorySegment + /// \return If the data source was found and reset. + bool resetMemorySegment (const std::string& datasrc_name, memory::ZoneTableSegment::MemorySegmentOpenMode mode, isc::data::ConstElementPtr config_params); diff --git a/src/lib/datasrc/tests/client_list_unittest.cc b/src/lib/datasrc/tests/client_list_unittest.cc index eb69556b8a..256e2eddf9 100644 --- a/src/lib/datasrc/tests/client_list_unittest.cc +++ b/src/lib/datasrc/tests/client_list_unittest.cc @@ -368,7 +368,8 @@ public: const std::string& datasrc_name, ZoneTableSegment::MemorySegmentOpenMode mode, ConstElementPtr config_params) { - list.resetMemorySegment(datasrc_name, mode, config_params); + EXPECT_TRUE(list.resetMemorySegment(datasrc_name, mode, + config_params)); } virtual std::string getType() { return ("mapped"); @@ -383,6 +384,13 @@ INSTANTIATE_TEST_CASE_P(ListTestMapped, ListTest, #endif +// Calling reset on empty list finds no data and returns false. +TEST_P(ListTest, emptyReset) { + EXPECT_FALSE(list_->resetMemorySegment("Something", + memory::ZoneTableSegment::CREATE, + Element::create())); +} + // Test the test itself TEST_P(ListTest, selfTest) { EXPECT_EQ(result::SUCCESS, ds_[0]->findZone(Name("example.org")).code);