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 iotests: Fix CID for VMDK afl image 2018-02-13 12:27:17 +01:00
.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 iotests: Fix 020 for vmdk 2018-01-23 12:34:43 +01:00
020.out iotests: Fix 020 for vmdk 2018-01-23 12:34:43 +01:00
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 qemu-iotests: Enable 025 for luks 2018-03-26 12:17:40 +02:00
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 iotests: Tweak 030 in order to trigger a race condition with parallel jobs 2018-03-09 15:40:07 +01:00
031
031.out
032
032.out
033 iotests: Fix stuck NBD process on 33 2018-03-13 15:38:55 -05:00
033.out iotest 033: add misaligned write-zeroes test via truncate 2018-03-02 18:39:07 +01:00
034
034.out
035
035.out
036
036.out
037
037.out
038
038.out
039
039.out qemu-iotests: limit non-_PROG-suffixed variables to common.rc 2017-10-06 16:28:58 +02:00
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 qcow2: Use visitor for options in qcow2_create() 2018-03-09 15:17:47 +01:00
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 iotests: add pause_wait 2018-03-19 12:01:24 +01:00
055.out
056 iotests: test manual job dismissal 2018-03-19 12:01:24 +01:00
056.out iotests: test manual job dismissal 2018-03-19 12:01:24 +01:00
057
057.out
058 nbd-client: Refuse read-only client with BDRV_O_RDWR 2017-11-09 10:10:17 -06:00
058.out
059 iotests: Skip test for ENOMEM error 2018-03-09 15:40:07 +01:00
059.out iotests: Fix CID for VMDK afl image 2018-02-13 12:27:17 +01:00
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 iotests: Test downgrading an image using a small L2 slice size 2018-02-13 17:00:00 +01:00
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 iotests: Fix 067 for compat=0.10 2018-01-23 12:34:43 +01:00
067.out iotests: Fix 067 for compat=0.10 2018-01-23 12:34:43 +01:00
068 snapshot/tests: Try loadvm twice 2017-09-06 15:19:01 +01:00
068.out snapshot/tests: Try loadvm twice 2017-09-06 15:19:01 +01:00
069
069.out
070
070.out
071
071.out
072
072.out
073
073.out
074 qemu-iotests: Remove blkdebug.conf after tests 2017-08-01 18:09:33 +02:00
074.out qemu-img: Drop redundant error message in compare 2017-10-26 14:45:57 +02:00
075 iotests: fix 075 and 078 2017-11-27 11:25:41 +01:00
075.out
076
076.out
077 iotests: 077: Filter out 'resume' lines 2017-11-14 18:06:25 +01:00
077.out iotests: 077: Filter out 'resume' lines 2017-11-14 18:06:25 +01:00
078 iotests: fix 075 and 078 2017-11-27 11:25:41 +01:00
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 iotests: Make 083 less flaky 2017-11-14 18:06:25 +01:00
083.out nbd: Minimal structured read for client 2017-10-30 21:48:41 +01:00
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 iotests: Make 087 pass without AIO enabled 2017-11-17 18:21:31 +01:00
087.out
088
088.out
089 block: Handle null backing link 2018-03-19 14:58:36 -05:00
089.out block: Handle null backing link 2018-03-19 14:58:36 -05:00
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 qemu-iotests: Fix locking issue in 102 2018-01-23 12:34:42 +01:00
102.out qemu-iotests: Fix locking issue in 102 2018-01-23 12:34:42 +01:00
103 iotests: Test valid values of l2-cache-entry-size 2018-02-13 17:00:00 +01:00
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 iotests: Test preallocated truncate of 2G image 2018-04-03 17:39:37 +02:00
106.out iotests: Test preallocated truncate of 2G image 2018-04-03 17:39:37 +02:00
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 qcow2: Reset free_cluster_index when allocating a new refcount block 2018-03-26 12:16:00 +02:00
121.out qcow2: Reset free_cluster_index when allocating a new refcount block 2018-03-26 12:16:00 +02:00
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 iotests: Add cluster_size=64k to 125 2017-10-26 15:01:14 +02:00
125.out iotests: Add cluster_size=64k to 125 2017-10-26 15:01:14 +02:00
126
126.out qemu-iotests: Filter NFS paths 2018-05-23 13:29:03 +02:00
127 iotests: Add test for dataplane mirroring 2017-10-26 15:01:13 +02:00
127.out job: Add JOB_STATUS_CHANGE QMP event 2018-05-23 14:30:51 +02:00
128
128.out
129 iotests: Mark all tests executable 2018-03-09 15:40:07 +01:00
129.out
130 iotests: Disable some tests for compat=0.10 2018-01-23 12:34:43 +01:00
130.out
131
131.out
132 iotests: Mark all tests executable 2018-03-09 15:40:07 +01:00
132.out
133 iotests: Add test for non-string option reopening 2017-11-17 18:21:30 +01:00
133.out iotests: Add test for non-string option reopening 2017-11-17 18:21:30 +01:00
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 iotests: Add l2-cache-entry-size to iotest 137 2018-02-13 17:00:00 +01:00
137.out qcow2: A grammar fix in conflicting cache sizing error message 2018-07-30 15:35:37 +02:00
138
138.out
139 iotests: Mark all tests executable 2018-03-09 15:40:07 +01:00
139.out
140 nbd-client: Refuse read-only client with BDRV_O_RDWR 2017-11-09 10:10:17 -06:00
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 block: fix iotest 146 output expectations 2018-03-19 12:01:39 +01:00
147 iotest 147: add cases to test new @name parameter of nbd-server-add 2018-01-26 09:37:21 -06:00
147.out iotest 147: add cases to test new @name parameter of nbd-server-add 2018-01-26 09:37:21 -06:00
148 iotests: Mark all tests executable 2018-03-09 15:40:07 +01:00
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 iotests: Mark all tests executable 2018-03-09 15:40:07 +01:00
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 qemu-iotests/162: Fix leaked temporary files 2017-08-01 18:09:33 +02:00
162.out
163 iotests: Mark all tests executable 2018-03-09 15:40:07 +01:00
163.out qemu-iotests: add shrinking image test 2017-09-26 15:00:32 +02:00
165 python: futurize -f libfuturize.fixes.fix_print_with_import 2018-06-08 14:39:24 -03:00
165.out
169 iotests: fix 169 2018-04-16 13:35:32 +02:00
169.out iotests: enable shared migration cases in 169 2018-03-26 21:17:24 +02:00
170
170.out
171
171.out
172 qemu-iotests: Add missing -machine accel=qtest 2017-09-26 14:46:23 +02:00
172.out hw/block/fdc: Convert to realize 2017-09-18 19:43:38 -04:00
173
173.out
174
174.out
175
175.out
176 block: maintain persistent disabled bitmaps 2018-02-13 16:59:58 +01:00
176.out iotests: Fix 176 on 32-bit host 2017-11-21 14:54:02 +01:00
177 iotests: Split 177 into two parts for compat=0.10 2018-01-23 12:34:43 +01:00
177.out iotests: Split 177 into two parts for compat=0.10 2018-01-23 12:34:43 +01:00
178
178.out.qcow2
178.out.raw
179 qemu-iotests: Remove blkdebug.conf after tests 2017-08-01 18:09:33 +02:00
179.out
181 iotests: Skip 181 and 201 without userfaultfd 2018-05-15 16:15:21 +02:00
181.out iotests: fix 181: enable postcopy-ram capability on target 2017-09-26 14:46:23 +02:00
182 qemu-iotests: Use -nographic in 182 2017-11-17 13:35:59 +01:00
182.out
183 qemu-iotests: Remove _supported_fmt dmg 2018-04-10 16:33:43 +02:00
183.out
184 iotests: Make 184 image-less 2018-01-23 12:34:43 +01:00
184.out iotests: Make 184 image-less 2018-01-23 12:34:43 +01:00
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 iotests: Update 186 after commit ac64273c66 2018-04-03 16:58:48 +02:00
186.out iotests: Update 186 after commit ac64273c66 2018-04-03 16:58:48 +02:00
187 qemu-iotests: Test reopen between read-only and read-write 2017-08-08 15:19:16 +02:00
187.out qemu-io: Drop write permissions before read-only reopen 2017-09-26 14:46:23 +02:00
188
188.out
189
189.out
190 iotests: Add test of recent fix to 'qemu-img measure' 2017-08-01 18:09:33 +02:00
190.out iotests: Add test of recent fix to 'qemu-img measure' 2017-08-01 18:09:33 +02:00
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 iotests: rewrite 192 to use _launch_qemu to fix LUKS support 2017-09-05 14:17:26 -05:00
192.out iotests: Add non-shared storage migration case 192 2017-08-15 10:03:28 -05:00
194 qemu-iotests: Remove _supported_fmt dmg 2018-04-10 16:33:43 +02:00
194.out qemu-iotests: Extend non-shared storage migration test (194) 2017-08-30 13:00:37 -05:00
195 iotests: Fix 195 if IMGFMT is part of TEST_DIR 2017-10-06 16:30:47 +02:00
195.out qemu-iotests: Test change-backing-file command 2017-09-26 14:46:23 +02:00
196 iotests: test clearing unknown autoclear_features by qcow2 2017-11-17 18:06:21 +01:00
196.out iotests: test clearing unknown autoclear_features by qcow2 2017-11-17 18:06:21 +01:00
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 iotests: Filter compat-dependent info in 198 2018-01-23 12:34:43 +01:00
198.out iotests: Filter compat-dependent info in 198 2018-01-23 12:34:43 +01:00
199 iotests: add dirty bitmap postcopy test 2018-03-13 17:06:32 -04:00
199.out iotests: add dirty bitmap postcopy test 2018-03-13 17:06:32 -04:00
200 iotests: Make 200 run on tmpfs 2018-01-31 22:37:00 -05:00
200.out qemu-iotest: add test for blockjob coroutine race condition 2017-11-21 11:58:12 -05:00
201 iotests: Skip 181 and 201 without userfaultfd 2018-05-15 16:15:21 +02:00
201.out tests/qemu-iotests: adding savevm/loadvm with postcopy flag test 2018-01-23 12:33:07 +01:00
202 qemu-iotests: add 202 external snapshots IOThread test 2017-12-19 10:25:09 +00:00
202.out qemu-iotests: add 202 external snapshots IOThread test 2017-12-19 10:25:09 +00:00
203 qemu-iotests: fix 203 migration completion race 2018-03-09 15:40:07 +01:00
203.out qemu-iotests: fix 203 migration completion race 2018-03-09 15:40:07 +01:00
204 iotests: Split 177 into two parts for compat=0.10 2018-01-23 12:34:43 +01:00
204.out iotests: Split 177 into two parts for compat=0.10 2018-01-23 12:34:43 +01:00
205 iotests: blacklist bochs and cloop for 205 and 208 2018-04-10 16:33:08 +02:00
205.out iotest 205: new test for qmp nbd-server-remove 2018-01-26 09:37:21 -06:00
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 iotests: blacklist bochs and cloop for 205 and 208 2018-04-10 16:33:08 +02:00
208.out iotests: add 208 nbd-server + blockdev-snapshot-sync test case 2018-03-13 15:38:55 -05:00
209 iotests: new test 209 for NBD BLOCK_STATUS 2018-03-13 15:44:09 -05:00
209.out iotests: new test 209 for NBD BLOCK_STATUS 2018-03-13 15:44:09 -05:00
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
check qemu-iotests: Use ppc64 qemu_arch on ppc64le host 2018-04-03 17:39:37 +02:00
common.config qemu-iotests: Use ppc64 qemu_arch on ppc64le host 2018-04-03 17:39:37 +02:00
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
COPYING
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
Makefile
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
README
socket_scm_helper.c

=== 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.