crosvm/e2e_tests
Takaya Saeki 29ee984466 e2e_tests: Revert unnecessary version bump of anyhow/libc crates
https://crrev.com/c/5188024 bumped the version of anyhow and libc. That
broke ChromiumOS build, since we forgot to bump the versions on
ChromiumOS side. This CL fixes the build failure by reverting the
version bump. Although we also can upgrade the versions on the
ChromiumOS, they are not mandate version dump so we just revert them.

BUG=None
Test=./tools/dev_container ./tools/presubmit

Change-Id: Ie47b7219402d73493679cac3330fb958601086df
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5223988
Commit-Queue: Takaya Saeki <takayas@chromium.org>
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Commit-Queue: Dennis Kempin <denniskempin@google.com>
Auto-Submit: Takaya Saeki <takayas@chromium.org>
2024-01-23 18:43:01 +00:00
..
benches jail: Generate fresh syscall frequency table 2023-11-29 00:45:52 +00:00
fixture e2e_test: Update instructions to use locally built kernel/rootfs images 2024-01-05 04:50:21 +00:00
guest_under_test e2e_tests: Revert unnecessary version bump of anyhow/libc crates 2024-01-23 18:43:01 +00:00
tests e2e_tests: drop VM before doing a restore. 2024-01-18 22:27:59 +00:00
Cargo.toml e2e_tests: Add a helper to read guest clocks 2024-01-22 11:24:14 +00:00
README.md e2e_test: Update instructions to use locally built kernel/rootfs images 2024-01-05 04:50:21 +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_IMAGE and CROSVM_CARGO_TEST_ROOTFS_IMAGE to point to the right files and then run cargo test.

With use_local_build.sh script, e2e_tests can be executed with custom kernel/rootfs as follows:

$ cd /path/to/crosvm
$ cd e2e_tests
$ source guest_under_test/use_local_build.sh
$ cargo test

Unsetting the variables will bring back you to the original behavior.

unset CROSVM_CARGO_TEST_KERNEL_IMAGE
unset CROSVM_CARGO_TEST_ROOTFS_IMAGE

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.