Better fix for flaky LitePagesTimeout test
Figured out the problem and the best way to address it. Comments
document my reasoning.
Bug: 874150
Change-Id: Iba4b95fd615137d08836c98ec89bcb36db39327b
Reviewed-on: https://chromium-review.googlesource.com/c/1348549
Reviewed-by: Tarun Bansal <tbansal@chromium.org>
Commit-Queue: Robert Ogden <robertogden@chromium.org>
Cr-Commit-Position: refs/heads/master@{#610488}
diff --git a/chrome/browser/previews/previews_lite_page_browsertest.cc b/chrome/browser/previews/previews_lite_page_browsertest.cc
index 5d23bc8d..c01042c4 100644
--- a/chrome/browser/previews/previews_lite_page_browsertest.cc
+++ b/chrome/browser/previews/previews_lite_page_browsertest.cc
@@ -1077,8 +1077,16 @@
max_penalty = bucket.min;
}
}
- // |kTimeoutMs| is flaky, so use something slightly less.
- EXPECT_GE(max_penalty, kTimeoutMs - 50);
+ // Expecting |max_penalty| > |kTimeoutMs| is flaky in release builds because
+ // of histogram bucketing. Since HistogramTester::Bucket doesn't provide a
+ // bucket max, if |max_penalty| < |kTimeoutMs|, check that a sample exists
+ // in the |kTimeoutMs| bucket.
+ if (max_penalty <= kTimeoutMs) {
+ EXPECT_GE(histogram_tester.GetBucketCount(
+ "Previews.ServerLitePage.ReportedNavigationRestartPenalty",
+ kTimeoutMs),
+ 1);
+ } // else, test passes
}
{