Support telemetry-based tests in Findit - support Findit required cmd flags |
||||||||||||||
Issue description
To support telemetry-based tests in Findit, test runners need to support the following cmd flags:
1. --isolated-script-test-filter=A::B::C
2. --isolated-script-test-repeat=30
a. To be consistent with currently supported test types, the exec
order should be ABCABCABC...
3. --isolated-script-test-launcher-retry-limit=0
4. --isolated-script-test-also-run-disabled-tests
⛆ |
|
|
,
Oct 10
,
Oct 10
,
Oct 10
,
Oct 10
,
Oct 10
,
Oct 10
Yes, these three wrappers for different kinds of Telemetry-based tests: https://cs.chromium.org/chromium/src/testing/scripts/run_gpu_integration_test_as_googletest.py https://cs.chromium.org/chromium/src/testing/scripts/run_telemetry_as_googletest.py https://cs.chromium.org/chromium/src/testing/scripts/run_telemetry_benchmark_as_googletest.py already support the --isolated-script-test-filter flag. I think these cover telemetry_perf_unittests, Telemetry's smoke tests, and the Chrome GPU team's tests. The other flags will have to be plumbed down and some of them (in particular --isolated-script-test-also-run-disabled-tests ) will have different handling in the different Telemetry based tests.
,
Oct 11
chanli@: how should retry-limit flag be mixed with repeat flag? e.g: if I run the test with --repeat=4, and --retry-limit=3. Assuming the test suite has two test A & B, and the run with out retry results in: A_Pass B_Pass A_Fail B_Pass A_Pass B_Pass A_Fail B_Fail What should the retry run strategy be? Should it be: [rerun A until it pass (up to 3 times)] [rerun B until it pass (up to 3 times)] [rerun A until it pass (up to 3 times)] Or should it just be: [rerun A until it pass (up to 3 times)] [rerun B until it pass (up to 3 times)] ? Dirk & Ken: thoughts?
,
Oct 11
,
Oct 11
re #9, for Findit's use case, we will always set --repeat to an integer greater than 0 and --retry-limit=0. And IIUC, In your example, it looks the strategy will look like: [rerun A until it pass (up to 3 times)] [rerun B until it pass (up to 3 times)] [rerun A until it pass (up to 3 times)] ...
,
Oct 11
Re #9:
To match the behavior of gtest, the logic is:
tests = [test1, test2, ...]
for (int i = 0; i < repeat; ++ i) {
for test in tests {
for (int j = 0; j < retry-limit; ++j) {
passed = test.run()
if (passed)
break;
}
}
}
,
Oct 11
#12: I believe most python tests only retry at the end after running through test suite once. Dirk: should we update either Python test/gtest to have the same retry behavior or we should let them diverge for now?
,
Oct 12
Actually I believe a major reason why tests should be retried at the end is that's the only sane way to ensure that tests are retried in non-parallel mode. For this reason, I think I prefer retrying the failed tests at the end of each run of the suite. Shutao: aren't gtest run in parallel?
,
Oct 15
re: #c13 - we should match the behavior (we should try to have the same behavior in all of our test suites). I think there are some test suites (layout tests, possibly gtests) that retry the tests in parallel, but I'd have to check the code to confirm.
,
Oct 15
Re #c14: gtests runs in parallel for the first-time run, but retry in serial https://cs.chromium.org/chromium/src/base/test/launcher/unit_test_launcher.cc?q=RetryTests I had bad memory on the detail. I updated the code snippet as below: tests = [test1, test2, ...] for (int i = 0; i < repeat; ++ i) { failed_tests = ["run tests in parallel, and return failed tests"] for test in failed_tests { for (int j = 0; j < retry-limit; ++j) { passed = test.run() if (passed) break; } } }
,
Oct 15
#16: so that do behave similar to typ today (except typ doesn't implement --repeat) yet :-)
,
Jan 10
,
Jan 11
This super bug is fixed now that all the blockers are resolved.
,
Jan 18
(4 days ago)
The arguments are not all working correctly in Findit. |
|||||||||||
►
Sign in to add a comment |
||||||||||||||
Comment 1 by chanli@chromium.org
, Oct 10