]> git.proxmox.com Git - mirror_qemu.git/blame - tests/qemu-iotests/067
Merge remote-tracking branch 'remotes/qmp-unstable/queue/qmp' into staging
[mirror_qemu.git] / tests / qemu-iotests / 067
CommitLineData
a9b43397
KW
1#!/bin/bash
2#
3# Test automatic deletion of BDSes created by -drive/drive_add
4#
5# Copyright (C) 2013 Red Hat, Inc.
6#
7# This program is free software; you can redistribute it and/or modify
8# it under the terms of the GNU General Public License as published by
9# the Free Software Foundation; either version 2 of the License, or
10# (at your option) any later version.
11#
12# This program is distributed in the hope that it will be useful,
13# but WITHOUT ANY WARRANTY; without even the implied warranty of
14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15# GNU General Public License for more details.
16#
17# You should have received a copy of the GNU General Public License
18# along with this program. If not, see <http://www.gnu.org/licenses/>.
19#
20
21# creator
22owner=kwolf@redhat.com
23
24seq=`basename $0`
25echo "QA output created by $seq"
26
27here=`pwd`
28tmp=/tmp/$$
29status=1 # failure is the default!
30
31# get standard environment, filters and checks
32. ./common.rc
33. ./common.filter
34
35_supported_fmt qcow2
36_supported_proto file
37_supported_os Linux
38
39function do_run_qemu()
40{
41 echo Testing: "$@"
42 $QEMU -nographic -qmp stdio -serial none "$@"
43 echo
44}
45
46function run_qemu()
47{
64815e2a 48 do_run_qemu "$@" 2>&1 | _filter_testdir | _filter_qmp | sed -e 's/\("actual-size":\s*\)[0-9]\+/\1SIZE/g'
a9b43397
KW
49}
50
51size=128M
52
53_make_test_img $size
54
55echo
56echo === -drive/-device and device_del ===
57echo
58
59run_qemu -drive file=$TEST_IMG,format=$IMGFMT,if=none,id=disk -device virtio-blk-pci,drive=disk,id=virtio0 <<EOF
60{ "execute": "qmp_capabilities" }
61{ "execute": "query-block" }
62{ "execute": "device_del", "arguments": { "id": "virtio0" } }
63{ "execute": "system_reset" }
64{ "execute": "query-block" }
65{ "execute": "quit" }
66EOF
67
68echo
69echo === -drive/device_add and device_del ===
70echo
71
72run_qemu -drive file=$TEST_IMG,format=$IMGFMT,if=none,id=disk <<EOF
73{ "execute": "qmp_capabilities" }
74{ "execute": "query-block" }
75{ "execute": "device_add",
76 "arguments": { "driver": "virtio-blk-pci", "drive": "disk",
77 "id": "virtio0" } }
78{ "execute": "device_del", "arguments": { "id": "virtio0" } }
79{ "execute": "system_reset" }
80{ "execute": "query-block" }
81{ "execute": "quit" }
82EOF
83
84echo
85echo === drive_add/device_add and device_del ===
86echo
87
88run_qemu <<EOF
89{ "execute": "qmp_capabilities" }
90{ "execute": "human-monitor-command",
91 "arguments": { "command-line": "drive_add 0 file=$TEST_IMG,format=$IMGFMT,if=none,id=disk" } }
92{ "execute": "query-block" }
93{ "execute": "device_add",
94 "arguments": { "driver": "virtio-blk-pci", "drive": "disk",
95 "id": "virtio0" } }
96{ "execute": "device_del", "arguments": { "id": "virtio0" } }
97{ "execute": "system_reset" }
98{ "execute": "query-block" }
99{ "execute": "quit" }
100EOF
101
102echo
103echo === blockdev_add/device_add and device_del ===
104echo
105
106run_qemu <<EOF
107{ "execute": "qmp_capabilities" }
108{ "execute": "blockdev-add",
109 "arguments": {
110 "options": {
111 "driver": "$IMGFMT",
112 "id": "disk",
113 "file": {
114 "driver": "file",
115 "filename": "$TEST_IMG"
116 }
117 }
118 }
119 }
120{ "execute": "query-block" }
121{ "execute": "device_add",
122 "arguments": { "driver": "virtio-blk-pci", "drive": "disk",
123 "id": "virtio0" } }
124{ "execute": "device_del", "arguments": { "id": "virtio0" } }
125{ "execute": "system_reset" }
126{ "execute": "query-block" }
127{ "execute": "quit" }
128EOF
129
130# success, all done
131echo "*** done"
132rm -f $seq.full
133status=0