aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott K Logan <logans@cottsay.net>2020-11-26 03:12:45 -0800
committerGitHub <noreply@github.com>2020-11-26 11:12:45 +0000
commit17a6b21ee15c71c5570d6724920cf3289b5d88ab (patch)
tree867a44f053119be3240c06fd1886613d5197be77
parent7fa6f1f91a96d8763de754810710d457f7fea575 (diff)
downloadgoogle-benchmark-17a6b21ee15c71c5570d6724920cf3289b5d88ab.tar.gz
Fix Range when starting at zero (#1073)
The existing behavior results in the `0` value being added twice. Since `lo` is always added to `dst`, we never want to explicitly add `0` if `lo` is equal to `0`.
-rw-r--r--src/benchmark_register.h2
-rw-r--r--test/benchmark_gtest.cc6
2 files changed, 7 insertions, 1 deletions
diff --git a/src/benchmark_register.h b/src/benchmark_register.h
index 204bf1d..c774e6f 100644
--- a/src/benchmark_register.h
+++ b/src/benchmark_register.h
@@ -87,7 +87,7 @@ void AddRange(std::vector<T>* dst, T lo, T hi, int mult) {
}
// Treat 0 as a special case (see discussion on #762).
- if (lo <= 0 && hi >= 0) {
+ if (lo < 0 && hi >= 0) {
dst->push_back(0);
}
diff --git a/test/benchmark_gtest.cc b/test/benchmark_gtest.cc
index 9557b20..6dbf7a5 100644
--- a/test/benchmark_gtest.cc
+++ b/test/benchmark_gtest.cc
@@ -90,6 +90,12 @@ TEST(AddRangeTest, ZeroOnlyRange) {
EXPECT_THAT(dst, testing::ElementsAre(0));
}
+TEST(AddRangeTest, ZeroStartingRange) {
+ std::vector<int> dst;
+ AddRange(&dst, 0, 2, 2);
+ EXPECT_THAT(dst, testing::ElementsAre(0, 1, 2));
+}
+
TEST(AddRangeTest, NegativeRange64) {
std::vector<int64_t> dst;
AddRange<int64_t>(&dst, -4, 4, 2);