Currently, the official way to write and run Tast tests from workstation is to use the ChromeOS Chroot, which needs chromiumos repository setup. Here are reference documents:
Checking out the ChromiumOS repo and create a chroot
If you don’t have a chromiumos repo already, it’s worth noting that it will take at least a few hours to get one set up for the first time.
Example command to run the tast test in Chroot:
(chroot)% tast run ${your-device-ip}:${port} lacros.Basic
By default, the test will use the RootFS Lacros that is packaged as part of the ChromeOS image, to test a newly built Lacros, first deploy the Lacros to the DUT:
./third_party/chromite/bin/deploy_chrome --build-dir=out_device_lacros/Release \
--device="${your-device-ip}:${port}" --nostrip --lacros
And then invoke tast command with a var:
(chroot)% tast run -var=lacros.DeployedBinary=/usr/local/lacros-chrome
${your-device-ip}:${port} lacros.Basic
If you don’t need to write or modify Tast tests, and just want to run them to check if your change works with the current Tast tests, the quickest way is to trigger the Chromium bots: lacros-amd64-generic-rel. Compared to 1 above, it is very easy for those who do not have a ChromiumOS checkout locally. However, it only supports running pre-built tests, so there’s no flexibility for modifying or debugging the tests themselves, so If you hit any unexpected issues, please fallback to using the Chrome OS chroot workflow described above.
One can also reproduce the 2nd workflow locally with the following steps:
First of all, build the lacros_all_tast_tests test target
autoninja -C out_device_lacros/Release/ lacros_all_tast_tests
Confirm that the build successfully generated a test runner script
ls out_device_lacros/Release/bin/run_lacros_all_tast_tests
Run tast test on the DUT
./out_device_lacros/Release/bin/run_lacros_all_tast_tests --board=${board} \
--device="${your-device-ip}:${port}" --logs-dir ~/test/logs
For how to set up a DUT, please see Build DUT Lacros. If you don’t have a physical device, you can use a VM with the following command:
./out_device_lacros/Release/bin/run_lacros_all_tast_tests –board=amd64-generic \
–use-vm --logs-dir ~/test/logs
Run unit tests on DUT
It’s almost identical to the Chromium-style GN/Ninja approach for running Tast tests. Take cc_unittests for example:
First of all, build the cc_unittests test target
autoninja -C out_device_lacros/Release/ cc_unittests
Confirm that the build successfully generated a test runner script
ls out_device_lacros/Release/bin/run_cc_unittests
(Internal only)go/lacros-tast-porting
(Internal only)go/tast-failures, go/tast-debugging-guide Investigate test failures or debug.