On Mon, Jan 20, 2025 at 04:43:16PM +0000, Alexandru Elisei wrote: > 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@xxxxxxx> > --- > > 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. We can leave ERRATA_FORCE, I use from time to time for quick testing. > > 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 > Reviewed-by: Andrew Jones <andrew.jones@xxxxxxxxx>