This prevents us from using an older version of the image if a newer
version is specified.
BUG=b:269137600
TEST=run_tests
Change-Id: I9962feebb13c69b9fb9c5fb0fba64f265d46d08e
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4277626
Commit-Queue: Dennis Kempin <denniskempin@google.com>
Auto-Submit: Dennis Kempin <denniskempin@google.com>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
If crosvm launches quickly after starting the backend, it may
find that the device socket does not exist yet. This causes
occasional test failures.
Adding a sleep stabilizes the test a little, but should be replaced
with a proper wait loop while checking for the device socket to
become available.
BUG=b:269174700
TEST=./tools/run_tests --dut=host -E"package(e2e_tests)" \
--no-unit-tests --repetitions 10
Change-Id: Ifaba81a5fb3628d07793b1310229de4a43d2a7b6
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4258306
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Commit-Queue: Dennis Kempin <denniskempin@google.com>
Reviewed-by: Alexandre Courbot <acourbot@chromium.org>
This was useful since the libtest harness could not capture stdout
for subprocesses and we would get very noisy test results.
However, with nextest, each test is run in a separate process and
will be hidden unless the test fails.
The test log will then contain an host and guest messages interleaved,
which greatly helps debugging.
Also switches the main serial output from syslog (which prints to
stderr) to stdout.
BUG=None
TEST=None
Change-Id: Ie3b377aeaef3ef575f9232430ac7392c83060d98
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4256511
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
This is a refactoring that adds the following functionality to
exec_in_guest:
- Receive exit codes from executed commands and by default check
if they are zero.
- Add timeouts to all communication with the guest
- Allow commands to be executed asynchronously, to allow the test
code to perform actions while the guest command is running.
- Add anyhow error handling with contexts for more helpful error
messages
BUG=b:269137600
BUG=b:268539201
Change-Id: Ic069c3ccae363790a124db10a0db76e4ad4384c3
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4251717
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Reviewed-by: Zihan Chen <zihanchen@google.com>
They are flaky and that is expected since the feature is incomplete.
BUG=b:269174979
Change-Id: I929e822b7f81742a5dba0fef637d6143f18302b1
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4256510
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Reviewed-by: Elie Kheirallah <khei@google.com>
Commit-Queue: Frederick Mayle <fmayle@google.com>
The previous command line interface had two top-level commands related
to snapshots, each with only one subcommand:
- crosvm snapshot take <snapshot-path> <control-socket>
- crosvm restore apply <snapshot-path> <control-socket>
This patch moves the `restore apply` command under `snapshot` to make it
easier to find and less redundant to have two levels of commands:
- crosvm snapshot take <snapshot-path> <control-socket>
- crosvm snapshot restore <snapshot-path> <control-socket>
The restore command is also more discoverable since it is listed in the
help for the snapshot command.
BUG=b:232437513
TEST=crosvm snapshot take /tmp/snapshot /tmp/crosvm
TEST=crosvm snapshot restore /tmp/snapshot /tmp/crosvm
TEST=cargo test -p e2e_tests suspend_resume -- --test-threads=1
Change-Id: I9c3c8662fba7631327829a118f6b53b297b2d806
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4227254
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Elie Kheirallah <khei@google.com>
Reviewed-by: Dennis Kempin <denniskempin@google.com>
- Rust toolchain is updated to 1.65.0
- Catapult dashboard upload tool is added to dev_container
- Bindgen is updated to latest version to support custom derive
- Derive Eq when PartialEq is derived as required by new Clippy
TEST=CQ, bindgen-all-the-things
FIXED=b:260784028
BUG=b:257303497
Change-Id: I2034cd09e0aed84d4e9b30f2e85d84d94a442ea4
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4228427
Auto-Submit: Zihan Chen <zihanchen@google.com>
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Commit-Queue: Zihan Chen <zihanchen@google.com>
This helps identify a potential deadlock by the NamedLock.
BUG=None
TEST=CQ
Change-Id: I0ef9606b6b5e36a1564ff3fee7720ae013365cc7
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4228215
Reviewed-by: Vikram Auradkar <auradkar@google.com>
Commit-Queue: Dennis Kempin <denniskempin@google.com>
`crosvm snapshot take ...` will write the contents of guest memory to a
file and `crosvm restore apply ...` will read that file to overwrite
guest memory.
To start with, the file is chosen by adding a ".mem" extension to the
snapshot file path. We should consider a better approach in the future,
maybe put them both in a tar file or have the user supply a directory
instead of a file path.
BUG=b:266514791
Change-Id: Ic05f94223fb74674bd57dcd2f848055b31eb5fdc
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4215313
Reviewed-by: Elie Kheirallah <khei@google.com>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Noah Gold <nkgold@google.com>
Commit-Queue: Frederick Mayle <fmayle@google.com>
Add snapshot/restore tests for the VM.
This test currently suspends the VM, then sends a command to it.
This command is stored in the buffer of the serial device.
A snapshot is taken with the command stored.
The device is resumed, which then runs the command.
A restore is triggered using the image taken earlier, which then runs
the image again.
This test will be developed to include more VM changes as more devices
get snapshot.
Bug=b:232437513
Test=./tools/dev_container e2e_tests/run
Change-Id: If6b39bd9b0f1d2962748cf089959f57f65407ced
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3949685
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Commit-Queue: Elie Kheirallah <khei@google.com>
Reviewed-by: Frederick Mayle <fmayle@google.com>
Add disable_sandbox function to add `disable-sandbox` argument to the
config.
Add disable-sandbox test to all existing e2e_tests.
BUG=None
TEST=./tools/presubmit --all
Change-Id: I4ee00402c7220dffbce57a68670b6ae3c2b95d5f
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4165873
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Commit-Queue: Elie Kheirallah <khei@google.com>
BUG=b:264555939
TEST= ran the script on a non-crop windows machine
Change-Id: Ib615b45137f5da73be511d29f6655946d78455fe
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4149727
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Commit-Queue: Vikram Auradkar <auradkar@google.com>
These should be written as ChromeOS and ChromiumOS (without the space)
to match the updated branding. The copyright headers were already
migrated to the new style (https://crrev.com/c/3894243), but there were
some more instances left over.
BUG=None
TEST=tools/cargo-doc
Change-Id: I8c76aea2eb33b2e370ab71ee9b5cc0a4cfd00585
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4129934
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
Two small tweaks:
- The original check had a typo ('features' vs. 'feature').
- Use the cfg! macro to simplify the code (cfg_if! is not needed here).
BUG=None
TEST=tools/presubmit --all
TEST=crosvm CQ
Change-Id: Icf84c24cb7f34bf4629e99ee1d7d33676e7ae8c1
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4126555
Auto-Submit: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Alexandre Courbot <acourbot@chromium.org>
Reviewed-by: Alexandre Courbot <acourbot@chromium.org>
The windows code is build only for now because
- crosvm upstream windows code needs some changes to be runnable
- LUCI windows infra is not ready for nested vm
BUG=b:253498690
TEST=ran `cargo t --features all-msvc64 -p e2e_tests` downstream
Change-Id: I318f6f17fc91bc76cfd28741a526193362ab4e50
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4096606
Commit-Queue: Vikram Auradkar <auradkar@google.com>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
To prepare adding more fixtures such as logic for vhost-user device,
move the existing code to create a VM to a separate module.
Specifically, move the all code in e2e_tests/tests/fixture/mod.rs into
e2e_tests/tests/fixture/vm.rs.
BUG=b:243127910
TEST=./e2e_tests/run
Change-Id: I23e6e5db35ce09b5003f37a9a44f9fda8f502809
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4028760
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Alexandre Courbot <acourbot@chromium.org>
Commit-Queue: Keiichi Watanabe <keiichiw@chromium.org>
This is a shorter and more explicit name, and is also what qemu uses for
the same parameter.
Since this is a positional argument, it doesn't affect command-line
argument handling, only the (currently unused) configuration files.
BUG=b:255223604
TEST=None
Change-Id: Ice01335a690550e5afd05b93c6c968b0d0859f32
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4044726
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Commit-Queue: Alexandre Courbot <acourbot@chromium.org>
The rule for crosvm options is that they should be specified in
kebab-case. Switch the disk options to that format, while also keeping
camel_case aliases for compatibility.
BUG=b:255223604
TEST=--block option works with both block-size and block_size
parameters.
TEST=cargo test -p devices block::tests::params_from_key_values
TEST=cargo test -p e2e_tests boot_test_vm
Change-Id: Ie095565ca4b27d59ed86ddc0613419e45749b3fa
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4040818
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Alexandre Courbot <acourbot@chromium.org>
Add `boot_test_vm_config_file`, which boots a VM similar to
`boot_test_vm`, but using a configuration file instead of command-line
options wherever possible.
BUG=b:218223240
TEST=cargo test -p e2e_tests boot_test_vm
Change-Id: I45f82bfa8201776081e18c50011d928d8c7be0f0
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4022749
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Commit-Queue: Alexandre Courbot <acourbot@chromium.org>
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Block resize failed in my cloudtop after uprev, it works fine
when tested manually (with same kernel and rootfs). Adding a delay
fixed it.
TEST=./e2e_tests/run
FIXED=b:259160336
Change-Id: I2cfb4fbc491b39b721b0358181cad2ee75398adc
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4026591
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Auto-Submit: Zihan Chen <zihanchen@google.com>
Commit-Queue: Zihan Chen <zihanchen@google.com>
Using a fixed CID may cause conflict with another guest easily.
Change to use a random CID for a test VM.
BUG=b:258072662
TEST=`./tools/presubmit`
Change-Id: I1f3bab8bd64664b1b2feb480a6d0e285ea4099bb
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4012278
Commit-Queue: Ryuichiro Chiba <chibar@chromium.org>
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Add a tool used in vsock tests to dev_container and guest rootfs
BUG=b:254375643
TEST=`./tools/presubmit` with the new guest rootfs on the new
dev_container
Change-Id: I135e6d2d413bedffef0fd69edd4ab14080429e3a
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3974349
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Reviewed-by: Takaya Saeki <takayas@chromium.org>
Commit-Queue: Ryuichiro Chiba <chibar@chromium.org>
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
We no longer need to use the ChromeOS infra for storing the prebuilts
and have updated all other references already. This one was missed.
BUG=None
TEST=run_tests
Change-Id: Ie8ee25d731591c78e3b49ad0dadbed87aaafdf49
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4005658
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Auto-Submit: Dennis Kempin <denniskempin@google.com>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
Cargo already uses the term 'integration test' for tests living
in the tests/ directory of a crate.
To prevent confusion, rename our 'integration_tests' crate to
'e2e_tests'.
BUG=None
TEST=presubmit
Change-Id: Icfa819eaed08be54ab0f36092f1ba367f3f1ce88
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4004977
Commit-Queue: Dennis Kempin <denniskempin@google.com>
Reviewed-by: Zihan Chen <zihanchen@google.com>