From b62187c52324a4489c2fc1385b1d6574a058f7e8 Mon Sep 17 00:00:00 2001 From: Loic Dachary Date: Tue, 26 Aug 2014 21:59:39 +0200 Subject: [PATCH] tests: histogram prevent re-use of local variables By moving the tests to separate functions. http://tracker.ceph.com/issues/9235 Fixes: #9235 Signed-off-by: Loic Dachary (cherry picked from commit 4b8b25ecd128c34a386ad7c4cc89f323c4d384e1) --- src/test/common/histogram.cc | 97 ++++++++++++++++++------------------ 1 file changed, 49 insertions(+), 48 deletions(-) diff --git a/src/test/common/histogram.cc b/src/test/common/histogram.cc index 2b54e6375133b..765f4c97debf2 100644 --- a/src/test/common/histogram.cc +++ b/src/test/common/histogram.cc @@ -47,65 +47,66 @@ TEST(Histogram, Set) { } TEST(Histogram, Position) { - { - pow2_hist_t h; - uint64_t lb, ub; - h.add(0); - ASSERT_EQ(-1, h.get_position_micro(-20, &lb, &ub)); - } - { - pow2_hist_t h; - h.add(0); - uint64_t lb, ub; - h.get_position_micro(0, &lb, &ub); - ASSERT_EQ(0u, lb); - ASSERT_EQ(1000000u, ub); - h.add(0); - h.add(0); - h.add(0); - h.get_position_micro(0, &lb, &ub); - ASSERT_EQ(0u, lb); - ASSERT_EQ(1000000u, ub); - } - { - pow2_hist_t h; - h.add(1); - h.add(1); - uint64_t lb, ub; - h.get_position_micro(0, &lb, &ub); - ASSERT_EQ(0u, lb); - ASSERT_EQ(0u, ub); - h.add(0); - h.get_position_micro(0, &lb, &ub); - ASSERT_EQ(0u, lb); - ASSERT_EQ(333333u, ub); - h.get_position_micro(1, &lb, &ub); - ASSERT_EQ(333333u, lb); - ASSERT_EQ(1000000u, ub); - } - { - pow2_hist_t h; - h.h.resize(10, 0); - h.h[0] = 1; - h.h[5] = 1; - uint64_t lb, ub; - h.get_position_micro(4, &lb, &ub); - ASSERT_EQ(500000u, lb); - ASSERT_EQ(500000u, ub); - } + pow2_hist_t h; + uint64_t lb, ub; + h.add(0); + ASSERT_EQ(-1, h.get_position_micro(-20, &lb, &ub)); +} + +TEST(Histogram, Position1) { + pow2_hist_t h; + h.add(0); + uint64_t lb, ub; + h.get_position_micro(0, &lb, &ub); + ASSERT_EQ(0u, lb); + ASSERT_EQ(1000000u, ub); + h.add(0); + h.add(0); + h.add(0); + h.get_position_micro(0, &lb, &ub); + ASSERT_EQ(0u, lb); + ASSERT_EQ(1000000u, ub); } TEST(Histogram, Position2) { + pow2_hist_t h; + h.add(1); + h.add(1); + uint64_t lb, ub; + h.get_position_micro(0, &lb, &ub); + ASSERT_EQ(0u, lb); + ASSERT_EQ(0u, ub); + h.add(0); + h.get_position_micro(0, &lb, &ub); + ASSERT_EQ(0u, lb); + ASSERT_EQ(333333u, ub); + h.get_position_micro(1, &lb, &ub); + ASSERT_EQ(333333u, lb); + ASSERT_EQ(1000000u, ub); +} + +TEST(Histogram, Position3) { pow2_hist_t h; h.h.resize(10, 0); - h.h[0] = UINT_MAX; - h.h[5] = UINT_MAX; + h.h[0] = 1; + h.h[5] = 1; uint64_t lb, ub; h.get_position_micro(4, &lb, &ub); ASSERT_EQ(500000u, lb); ASSERT_EQ(500000u, ub); } +TEST(Histogram, Position4) { + pow2_hist_t h; + h.h.resize(10, 0); + h.h[0] = UINT_MAX; + h.h[5] = UINT_MAX; + uint64_t lb, ub; + h.get_position_micro(4, &lb, &ub); + ASSERT_EQ(0u, lb); + ASSERT_EQ(0u, ub); +} + TEST(Histogram, Decay) { pow2_hist_t h; h.set_bin(0, 123); -- 2.39.5