root / tests / qemu-iotests / 051 @ 47e5df21
History | View | Annotate | Download (4.3 kB)
1 |
#!/bin/bash |
---|---|
2 |
# |
3 |
# Test command line configuration of block devices and driver-specific options |
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 |
22 |
owner=kwolf@redhat.com |
23 |
|
24 |
seq=`basename $0` |
25 |
echo "QA output created by $seq" |
26 |
|
27 |
here=`pwd` |
28 |
tmp=/tmp/$$ |
29 |
status=1 # failure is the default! |
30 |
|
31 |
_cleanup() |
32 |
{ |
33 |
_cleanup_test_img |
34 |
} |
35 |
trap "_cleanup; exit \$status" 0 1 2 3 15 |
36 |
|
37 |
# get standard environment, filters and checks |
38 |
. ./common.rc |
39 |
. ./common.filter |
40 |
|
41 |
_supported_fmt qcow2 |
42 |
_supported_proto file |
43 |
_supported_os Linux |
44 |
|
45 |
function do_run_qemu() |
46 |
{ |
47 |
echo Testing: "$@" |
48 |
echo quit | $QEMU -nographic -monitor stdio -serial none "$@" |
49 |
echo |
50 |
} |
51 |
|
52 |
function run_qemu() |
53 |
{ |
54 |
do_run_qemu "$@" 2>&1 | _filter_testdir |
55 |
} |
56 |
|
57 |
size=128M |
58 |
|
59 |
_make_test_img $size |
60 |
|
61 |
echo |
62 |
echo === Unknown option === |
63 |
echo |
64 |
|
65 |
run_qemu -drive file=$TEST_IMG,format=qcow2,unknown_opt= |
66 |
run_qemu -drive file=$TEST_IMG,format=qcow2,unknown_opt=on |
67 |
run_qemu -drive file=$TEST_IMG,format=qcow2,unknown_opt=1234 |
68 |
run_qemu -drive file=$TEST_IMG,format=qcow2,unknown_opt=foo |
69 |
|
70 |
|
71 |
echo |
72 |
echo === Enable and disable lazy refcounting on the command line, plus some invalid values === |
73 |
echo |
74 |
|
75 |
run_qemu -drive file=$TEST_IMG,format=qcow2,lazy_refcounts=on |
76 |
run_qemu -drive file=$TEST_IMG,format=qcow2,lazy_refcounts=off |
77 |
run_qemu -drive file=$TEST_IMG,format=qcow2,lazy_refcounts= |
78 |
run_qemu -drive file=$TEST_IMG,format=qcow2,lazy_refcounts=42 |
79 |
run_qemu -drive file=$TEST_IMG,format=qcow2,lazy_refcounts=foo |
80 |
|
81 |
|
82 |
echo |
83 |
echo === With version 2 images enabling lazy refcounts must fail === |
84 |
echo |
85 |
|
86 |
_make_test_img -ocompat=0.10 $size |
87 |
|
88 |
run_qemu -drive file=$TEST_IMG,format=qcow2,lazy_refcounts=on |
89 |
run_qemu -drive file=$TEST_IMG,format=qcow2,lazy_refcounts=off |
90 |
|
91 |
echo |
92 |
echo === No medium === |
93 |
echo |
94 |
|
95 |
run_qemu -drive if=floppy |
96 |
run_qemu -drive if=ide,media=cdrom |
97 |
run_qemu -drive if=scsi,media=cdrom |
98 |
|
99 |
run_qemu -drive if=ide |
100 |
run_qemu -drive if=virtio |
101 |
run_qemu -drive if=scsi |
102 |
|
103 |
run_qemu -drive if=none,id=disk -device ide-cd,drive=disk |
104 |
run_qemu -drive if=none,id=disk -device lsi53c895a -device scsi-cd,drive=disk |
105 |
|
106 |
run_qemu -drive if=none,id=disk -device ide-drive,drive=disk |
107 |
run_qemu -drive if=none,id=disk -device ide-hd,drive=disk |
108 |
run_qemu -drive if=none,id=disk -device lsi53c895a -device scsi-disk,drive=disk |
109 |
run_qemu -drive if=none,id=disk -device lsi53c895a -device scsi-hd,drive=disk |
110 |
|
111 |
echo |
112 |
echo === Read-only === |
113 |
echo |
114 |
|
115 |
run_qemu -drive file=$TEST_IMG,if=floppy,readonly=on |
116 |
run_qemu -drive file=$TEST_IMG,if=ide,media=cdrom,readonly=on |
117 |
run_qemu -drive file=$TEST_IMG,if=scsi,media=cdrom,readonly=on |
118 |
|
119 |
run_qemu -drive file=$TEST_IMG,if=ide,readonly=on |
120 |
run_qemu -drive file=$TEST_IMG,if=virtio,readonly=on |
121 |
run_qemu -drive file=$TEST_IMG,if=scsi,readonly=on |
122 |
|
123 |
run_qemu -drive file=$TEST_IMG,if=none,id=disk,readonly=on -device ide-cd,drive=disk |
124 |
run_qemu -drive file=$TEST_IMG,if=none,id=disk,readonly=on -device lsi53c895a -device scsi-cd,drive=disk |
125 |
|
126 |
run_qemu -drive file=$TEST_IMG,if=none,id=disk,readonly=on -device ide-drive,drive=disk |
127 |
run_qemu -drive file=$TEST_IMG,if=none,id=disk,readonly=on -device ide-hd,drive=disk |
128 |
run_qemu -drive file=$TEST_IMG,if=none,id=disk,readonly=on -device lsi53c895a -device scsi-disk,drive=disk |
129 |
run_qemu -drive file=$TEST_IMG,if=none,id=disk,readonly=on -device lsi53c895a -device scsi-hd,drive=disk |
130 |
|
131 |
echo |
132 |
echo === Cache modes === |
133 |
echo |
134 |
|
135 |
# Cannot use the test image because cache=none might not work on the host FS |
136 |
# Use cdrom so that we won't get errors about missing media |
137 |
|
138 |
run_qemu -drive media=cdrom,cache=none |
139 |
run_qemu -drive media=cdrom,cache=directsync |
140 |
run_qemu -drive media=cdrom,cache=writeback |
141 |
run_qemu -drive media=cdrom,cache=writethrough |
142 |
run_qemu -drive media=cdrom,cache=unsafe |
143 |
run_qemu -drive media=cdrom,cache=invalid_value |
144 |
|
145 |
# success, all done |
146 |
echo "*** done" |
147 |
rm -f $seq.full |
148 |
status=0 |