crosvm/e2e_tests
Dennis Kempin 4cba337895 e2e_tests: Clarify documentation on running modified guest
The process only works with cargo test. Not with run_tests.

BUG=b:301351266
TEST=None

Change-Id: Iaf20c01e32746d263dab297b2f13adea568e1b98
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5123311
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Dennis Kempin <denniskempin@google.com>
2023-12-14 23:22:36 +00:00
..
benches jail: Generate fresh syscall frequency table 2023-11-29 00:45:52 +00:00
fixture clippy: enforce safety block comments 2023-12-14 18:21:54 +00:00
guest_under_test e2e_tests/benches: Add gimp benchmark for disk performance 2023-11-14 18:37:11 +00:00
tests clippy: enforce safety block comments 2023-12-14 18:21:54 +00:00
Cargo.toml net_util, devices: refactor platform-specific net code 2023-11-27 19:23:56 +00:00
README.md e2e_tests: Clarify documentation on running modified guest 2023-12-14 23:22:36 +00:00

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_tests --dut=vm -E 'rdeps(e2e_tests)'

Running with locally built kernel/rootfs

If 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 and then run cargo test.

The use_local_build.sh script does this for you:

$ source guest_under_test/use_local_build.sh
$ cargo test

Note: The custom images cannot be used with tools/run_tests.

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.

# Install QEMU-user-static to build aarch64 images
$ sudo apt install binfmt-support qemu-user-static
# Register binfmt_misc entries
$ docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
# Build and upload the new artifacts
$ ./guest_under_test/upload_prebuilts.sh

Never try to modify an existing prebuilt as the new images may break tests in older versions.