qemu-e2k/tests/qemu-iotests
Kevin Wolf 86fae10c64 mirror: Fail gracefully for source == target
blockdev-mirror with the same node for source and target segfaults
today: A node is in its own backing chain, so mirror_start_job() decides
that this is an active commit. When adding the intermediate nodes with
block_job_add_bdrv(), it starts the iteration through the subchain with
the backing file of source, though, so it never reaches target and
instead runs into NULL at the base.

While we could fix that by starting with source itself, there is no
point in allowing mirroring a node into itself and I wouldn't be
surprised if this caused more problems later.

So just check for this scenario and error out.

Cc: qemu-stable@nongnu.org
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
2018-08-15 12:50:39 +02:00
..
sample_images
.gitignore
001
001.out
002
002.out
003
003.out
004
004.out
005
005.out
007
007.out
008
008.out
009
009.out
010
010.out
011
011.out
012
012.out
013
013.out
014
014.out
015
015.out
017
017.out
018
018.out
019
019.out
020
020.out
021
021.out
022
022.out
023
023.out
024 iotests: Add test for rebasing with relative paths 2018-06-11 16:18:45 +02:00
024.out iotests: Add test for rebasing with relative paths 2018-06-11 16:18:45 +02:00
025
025.out
026 qemu-iotests: Test qcow2 not leaking clusters on write error 2018-06-29 14:20:56 +02:00
026.out qemu-iotests: Test qcow2 not leaking clusters on write error 2018-06-29 14:20:56 +02:00
026.out.nocache qemu-iotests: Test qcow2 not leaking clusters on write error 2018-06-29 14:20:56 +02:00
027
027.out
028
028.out
029 qemu-img: Remove deprecated -s snapshot_id_or_name option 2018-06-11 16:18:45 +02:00
029.out
030 job: Add JOB_STATUS_CHANGE QMP event 2018-05-23 14:30:51 +02:00
030.out
031
031.out
032
032.out
033
033.out
034
034.out
035
035.out
036
036.out
037
037.out
038
038.out
039
039.out
040 job: Add JOB_STATUS_CHANGE QMP event 2018-05-23 14:30:51 +02:00
040.out
041 mirror: Fail gracefully for source == target 2018-08-15 12:50:39 +02:00
041.out mirror: Fail gracefully for source == target 2018-08-15 12:50:39 +02:00
042
042.out
043
043.out
044
044.out
045
045.out
046
046.out
047
047.out
048
048.out
049
049.out
050
050.out
051 block: Don't silently truncate node names 2018-07-05 10:29:19 +02:00
051.out block: Don't silently truncate node names 2018-07-05 10:29:19 +02:00
051.pc.out block: Don't silently truncate node names 2018-07-05 10:29:19 +02:00
052
052.out
053
053.out
054
054.out
055
055.out
056
056.out
057
057.out
058
058.out
059
059.out
060 tests: iotests: drop some stderr line 2018-06-30 17:50:48 +02:00
060.out tests: iotests: drop some stderr line 2018-06-30 17:50:48 +02:00
061
061.out block: Add Error parameter to bdrv_amend_options 2018-06-11 16:18:45 +02:00
062
062.out
063 qcow2: Fix src_offset in copy offloading 2018-06-29 14:20:56 +02:00
063.out qcow2: Fix src_offset in copy offloading 2018-06-29 14:20:56 +02:00
064
064.out
065
065.out
066
066.out
067
067.out
068
068.out
069
069.out
070
070.out
071
071.out
072
072.out
073
073.out
074
074.out
075
075.out
076
076.out
077
077.out
078
078.out
079
079.out
080 qemu-img: Remove deprecated -s snapshot_id_or_name option 2018-06-11 16:18:45 +02:00
080.out block: Add Error parameter to bdrv_amend_options 2018-06-11 16:18:45 +02:00
081
081.out
082 iotests: Add test for 'qemu-img convert -C' compatibility 2018-07-30 15:35:37 +02:00
082.out iotests: Add test for 'qemu-img convert -C' compatibility 2018-07-30 15:35:37 +02:00
083
083.out
084
084.out
085
085.out
086 qemu-iotests: 086 doesn't work with NFS 2018-05-23 13:29:06 +02:00
086.out
087
087.out
088
088.out
089
089.out
090
090.out
091
091.out
092
092.out
093 qemu-iotests: Update 093 to improve the draining test 2018-08-15 12:50:39 +02:00
093.out qemu-iotests: Test removing a throttle group member with a pending timer 2018-08-15 12:50:39 +02:00
094
094.out job: Add JOB_STATUS_CHANGE QMP event 2018-05-23 14:30:51 +02:00
095 job: Add JOB_STATUS_CHANGE QMP event 2018-05-23 14:30:51 +02:00
095.out job: Add JOB_STATUS_CHANGE QMP event 2018-05-23 14:30:51 +02:00
096 python: futurize -f lib2to3.fixes.fix_has_key 2018-06-08 14:39:24 -03:00
096.out
097
097.out
098
098.out
099
099.out
101
101.out
102
102.out
103
103.out qcow2: A grammar fix in conflicting cache sizing error message 2018-07-30 15:35:37 +02:00
104
104.out
105
105.out
106
106.out
107
107.out
108
108.out
109 job: Add JOB_STATUS_CHANGE QMP event 2018-05-23 14:30:51 +02:00
109.out job: Add JOB_STATUS_CHANGE QMP event 2018-05-23 14:30:51 +02:00
110
110.out
111
111.out
112
112.out block: Add Error parameter to bdrv_amend_options 2018-06-11 16:18:45 +02:00
113 iotests: Rework 113 2018-06-11 16:18:45 +02:00
113.out iotests: Rework 113 2018-06-11 16:18:45 +02:00
114
114.out
115
115.out
116
116.out
117
117.out
118 python: futurize -f lib2to3.fixes.fix_numliterals 2018-06-08 14:39:24 -03:00
118.out
119
119.out
120
120.out
121
121.out
122 iotests: Test post-backing convert target behavior 2018-06-11 16:18:45 +02:00
122.out qemu-img: align result of is_allocated_sectors 2018-07-12 18:24:08 +02:00
123
123.out
124 job: Add JOB_STATUS_CHANGE QMP event 2018-05-23 14:30:51 +02:00
124.out
125
125.out
126
126.out qemu-iotests: Filter NFS paths 2018-05-23 13:29:03 +02:00
127
127.out job: Add JOB_STATUS_CHANGE QMP event 2018-05-23 14:30:51 +02:00
128
128.out
129
129.out
130
130.out
131
131.out
132
132.out
133
133.out
134
134.out
135
135.out
136 python: futurize -f lib2to3.fixes.fix_has_key 2018-06-08 14:39:24 -03:00
136.out
137
137.out qcow2: A grammar fix in conflicting cache sizing error message 2018-07-30 15:35:37 +02:00
138
138.out
139
139.out
140
140.out
141 job: Add JOB_STATUS_CHANGE QMP event 2018-05-23 14:30:51 +02:00
141.out job: Add JOB_STATUS_CHANGE QMP event 2018-05-23 14:30:51 +02:00
142
142.out
143
143.out
144 job: Add JOB_STATUS_CHANGE QMP event 2018-05-23 14:30:51 +02:00
144.out job: Add JOB_STATUS_CHANGE QMP event 2018-05-23 14:30:51 +02:00
145
145.out
146
146.out
147
147.out
148
148.out
149 qemu-iotests: Use host_device instead of file in 149 2018-07-23 16:50:43 +02:00
149.out qemu-iotests: Use host_device instead of file in 149 2018-07-23 16:50:43 +02:00
150
150.out
151 iotests: Add test for active mirroring 2018-06-18 17:05:17 +02:00
151.out iotests: Add test for active mirroring 2018-06-18 17:05:17 +02:00
152
152.out
153 iotests: 153: Fix dead code 2018-07-12 18:24:08 +02:00
153.out iotests: 153: Fix dead code 2018-07-12 18:24:08 +02:00
154
154.out
155 iotests: Move qmp_to_opts() to VM 2018-05-23 14:30:51 +02:00
155.out
156 job: Add JOB_STATUS_CHANGE QMP event 2018-05-23 14:30:51 +02:00
156.out job: Add JOB_STATUS_CHANGE QMP event 2018-05-23 14:30:51 +02:00
157
157.out
158
158.out
159
159.out
160
160.out
162
162.out
163
163.out
165 python: futurize -f libfuturize.fixes.fix_print_with_import 2018-06-08 14:39:24 -03:00
165.out
169
169.out
170
170.out
171
171.out
172
172.out
173
173.out
174
174.out
175
175.out
176
176.out
177
177.out
178
178.out.qcow2
178.out.raw
179
179.out
181 iotests: Skip 181 and 201 without userfaultfd 2018-05-15 16:15:21 +02:00
181.out
182
182.out
183
183.out
184
184.out
185 job: Add JOB_STATUS_CHANGE QMP event 2018-05-23 14:30:51 +02:00
185.out job: Add JOB_STATUS_CHANGE QMP event 2018-05-23 14:30:51 +02:00
186
186.out
187
187.out
188
188.out
189
189.out
190
190.out
191 job: Add JOB_STATUS_CHANGE QMP event 2018-05-23 14:30:51 +02:00
191.out job: Add JOB_STATUS_CHANGE QMP event 2018-05-23 14:30:51 +02:00
192
192.out
194
194.out
195
195.out
196
196.out
197 block: Fix copy-on-read crash with partial final cluster 2018-07-10 10:36:15 +02:00
197.out block: Fix copy-on-read crash with partial final cluster 2018-07-10 10:36:15 +02:00
198
198.out
199
199.out
200
200.out
201 iotests: Skip 181 and 201 without userfaultfd 2018-05-15 16:15:21 +02:00
201.out
202
202.out
203
203.out
204
204.out
205
205.out
206 block/create: Mark blockdev-create stable 2018-05-30 13:31:18 +02:00
206.out block/create: Mark blockdev-create stable 2018-05-30 13:31:18 +02:00
207 block/create: Mark blockdev-create stable 2018-05-30 13:31:18 +02:00
207.out block/create: Mark blockdev-create stable 2018-05-30 13:31:18 +02:00
208
208.out
209
209.out
210 block/create: Mark blockdev-create stable 2018-05-30 13:31:18 +02:00
210.out block/create: Mark blockdev-create stable 2018-05-30 13:31:18 +02:00
211 block/create: Mark blockdev-create stable 2018-05-30 13:31:18 +02:00
211.out block/create: Mark blockdev-create stable 2018-05-30 13:31:18 +02:00
212 block/create: Mark blockdev-create stable 2018-05-30 13:31:18 +02:00
212.out block/create: Mark blockdev-create stable 2018-05-30 13:31:18 +02:00
213 block/create: Mark blockdev-create stable 2018-05-30 13:31:18 +02:00
213.out block/create: Mark blockdev-create stable 2018-05-30 13:31:18 +02:00
214 iotests: Split 214 off of 122 2018-05-15 16:15:21 +02:00
214.out iotests: Split 214 off of 122 2018-05-15 16:15:21 +02:00
215 iotests: Copy 197 for COR filter driver 2018-05-15 16:15:21 +02:00
215.out iotests: Copy 197 for COR filter driver 2018-05-15 16:15:21 +02:00
216 iotests: Let 216 make use of qemu-io's exit code 2018-06-11 16:18:45 +02:00
216.out iotests: Let 216 make use of qemu-io's exit code 2018-06-11 16:18:45 +02:00
217 iotests: Repairing error during snapshot deletion 2018-06-11 16:18:45 +02:00
217.out iotests: Repairing error during snapshot deletion 2018-06-11 16:18:45 +02:00
218 iotests: Add test for cancelling a mirror job 2018-05-08 10:47:27 -04:00
218.out iotests: Add test for cancelling a mirror job 2018-05-08 10:47:27 -04:00
219 iotests: Fix 219's timing 2018-06-11 16:18:45 +02:00
219.out iotests: Fix 219's timing 2018-06-11 16:18:45 +02:00
221 iotests: Add test 221 to catch qemu-img map regression 2018-06-15 14:49:44 +02:00
221.out iotests: Add test 221 to catch qemu-img map regression 2018-06-15 14:49:44 +02:00
222 iotests: 222: Don't run with luks 2018-07-10 11:55:11 +02:00
222.out iotests: add 222 to test basic fleecing 2018-07-02 15:24:07 -05:00
223 iotests: Disallow compat=0.10 in 223 2018-07-23 16:50:43 +02:00
223.out iotests: New test 223 for exporting dirty bitmap over NBD 2018-07-02 19:50:37 -05:00
225 iotests: Add VMDK backing file correlation test 2018-07-09 19:43:24 +02:00
225.out iotests: Add VMDK backing file correlation test 2018-07-09 19:43:24 +02:00
226 iotests: Don't lock /dev/null in 226 2018-07-30 15:35:37 +02:00
226.out iotests: add test 226 for file driver types 2018-07-12 18:24:08 +02:00
227 qemu-iotests: Test query-blockstats with -drive and -blockdev 2018-07-30 15:35:37 +02:00
227.out qemu-iotests: Test query-blockstats with -drive and -blockdev 2018-07-30 15:35:37 +02:00
COPYING
Makefile
README
check
common.config
common.filter main-loop: drop spin_counter 2018-06-01 16:01:29 +01:00
common.pattern
common.qemu iotests: Add failure matching to common.qemu 2018-05-15 16:15:21 +02:00
common.rc iotests: nbd: Stop qemu-nbd before remaking image 2018-07-12 18:24:08 +02:00
group qemu-iotests: Test query-blockstats with -drive and -blockdev 2018-07-30 15:35:37 +02:00
iotests.py Python queue, 2018-06-11 2018-06-12 11:56:21 +01:00
nbd-fault-injector.py python: futurize -f libfuturize.fixes.fix_print_with_import 2018-06-08 14:39:24 -03:00
qcow2.py python: futurize -f libfuturize.fixes.fix_print_with_import 2018-06-08 14:39:24 -03:00
qed.py python: futurize -f libfuturize.fixes.fix_print_with_import 2018-06-08 14:39:24 -03:00
socket_scm_helper.c

README

=== This is the QEMU I/O test suite ===

* Intro

This package contains a simple test suite for the I/O layer of qemu.
It does not require a guest, but only the qemu, qemu-img and qemu-io
binaries.  This does limit it to exercise the low-level I/O path only
but no actual block drivers like ide, scsi or virtio.

* Usage

Just run ./check to run all tests for the raw image format, or ./check
-qcow2 to test the qcow2 image format.  The output of ./check -h explains
additional options to test further image formats or I/O methods.

* Feedback and patches

Please send improvements to the test suite, general feedback or just
reports of failing tests cases to qemu-devel@nongnu.org with a CC:
to qemu-block@nongnu.org.