Hello friends of crosvm,
It’s been a while and we have made a lot of improvements to code / test health and crosvm infrastructure:
There is a new test runner at tools/run_tests2, which is a lot faster now and has a modernized interface thanks to cargo nextest. It will replace the existing run_tests script soon.
Binary size changes are now reported to gerrit (Thank you Zihan)
Clippy is now checked on all platforms in CI (and can be checked locally with tools/clippy –platform aarch64/etc)
Crosvm tests have been cleaned up to work with plain old cargo test in most situations.
This includes a split between unit and integration tests. See Testing in the crosvm book.
Almost all code in crosvm is now compiled in CI (with a few stubs for downstream-specific features)
Our number of e2e tests is growing (Thank you Keiichi, Ryuichiro, Elie, Frederick)
ChromeOS was the driver of bazel migration for crosvm, but has shifted priorities.
Hence, bazel migration is a bit up in the air and put on hold for now.
An updated roadmap of upcoming infra projects and changes:
Allows developers to run integration tests reliably on remote machines
“Remote” machines can be a local VM or leased devices from Luci
Provide dashboards and infrastructure for tracking metrics over time
Improve out of the box cargo workflows and defaults
Developers can check out, develop, test and submit changes from github codespaces
Upstream tooling for building with PGO and generating profiles
Optimized seccomp filters based on key user journeys
PGO optimized binaries can be produced upstream