blob: b4a35b2332846e0f7ab4aa95404829141e416622 [file] [log] [blame]
#!/bin/bash
NOTFOUND=1
TESTDEVNOTSUPP=2
qemubinarysearch="${QEMU:-qemu-kvm qemu-system-x86_64}"
for qemucmd in ${qemubinarysearch}
do
unset QEMUFOUND
unset qemu
if ! [ -z "${QEMUFOUND=$(${qemucmd} --help 2>/dev/null | grep "QEMU")}" ] &&
${qemucmd} -device '?' 2>&1 | grep -F -e \"testdev\" -e \"pc-testdev\" > /dev/null;
then
qemu="${qemucmd}"
break
fi
done
if [ -z "${QEMUFOUND}" ]
then
echo "A QEMU binary was not found, You can set a custom location by using the QEMU=<path> environment variable "
exit ${NOTFOUND}
elif [ -z "${qemu}" ]
then
echo "No Qemu test device support found"
exit ${TESTDEVNOTSUPP}
fi
if
${qemu} -device '?' 2>&1 | grep -F "pci-testdev" > /dev/null;
then
pci_testdev="-device pci-testdev"
else
pci_testdev=""
fi
if
${qemu} -device '?' 2>&1 | grep -F "pc-testdev" > /dev/null;
then
pc_testdev="-device pc-testdev -device isa-debug-exit,iobase=0xf4,iosize=0x4"
else
pc_testdev="-device testdev,chardev=testlog -chardev file,id=testlog,path=msr.out"
fi
command="${qemu} -enable-kvm $pc_testdev -vnc none -serial stdio $pci_testdev -kernel"
echo ${command} "$@"
if [ "$DRYRUN" != "yes" ]; then
${command} "$@"
ret=$?
echo Return value from qemu: $ret
exit $ret
fi