1# Chrome OS Debugging Instructions
2Chrome on Chrome OS is tested using a handful of frameworks, each of which
3you'll find running on Chrome's CQ and waterfalls. If you're investigating
4failures in these tests, below are some tips for debugging and identifying the
5cause.
6
7*** note
8
9This doc outlines tests running in true Chrome OS environments (ie: on virtual
10machines or real devices). [linux-chromeos] tests, on the other hand, can be
11debugged like any other linux test.
12***
13
14## Tast
15
16[Tast] is Chrome OS's integration testing framework. Since Chrome itself is
17instrumental to the Chrome OS system, it's equally important that we run some
18of these integration tests on Chrome's waterfalls. If you find one of these
19tests failing (likely in the `chrome_all_tast_tests` step), you can:
20
21- **Inspect the failed test's log snippet**: There should be a log link for
22each failed test with failure information. eg: For this [failed build], opening
23the [platform.Histograms] log link contains stack traces and error messages.
24
25- **View browser & system logs**: A common cause of failure on Chrome's builders
26are browser crashes. When this happens, each test's log snippets will simply
27contain warnings like "[Chrome probably crashed]". To debug these crashes,
28navigate to the test's Isolated output, most likely listed in the build under
29the test step's [shard #0 isolated out] link. From there, view the various
30`log/chrome/...` or `log/ui/...` text files and you should find some with
31browser [crashes and stack traces].
32
33To disable a test on Chrome's builders, the preferred method is to add the
34`informational` attribute to the test's definition (see [Tast attributes] for
35more info). Note that this requires a full Chrome OS checkout. If that's not an
36option, or if it needs to be disabled ASAP, you can add it to the list of
37disabled tests for the step's GN target. For example, to disable a test in the
38`chrome_all_tast_tests` step, add it to [this list].
39
40## Telemetry
41
42>TODO: Add instructions for debugging telemetry failures.
43
44## GTest
45
46>TODO: Add instructions for debugging GTest failures.
47
48## Rerunning these tests locally
49
50>TODO: Add instructions for rerunning these tests locally.
51
52
53[linux-chromeos]: https://chromium.googlesource.com/chromium/src/+/master/docs/chromeos_build_instructions.md
54[Tast]: https://chromium.googlesource.com/chromiumos/platform/tast/+/HEAD/README.md
55[failed build]: https://ci.chromium.org/p/chromium/builders/ci/chromeos-kevin-rel/14102
56[platform.Histograms]: https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket.appspot.com/8904949911599004400/+/steps/chrome_all_tast_tests_on_ChromeOS/0/logs/Deterministic_failure:_platform.Histograms__status_FAILURE_/0
57[Chrome probably crashed]: https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket.appspot.com/8905974915785988832/+/steps/chrome_all_tast_tests__retry_shards_with_patch__on_ChromeOS/0/logs/Deterministic_failure:_ui.ChromeLogin__status_FAILURE_/0
58[shard #0 isolated out]: https://isolateserver.appspot.com/browse?namespace=default-gzip&hash=fd1f6d76b076f07cc98fa7b2e0c0097f35c51cd0
59[crashes and stack traces]: https://isolateserver.appspot.com/browse?namespace=default-gzip&digest=993d58ff48bb08071d951bd8e103fa5a3c03efb1&as=chrome_20190805-044653
60[Tast attributes]: https://chromium.googlesource.com/chromiumos/platform/tast/+/HEAD/docs/test_attributes.md
61[this list]: https://codesearch.chromium.org/chromium/src/chromeos/BUILD.gn?rcl=7b0393a9091fd02edc9ae773739124f7be5a0782&l=242
62