xref: /kvm-unit-tests/arm/run (revision b6f901ce6bde401f62a6694c3a71cca0bbd08843)
15e61cba0SAndrew Jones#!/bin/bash
25e61cba0SAndrew Jones
35e61cba0SAndrew Jonesif [ ! -f config.mak ]; then
45e61cba0SAndrew Jones	echo run ./configure first. See ./configure -h
55e61cba0SAndrew Jones	exit 2
65e61cba0SAndrew Jonesfi
75e61cba0SAndrew Jonessource config.mak
85e61cba0SAndrew Jones
95e61cba0SAndrew Jonesqemu="${QEMU:-qemu-system-arm}"
105e61cba0SAndrew Jonesqpath=$(which $qemu 2>/dev/null)
115e61cba0SAndrew Jones
125e61cba0SAndrew Jonesif [ -z "$qpath" ]; then
135e61cba0SAndrew Jones	echo $qemu not found.
145e61cba0SAndrew Jones	exit 2
155e61cba0SAndrew Jonesfi
165e61cba0SAndrew Jones
175e61cba0SAndrew Jonesif ! $qemu -machine '?' 2>&1 | grep 'ARM Virtual Machine' > /dev/null; then
185e61cba0SAndrew Jones	echo "$qpath doesn't support mach-virt ('-machine virt'). Exiting."
195e61cba0SAndrew Jones	exit 2
205e61cba0SAndrew Jonesfi
215e61cba0SAndrew Jones
225e61cba0SAndrew JonesM='-machine virt'
235e61cba0SAndrew Jones
245e61cba0SAndrew Jonesif ! $qemu $M -device '?' 2>&1 | grep virtconsole > /dev/null; then
255e61cba0SAndrew Jones	echo "$qpath doesn't support virtio-console for chr-testdev. Exiting."
265e61cba0SAndrew Jones	exit 2
275e61cba0SAndrew Jonesfi
285e61cba0SAndrew Jones
29*b6f901ceSAndrew Jonesif $qemu $M -chardev testdev,id=id -initrd . 2>&1 \
305e61cba0SAndrew Jones		| grep backend > /dev/null; then
315e61cba0SAndrew Jones	echo "$qpath doesn't support chr-testdev. Exiting."
325e61cba0SAndrew Jones	exit 2
335e61cba0SAndrew Jonesfi
345e61cba0SAndrew Jones
355e61cba0SAndrew JonesM='-machine virt,accel=kvm:tcg'
365e61cba0SAndrew Joneschr_testdev='-device virtio-serial-device'
375e61cba0SAndrew Joneschr_testdev+=' -device virtconsole,chardev=ctd -chardev testdev,id=ctd'
385e61cba0SAndrew Jones
395e61cba0SAndrew Jonescommand="$qemu $M -cpu $PROCESSOR $chr_testdev"
405e61cba0SAndrew Jonescommand+=" -display none -serial stdio -kernel"
415e61cba0SAndrew Jones
425e61cba0SAndrew Jonesecho $command "$@"
435e61cba0SAndrew Jones$command "$@"
445e61cba0SAndrew Jonesret=$?
455e61cba0SAndrew Jonesecho Return value from qemu: $ret
465e61cba0SAndrew Jonesexit $ret
47