From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:47543) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RlhUu-00046T-3B for qemu-devel@nongnu.org; Fri, 13 Jan 2012 08:48:51 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RlhUk-0004Ui-FQ for qemu-devel@nongnu.org; Fri, 13 Jan 2012 08:48:48 -0500 Received: from e8.ny.us.ibm.com ([32.97.182.138]:57733) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RlhUk-0004Sl-4r for qemu-devel@nongnu.org; Fri, 13 Jan 2012 08:48:38 -0500 Received: from /spool/local by e8.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Fri, 13 Jan 2012 08:48:37 -0500 Received: from d01av02.pok.ibm.com (d01av02.pok.ibm.com [9.56.224.216]) by d01relay04.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id q0DDlvWb325620 for ; Fri, 13 Jan 2012 08:47:57 -0500 Received: from d01av02.pok.ibm.com (loopback [127.0.0.1]) by d01av02.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id q0DDlvIk003010 for ; Fri, 13 Jan 2012 11:47:57 -0200 From: Anthony Liguori Date: Fri, 13 Jan 2012 07:47:51 -0600 Message-Id: <1326462471-8323-1-git-send-email-aliguori@us.ibm.com> Subject: [Qemu-devel] [PATCH] qemu-test: add device-del test case List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Anthony Liguori Signed-off-by: Anthony Liguori --- tests/device-del.sh | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 91 insertions(+), 0 deletions(-) create mode 100755 tests/device-del.sh diff --git a/tests/device-del.sh b/tests/device-del.sh new file mode 100755 index 0000000..3af4e2f --- /dev/null +++ b/tests/device-del.sh @@ -0,0 +1,91 @@ +#!/bin/sh + +canary="** waiting for hotplug **" +canary2="** waiting for remove **" + +in_host() { + tmpdisk=$tmpdir/disk.img + + # make sure to test various of -device, anonymous, and named + extra_arg=`choose "-device virtio-balloon-pci" "-device virtio-balloon-pci,id=balloon0" none` + + if test "$extra_arg" = "none"; then + extra_arg="" + fi + + qemu-img create -f qcow2 $tmpdisk 10G + + start_qemu -nographic -enable-kvm $extra_arg + + while qemu_is_okay; do + if grep "$canary" $tmplog >/dev/null; then + out=`hmp drive_add auto file=$tmpdisk,if=none,id=hd0` + if test $(echo "$out") != "OK"; then + echo "drive_add failed!" + echo "$out" + rm $tmpdisk + kill $pid + return 1 + fi + + qmp device_add --driver=virtio-blk-pci --drive=hd0 --id=hd0 + rc=$? + if test $rc != 0; then + echo "device_add failed!" + rm $tmpdisk + kill $pid + return 1 + fi + + echo "** waiting for guest to see device **" + + while qemu_is_okay; do + if grep "$canary2" $tmplog >/dev/null; then + qmp device_del --id=hd0 + rc=$? + if test $rc != 0; then + echo "device_del failed!" + rm $tmpdisk + kill $pid + return 1 + fi + + while qemu_is_okay; do + sleep 1 + done + + break + fi + sleep 1 + done + + break + fi + sleep 1 + done + + get_qemu_status + rc=$? + + rm -f $tmpdisk + + return $rc +} + +in_guest() { + echo + echo "$canary" + while ! grep vda /proc/partitions >/dev/null; do + sleep 1 + done + echo "$canary2" + while grep vda /proc/partitions >/dev/null; do + sleep 1 + done +} + +if test $QEMU_TEST; then + in_host +else + in_guest +fi -- 1.7.4.1