From: Franciszek Gorski Date: Wed, 19 Jun 2019 13:22:51 +0000 (+0200) Subject: Support for storing more than one samples X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=645b426f7501cc91f6f7425e83b985453274834a;p=thirdparty%2Fkea.git Support for storing more than one samples --- diff --git a/src/lib/stats/observation.cc b/src/lib/stats/observation.cc index 3e7417386a..7d961542a0 100644 --- a/src/lib/stats/observation.cc +++ b/src/lib/stats/observation.cc @@ -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; diff --git a/src/lib/stats/tests/observation_unittest.cc b/src/lib/stats/tests/observation_unittest.cc index 82f362e906..5653554232 100644 --- a/src/lib/stats/tests/observation_unittest.cc +++ b/src/lib/stats/tests/observation_unittest.cc @@ -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::iterator it=samples_dur.begin(); it != samples_dur.end(); ++it) { + EXPECT_EQ(duration_samples[i],(*it).first); + --i; + } + i = 2; + for (std::list::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 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.