Arm and arm64 support running the tests under kvmtool. kvmtool has a different command line syntax for configuring and running a virtual machine, and the automated scripts know only how to use qemu.
One issue with that is even though the tests have been configured for kvmtool (with ./configure --target=kvmtool), the scripts will use qemu to run the tests, and without looking at the logs there is no indication that the tests haven't been run with kvmtool, as configured. Another issue is that kvmtool uses a different address for the UART and when running the tests with qemu via the scripts, this warning is displayed: WARNING: early print support may not work. Found uart at 0x9000000, but early base is 0x1000000. which might trip up an unsuspected user. There are four different ways to run a test using the test infrastructure: with run_tests.sh, by invoking arm/run or arm/efi/run with the correct parameters (only the arm directory is mentioned here because the tests can be configured for kvmtool only on arm and arm64), and by creating standalone tests. run_tests.sh ends up execuing either arm/run or arm/efi/run, so add a check to these two scripts for the test target, and refuse to run the test if kvm-unit-tests has been configured for kvmtool. mkstandalone.sh also executes arm/run or arm/efi run, but the usual use case for standalone tests is to compile them on one machine, and then to run them on a different machine. This two step process can be time consuming, so save the user time (and frustration!) and add a check directly to mkstandalone.sh. Signed-off-by: Alexandru Elisei <alexandru.eli...@arm.com> --- arm/efi/run | 3 +++ arm/run | 4 ++++ scripts/mkstandalone.sh | 3 +++ scripts/vmm.bash | 14 ++++++++++++++ 4 files changed, 24 insertions(+) create mode 100644 scripts/vmm.bash diff --git a/arm/efi/run b/arm/efi/run index 8f41fc02df31..53d71297cc52 100755 --- a/arm/efi/run +++ b/arm/efi/run @@ -11,6 +11,9 @@ if [ ! -f config.mak ]; then fi source config.mak source scripts/arch-run.bash +source scripts/vmm.bash + +check_vmm_supported if [ -f /usr/share/qemu-efi-aarch64/QEMU_EFI.fd ]; then DEFAULT_UEFI=/usr/share/qemu-efi-aarch64/QEMU_EFI.fd diff --git a/arm/run b/arm/run index ef58558231b7..56562ed1628f 100755 --- a/arm/run +++ b/arm/run @@ -7,7 +7,11 @@ if [ -z "$KUT_STANDALONE" ]; then fi source config.mak source scripts/arch-run.bash + source scripts/vmm.bash fi + +check_vmm_supported + qemu_cpu="$TARGET_CPU" if [ "$QEMU" ] && [ -z "$ACCEL" ] && diff --git a/scripts/mkstandalone.sh b/scripts/mkstandalone.sh index c4ba81f18935..4f666cefe076 100755 --- a/scripts/mkstandalone.sh +++ b/scripts/mkstandalone.sh @@ -6,6 +6,9 @@ if [ ! -f config.mak ]; then fi source config.mak source scripts/common.bash +source scripts/vmm.bash + +check_vmm_supported temp_file () { diff --git a/scripts/vmm.bash b/scripts/vmm.bash new file mode 100644 index 000000000000..39325858c6b3 --- /dev/null +++ b/scripts/vmm.bash @@ -0,0 +1,14 @@ +source config.mak + +function check_vmm_supported() +{ + case "$TARGET" in + qemu) + return 0 + ;; + *) + echo "$0 does not support target '$TARGET'" + exit 2 + ;; + esac +} -- 2.49.0