Findit’s Flake Detector is a service that consumes CQ (presubmit) data , runs analysis against it to detect flaky tests, and presents the flakes to the end-users in multiple forms. The previous solution for this was Chromium-try-flakes, however, and this solution acts as a better replacement. Flake Detector is in parity of critical features with Chromium-try-flakes, and only supports the Chromium project as of now.
Table of contents:
Within Flake Detector, a flaky test is defined to be a test failure that could
Equivalent patchsets. If two patchsets meet the following requirements, then they are considered to be equivalent:
Equivalent builds. If two builds meet the following requirements, then they are considered equivalent:
Flaky builds. If two equivalent builds generate different results, one success and one failure, then the failed one is a flaky build.
Flaky test steps. Any failed test step in a flaky build is a flaky step only if it has a matching failed (retry with patch) step, otherwise it means that either the test failures are caused by bugs on tip of tree or they're not the culprits that caused the build to fail.
Flaky tests. Any test that failed in the (retry with patch) step is a flaky test.
When Flake Detector presents flaky tests to end-users, similar flaky tests are grouped together to avoid duplications, and it uses the following criteria:
gtests with different parameters.
webkit_layout_tests with different queries.
To avoid being noisy, a flaky test is only reported to Monorail if all the following requirements are met:
For any breakage report and feature requests, please file a bug.
For questions and general discussions, please use findit group.
There are mainly 3 reasons:
Because Flake Detector relies on ‘without patch’ steps in the recipe to differentiate a flake failure from a consistent failure caused by a bug in tip of tree, it currently only supports projects that use chromium_trybot recipe.
Supports for projects that don’t use chromium_trybot recipe could be added later, please follow crbug.com/840831.