b83a5989d9
If crosvm fails at the early stage of setup, opening to_guest fifo blocks forever and it takes 20 seconds to timeout. Opening to_guest fifo should be wrapped by timeout as well as from_guest. Check the crosvm process status periodically to abort testing earlier. With this change, the total e2etest execution for failure case is reduced to 0.2s from 20s. There is better way without panicking on timeout; interrupt the blocked open(2) for fifo by pthread_kill(). However it is too much since this is just a test. panicking is welcome. BUG=b:293383846 TEST=./tools/run_tests2 --dut=vm -E 'rdeps(e2e_tests)' Change-Id: I8735a77201f930162113efa98d655f77be8d259d Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4721027 Reviewed-by: Dennis Kempin <denniskempin@google.com> Reviewed-by: Daniel Verkamp <dverkamp@chromium.org> Commit-Queue: Shin Kawamura <kawasin@google.com> |
||
---|---|---|
.. | ||
benches | ||
fixture | ||
guest_under_test | ||
tests | ||
Cargo.toml | ||
README.md |
Crosvm End to End Tests
These tests run a crosvm VM on the host to verify end to end behavior. They use a prebuilt guest kernel and rootfs, which is downloaded from google cloud storage.
The e2e_tests can be executed by:
$ ./tools/run_tests2 --dut=vm -E 'rdeps(e2e_tests)'
Running with locally built kernel/rootfs
If the test needs to run offline, or you want to make changes to the kernel or rootfs, you have to
specify the environment variables CROSVM_CARGO_TEST_KERNEL_BINARY
and
CROSVM_CARGO_TEST_ROOTFS_IMAGE
to point to the right files.
The use_local_build.sh script does this for you:
$ source guest_under_test/use_local_build.sh
Uploading prebuilts
Note: Only Googlers with access to the crosvm-testing cloud storage bin can upload prebuilts.
To upload the modified rootfs, you will have to uprev the PREBUILT_VERSION
variable in:
./guest_under_test/PREBUILT_VERSION
and request a permission
to become a member of the crosvm-policy-uploader
group. Then run the upload script to build and
upload the new prebuilts. Never try to modify an existing prebuilt as the new images may break
tests in older versions.