xref: /kvm-unit-tests/riscv/run (revision 61ff990187ed8d2f29b648609f1b4e5791366600)
1#!/usr/bin/env bash
2
3if [ -z "$KUT_STANDALONE" ]; then
4	if [ ! -f config.mak ]; then
5		echo "run ./configure && make first. See ./configure -h"
6		exit 2
7	fi
8	source config.mak
9	source scripts/arch-run.bash
10	source scripts/vmm.bash
11fi
12
13# Allow user overrides of some config.mak variables
14mach=$MACHINE_OVERRIDE
15qemu_cpu=$TARGET_CPU_OVERRIDE
16firmware=$FIRMWARE_OVERRIDE
17
18: "${mach:=virt}"
19: "${qemu_cpu:=$TARGET_CPU}"
20: "${qemu_cpu:=$DEFAULT_QEMU_CPU}"
21: "${firmware:=$FIRMWARE}"
22[ "$firmware" ] && firmware="-bios $firmware"
23
24set_qemu_accelerator || exit $?
25[ "$ACCEL" = "kvm" ] && QEMU_ARCH=$HOST
26acc="-accel $ACCEL$ACCEL_PROPS"
27
28qemu=$(search_qemu_binary) || exit $?
29if [ "$mach" = 'virt' ] && ! $qemu -machine '?' | grep -q 'RISC-V VirtIO board'; then
30	echo "$qemu doesn't support mach-virt ('-machine virt'). Exiting."
31	exit 2
32fi
33mach="-machine $mach"
34
35command="$qemu -nodefaults -nographic -serial mon:stdio"
36command+=" $mach $acc $firmware -cpu $qemu_cpu "
37command="$(migration_cmd) $(timeout_cmd) $command"
38
39if [ "$UEFI_SHELL_RUN" = "y" ]; then
40	ENVIRON_DEFAULT=n run_test_status $command "$@"
41else
42	# We return the exit code via stdout, not via the QEMU return code
43	run_test_status $command -kernel "$@"
44fi
45