]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
Support for storing more than one samples
authorFranciszek Gorski <fagorski9@gmail.com>
Wed, 19 Jun 2019 13:22:51 +0000 (15:22 +0200)
committerRazvan Becheriu <razvan@isc.org>
Mon, 15 Jul 2019 12:23:18 +0000 (15:23 +0300)
src/lib/stats/observation.cc
src/lib/stats/tests/observation_unittest.cc

index 3e7417386a9efab49ab8a7c585d3b5ac9574fc55..7d961542a06bc3ca008cca8e26d2a0c2018f8653 100644 (file)
@@ -188,7 +188,7 @@ void Observation::setValueInternal(SampleType value, StorageType& storage,
                 storage.front().second - storage.back().second;
             // removing samples until the range_of_storage
             // stops exceeding the duration limit
-            while (range_of_storage >= max_sample_age.second) {
+            while (range_of_storage > max_sample_age.second) {
                 storage.pop_back();
                 range_of_storage =
                     storage.front().second - storage.back().second;
index 82f362e906bda89277d87f6f87b39d65320bbca6..5653554232b5959986c1bd91a767f01b24a78723 100644 (file)
@@ -266,6 +266,17 @@ TEST_F(ObservationTest, setCountLimit) {
     for (uint32_t i = 0; i < 21; ++i) {
         d.setValue(string_samples[i]);
     }
+    i = 2;
+    for (std::list<DurationSample>::iterator it=samples_dur.begin(); it != samples_dur.end(); ++it) {
+        EXPECT_EQ(duration_samples[i],(*it).first);
+        --i;
+    }
+    i = 2;
+    for (std::list<StringSample>::iterator it=samples_str.begin(); it != samples_str.end(); ++it) {
+        EXPECT_EQ(string_samples[i],(*it).first);
+        --i;
+    }
+}
 
     // Getting all 4 types of samples after inserting 21 values
     std::list<IntegerSample> samples_int = a.getIntegers();
@@ -428,6 +439,7 @@ TEST_F(ObservationTest, setAgeLimit) {
         EXPECT_EQ((*it).first, millisec::time_duration(0, 0, 0, i));
         --i;
     }
+
 }
 
 // Test checks whether timing is reported properly.