aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/core/debug/stats_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'test/core/debug/stats_test.cc')
-rw-r--r--test/core/debug/stats_test.cc19
1 files changed, 14 insertions, 5 deletions
diff --git a/test/core/debug/stats_test.cc b/test/core/debug/stats_test.cc
index a3bb44f496..1623e7c8a4 100644
--- a/test/core/debug/stats_test.cc
+++ b/test/core/debug/stats_test.cc
@@ -106,11 +106,12 @@ TEST_P(HistogramTest, IncHistogram) {
}
};
std::vector<int> test_values;
- for (int j = -1000;
- j < grpc_stats_histo_bucket_boundaries
- [kHistogram][grpc_stats_histo_buckets[kHistogram] - 1] +
- 1000;
- j++) {
+ // largest bucket boundary for current histogram type.
+ int max_bucket_boundary =
+ grpc_stats_histo_bucket_boundaries[kHistogram]
+ [grpc_stats_histo_buckets[kHistogram] -
+ 1];
+ for (int j = -1000; j < max_bucket_boundary + 1000;) {
int expected_bucket = FindExpectedBucket(kHistogram, j);
if (cur_bucket != expected_bucket) {
threads.emplace_back(
@@ -119,6 +120,14 @@ TEST_P(HistogramTest, IncHistogram) {
test_values.clear();
}
test_values.push_back(j);
+ if (j < max_bucket_boundary &&
+ FindExpectedBucket(kHistogram, j + 1000) == expected_bucket &&
+ FindExpectedBucket(kHistogram, j - 1000) == expected_bucket) {
+ // if we are far from bucket boundary, skip values to speed-up the tests
+ j += 500;
+ } else {
+ j++;
+ }
}
run(test_values, cur_bucket);
for (auto& t : threads) {