diff options
author | koe <ukoe@protonmail.com> | 2020-07-21 02:00:27 -0500 |
---|---|---|
committer | koe <ukoe@protonmail.com> | 2020-07-23 03:36:05 -0500 |
commit | 85efc88c1edc7371ca5c8722c896fd64a258ddd2 (patch) | |
tree | 82603bf55a58a77a797193e81bac479f4a2adc6c /tests/unit_tests | |
parent | Merge pull request #6586 (diff) | |
download | monero-85efc88c1edc7371ca5c8722c896fd64a258ddd2.tar.xz |
Fix overflow issue in epee:misc_utils::rolling_median_t and median(), with unit test
Diffstat (limited to 'tests/unit_tests')
-rw-r--r-- | tests/unit_tests/rolling_median.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/tests/unit_tests/rolling_median.cpp b/tests/unit_tests/rolling_median.cpp index 730f1e7c5..d415c5b95 100644 --- a/tests/unit_tests/rolling_median.cpp +++ b/tests/unit_tests/rolling_median.cpp @@ -170,6 +170,17 @@ TEST(rolling_median, history_blind) } } +TEST(rolling_median, overflow) +{ + epee::misc_utils::rolling_median_t<uint64_t> m(2); + + uint64_t over_half = static_cast<uint64_t>(3) << static_cast<uint64_t>(62); + m.insert(over_half); + m.insert(over_half); + ASSERT_EQ((over_half + over_half) < over_half, true); + ASSERT_EQ(over_half, m.median()); +} + TEST(rolling_median, size) { epee::misc_utils::rolling_median_t<uint64_t> m(10); |