crosvm/e2e_tests
A. Cody Schuffelen 4748c54b95 Rename "unix" to "linux" in code and docs
$ for DIR in $(find . -name "unix"); do mv $DIR $(echo $DIR | sed "s/unix/linux/"); done
$ for FILE in $(find . -name "unix.rs"); do mv $FILE $(echo $FILE | sed "s/unix/linux/"); done
$ find . -type f -not -path '*/\.git/*' | xargs -I {} sed -E -i "s/mod unix/mod linux/g" {}
$ find . -type f -not -path '*/\.git/*' -not -path '*/third_party/perfetto/*' | xargs -I {} sed -E -i "s/([^o][^s])::unix/\1::linux/g" {}
$ find . -type f -not -path '*/\.git/*' | xargs -I {} sed -E -i "s/use unix::/use linux::/g" {}
$ find . -type f -not -path '*/\.git/*' -not -path '*/third_party/perfetto/*' | xargs -I {} sed -E -i "s/sys::unix/sys::linux/g" {}
$ find . -type f -not -path '*/\.git/*' | xargs -I {} sed -E -i "s/use unix as platform/use linux as platform/g" {}

Test: ./tools/dev_container ./tools/presubmit
Bug: b/298269162
Change-Id: I2c8acb14d77a5588dab4eae124f4a9afbb9025f5
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4909060
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Vikram Auradkar <auradkar@google.com>
Commit-Queue: Cody Schuffelen <schuffelen@google.com>
Reviewed-by: Frederick Mayle <fmayle@google.com>
2023-10-11 01:15:07 +00:00
..
benches e2e_tests: Add postgres benchmark 2023-09-20 19:00:15 +00:00
fixture Rename "unix" to "linux" in code and docs 2023-10-11 01:15:07 +00:00
guest_under_test Replace #[cfg(unix)] with #[cfg(any(target_os = "android", target_os = "linux"))] 2023-10-11 00:43:29 +00:00
tests Rename "unix" to "linux" in code and docs 2023-10-11 01:15:07 +00:00
Cargo.toml e2e_tests: add e2etests for vmm-swap 2023-09-15 08:00:05 +00:00
README.md e2e_tests: Document on qemu-user-static for upload_prebuilts.sh 2023-09-27 03:12:17 +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_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.

# 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.