]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[2862] Signal if segment was reset by result
authorMichal 'vorner' Vaner <michal.vaner@nic.cz>
Tue, 23 Jul 2013 11:08:28 +0000 (13:08 +0200)
committerMichal 'vorner' Vaner <michal.vaner@nic.cz>
Tue, 23 Jul 2013 11:33:31 +0000 (13:33 +0200)
src/lib/datasrc/client_list.cc
src/lib/datasrc/client_list.h
src/lib/datasrc/tests/client_list_unittest.cc

index 4fe1eb3741ccdd4134b21e7b2537c2610f2073d0..531821ceb534ea4abab12d65a61cb06b9cabe37c 100644 (file)
@@ -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
index b4dadffd6a52deef161c5a68514bb481109c1fcb..77c2fd5bba445dc1d7ee1c8bcd09715ab109501a 100644 (file)
@@ -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);
index eb69556b8a9011fbf82cbab505dea35588d3dcdb..256e2eddf9702a4173664d705311916e8cb02160 100644 (file)
@@ -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);