@@ -65,6 +65,9 @@ or:
to run them all.
+All tests can be run using QEMU. On arm and arm64, tests can also be run using
+kvmtool.
+
By default the runner script searches for a suitable QEMU binary in the system.
To select a specific QEMU binary though, specify the QEMU=path/to/binary
environment variable:
@@ -80,10 +83,22 @@ For running tests that involve migration from one QEMU instance to another
you also need to have the "ncat" binary (from the nmap.org project) installed,
otherwise the related tests will be skipped.
+To run a test with kvmtool, please configure kvm-unit-tests accordingly first:
+
+ ./configure --arch=arm64 --target=kvmtool
+
+then run the test(s) like with QEMU above.
+
+To select a kvmtool binary, specify the KVMTOOL=path/to/binary environment
+variable. kvmtool supports only kvm as the accelerator.
+
## Running the tests with UEFI
Check [x86/efi/README.md](./x86/efi/README.md).
+On arm and arm64, this is only supported with QEMU; kvmtool cannot run the
+tests under UEFI.
+
# Tests configuration file
The test case may need specific runtime configurations, for
@@ -10,7 +10,7 @@ if [ -z "$KUT_STANDALONE" ]; then
fi
case "$TARGET" in
-qemu)
+qemu | kvmtool)
;;
*)
echo "'$TARGET' not supported"
@@ -299,7 +299,6 @@ elif [ "$arch" = "arm" ] || [ "$arch" = "arm64" ]; then
arm_uart_early_addr=0x09000000
elif [ "$target" = "kvmtool" ]; then
arm_uart_early_addr=0x1000000
- errata_force=1
else
echo "--target must be one of 'qemu' or 'kvmtool'!"
usage
@@ -110,7 +110,7 @@ while [ $# -gt 0 ]; do
done
case "$TARGET" in
-qemu)
+qemu | kvmtool)
;;
*)
echo "$0 does not support '$TARGET'"
@@ -8,7 +8,7 @@ source config.mak
source scripts/common.bash
case "$TARGET" in
-qemu)
+qemu | kvmtool)
;;
*)
echo "'$TARGET' not supported for standlone tests"
Everything is in place to run the tests using kvmtool: $ ./configure --target=kvmtool $ make clean && make $ KVMTOOL=<path/to/kvmtool> ./run_tests.sh so enable it, and remove ERRATA_FORCE=y when configuring for kvmtool, because the runner will generate and pass the correct environment to kvmtool. Missing is support for EFI tests. That's because distros don't ship a EDK2 binary compiled for kvmtool, and on top of that kvm-unit-tests as an EFI app hasn't been tested to work with kvmtool. Signed-off-by: Alexandru Elisei <alexandru.elisei@arm.com> --- Should I also revert commit 35145f140442 ("arm/arm64: kvmtool: force all tests to run") which introduced ERRATA_FORCE? I didn't do this now in case other architectures use it/planning to use it. README.md | 15 +++++++++++++++ arm/run | 2 +- configure | 1 - run_tests.sh | 2 +- scripts/mkstandalone.sh | 2 +- 5 files changed, 18 insertions(+), 4 deletions(-)