[kvm-unit-tests PATCH v2 18/18] run_tests: Enable kvmtool
Alexandru Elisei
alexandru.elisei at arm.com
Tue Jan 21 03:43:16 AEDT 2025
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 at 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(-)
diff --git a/README.md b/README.md
index be07dc28a094..5e7706f02553 100644
--- a/README.md
+++ b/README.md
@@ -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
diff --git a/arm/run b/arm/run
index 880d5afae86d..438a2617e564 100755
--- a/arm/run
+++ b/arm/run
@@ -10,7 +10,7 @@ if [ -z "$KUT_STANDALONE" ]; then
fi
case "$TARGET" in
-qemu)
+qemu | kvmtool)
;;
*)
echo "'$TARGET' not supported"
diff --git a/configure b/configure
index 86cf1da36467..17d3d931f2c0 100755
--- a/configure
+++ b/configure
@@ -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
diff --git a/run_tests.sh b/run_tests.sh
index d38954be9093..3921dcdcb344 100755
--- a/run_tests.sh
+++ b/run_tests.sh
@@ -110,7 +110,7 @@ while [ $# -gt 0 ]; do
done
case "$TARGET" in
-qemu)
+qemu | kvmtool)
;;
*)
echo "$0 does not support '$TARGET'"
diff --git a/scripts/mkstandalone.sh b/scripts/mkstandalone.sh
index 10abb5e191b7..16383b05adfa 100755
--- a/scripts/mkstandalone.sh
+++ b/scripts/mkstandalone.sh
@@ -8,7 +8,7 @@ source config.mak
source scripts/common.bash
case "$TARGET" in
-qemu)
+qemu | kvmtool)
;;
*)
echo "'$TARGET' not supported for standlone tests"
--
2.47.1
More information about the Linuxppc-dev
mailing list