qemu-irix/tests/qemu-iotests
Stefan Hajnoczi cbaddb25b2 qemu-iotests: step clock after each test iteration
The 093 throttling test submits twice as many requests as the throttle
limit in order to ensure that we reach the limit.  The remaining
requests are left in-flight at the end of each test iteration.

Commit 452589b6b4 ("vl.c/exit: pause cpus
before closing block devices") exposed a hang in 093.  This happens
because requests are still in flight when QEMU terminates but
QEMU_CLOCK_VIRTUAL time is frozen.  bdrv_drain_all() hangs forever since
throttled requests cannot complete.

Step the clock at the end of each test iteration so in-flight requests
actually finish.  This solves the hang and is cleaner than leaving tests
in-flight.

Note that this could also be "fixed" by disabling throttling when drives
are closed in QEMU.  That approach has two issues:

1. We must drain requests before disabling throttling, so the hang
   cannot be easily avoided!

2. Any time QEMU disables throttling internally there is a chance that
   malicious users can abuse the code path to bypass throttling limits.

Therefore it makes more sense to fix the test case than to modify QEMU.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-Id: <20170815130502.8736-1-stefanha@redhat.com>
Signed-off-by: Eric Blake <eblake@redhat.com>
2017-08-15 10:03:27 -05: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 qemu-iotests: exclude vxhs from image creation via protocol 2017-04-24 15:09:33 -04:00
017.out
018
018.out
019
019.out qemu-io: Switch 'alloc' command to byte-based length 2017-05-11 14:28:05 +02:00
020 qemu-iotests: exclude vxhs from image creation via protocol 2017-04-24 15:09:33 -04:00
020.out
021
021.out
022
022.out
023
023.out
024
024.out
025 block: Drop unmaintained 'archipelago' driver 2017-03-13 12:49:33 +01:00
025.out
026 iotests: Fix typo in 026 2017-04-27 15:46:16 +02:00
026.out iotests: Fix typo in 026 2017-04-27 15:46:16 +02:00
026.out.nocache iotests: Fix typo in 026 2017-04-27 15:46:16 +02:00
027
027.out
028 qemu-iotests: _cleanup_qemu must be called on exit 2017-04-24 15:09:33 -04:00
028.out qemu-iotests: Filter HMP readline escape characters 2017-04-27 15:39:49 +02:00
029 qemu-iotests: exclude vxhs from image creation via protocol 2017-04-24 15:09:33 -04:00
029.out
030 qemu-iotests: Avoid unnecessary sleeps 2017-07-24 15:06:04 +02:00
030.out qemu-iotests: Test streaming with missing job ID 2017-05-26 16:48:21 +02:00
031
031.out
032
032.out
033 iotests: fix remainining tests to work with LUKS 2017-07-11 17:44:59 +02:00
033.out
034
034.out
035
035.out
036
036.out
037
037.out
038
038.out
039
039.out
040 block: Skip implicit nodes in query-block/blockstats 2017-07-24 15:06:04 +02:00
040.out block: Skip implicit nodes in query-block/blockstats 2017-07-24 15:06:04 +02:00
041 qemu-iotests/041: Fix leaked scratch images 2017-08-01 18:09:33 +02:00
041.out block: Skip implicit nodes in query-block/blockstats 2017-07-24 15:06:04 +02:00
042 iotests: skip 042 with qcow which dosn't support zero sized images 2017-07-11 17:44:55 +02:00
042.out
043
043.out
044
044.out block/qcow2: Add qcow2_refcount_area() 2017-07-11 17:45:02 +02:00
045
045.out
046 iotests: 046: Prepare for image locking 2017-05-11 11:08:40 +02:00
046.out
047
047.out
048 iotests: skip 048 with qcow which doesn't support resize 2017-07-11 17:44:55 +02:00
048.out
049 qcow2: convert QCow2 to use QCryptoBlock for encryption 2017-07-11 17:44:56 +02:00
049.out qcow2: convert QCow2 to use QCryptoBlock for encryption 2017-07-11 17:44:56 +02:00
050
050.out
051 tests: Avoid non-portable 'echo -ARG' 2017-07-11 17:45:00 +02:00
051.out iotests/051: Add test for empty filename 2017-04-27 15:39:49 +02:00
051.pc.out iotests/051: Add test for empty filename 2017-04-27 15:39:49 +02:00
052
052.out
053
053.out
054
054.out
055 qemu-iotests: Avoid unnecessary sleeps 2017-07-24 15:06:04 +02:00
055.out
056
056.out
057
057.out
058
058.out
059 qemu-iotests/059: Fix leaked image files 2017-08-01 18:09:33 +02:00
059.out qemu-iotests/059: Fix leaked image files 2017-08-01 18:09:33 +02:00
060
060.out qemu-io: Don't die on second open 2017-07-10 13:18:05 +02:00
061
061.out
062
062.out
063 qemu-iotests/063: Fix leaked image 2017-08-01 18:09:33 +02:00
063.out
064
064.out
065 qcow2: Add refcount_bits to format-specific info 2015-03-10 14:02:20 +01:00
065.out
066 iotests: Extend test 066 2017-05-11 12:08:24 +02:00
066.out iotests: Extend test 066 2017-05-11 12:08:24 +02:00
067 qemu-iotests: Test unplug of -device without drive 2017-07-18 15:14:36 +02:00
067.out qemu-iotests: Test unplug of -device without drive 2017-07-18 15:14:36 +02:00
068 tests: Avoid non-portable 'echo -ARG' 2017-07-11 17:45:00 +02:00
068.out qemu-iotests: 068: test iothread mode 2017-06-26 14:51:13 +02:00
069
069.out
070
070.out
071
071.out shutdown: Expose bool cause in SHUTDOWN and RESET events 2017-05-23 13:28:17 +02:00
072
072.out
073 qemu-iotests: exclude vxhs from image creation via protocol 2017-04-24 15:09:33 -04:00
073.out
074 qemu-iotests: Remove blkdebug.conf after tests 2017-08-01 18:09:33 +02:00
074.out
075
075.out
076
076.out
077
077.out
078
078.out
079
079.out
080
080.out
081
081.out shutdown: Expose bool cause in SHUTDOWN and RESET events 2017-05-23 13:28:17 +02:00
082 qemu-img: Check for backing image if specified during create 2017-07-18 15:27:37 +02:00
082.out qemu-img: Check for backing image if specified during create 2017-07-18 15:27:37 +02:00
083
083.out nbd/client.c: use errp instead of LOG 2017-06-06 20:18:36 +02:00
084
084.out
085 block: Use JSON null instead of "" to disable backing file 2017-07-24 13:35:11 +02:00
085.out block: deprecate "encryption=on" in favor of "encrypt.format=aes" 2017-07-11 17:44:55 +02:00
086
086.out
087 qcow2: add iotests to cover LUKS encryption support 2017-07-11 17:44:56 +02:00
087.out qcow2: add iotests to cover LUKS encryption support 2017-07-11 17:44:56 +02:00
088
088.out
089
089.out
090
090.out
091 iotests: 091: Quit QEMU before checking image 2017-05-11 11:08:40 +02:00
091.out
092
092.out
093 qemu-iotests: step clock after each test iteration 2017-08-15 10:03:27 -05:00
093.out
094 qemu-iotests: _cleanup_qemu must be called on exit 2017-04-24 15:09:33 -04:00
094.out shutdown: Expose bool cause in SHUTDOWN and RESET events 2017-05-23 13:28:17 +02:00
095
095.out
096
096.out
097 iotests: Improve image-clear tests on non-aligned image 2017-04-03 17:11:40 +02:00
097.out iotests: Improve image-clear tests on non-aligned image 2017-04-03 17:11:40 +02:00
098
098.out
099
099.out
101
101.out
102 qemu-iotests: _cleanup_qemu must be called on exit 2017-04-24 15:09:33 -04:00
102.out qemu-io: Switch 'map' output to byte-based reporting 2017-05-11 14:28:06 +02:00
103
103.out
104
104.out
105
105.out
106 iotests: Add preallocated resize test for raw 2017-07-11 17:45:02 +02:00
106.out iotests: Add preallocated resize test for raw 2017-07-11 17:45:02 +02:00
107
107.out
108
108.out
109 qemu-iotests/109: Fix lock race condition 2017-08-08 14:36:59 +02:00
109.out qemu-iotests/109: Fix lock race condition 2017-08-08 14:36:59 +02:00
110
110.out
111
111.out qemu-img: Check for backing image if specified during create 2017-07-18 15:27:37 +02:00
112
112.out
113
113.out
114 qemu-iotests: exclude vxhs from image creation via protocol 2017-04-24 15:09:33 -04:00
114.out qemu-io: Don't die on second open 2017-07-10 13:18:05 +02:00
115
115.out
116
116.out
117 qemu-iotests: _cleanup_qemu must be called on exit 2017-04-24 15:09:33 -04:00
117.out shutdown: Expose bool cause in SHUTDOWN and RESET events 2017-05-23 13:28:17 +02:00
118
118.out
119
119.out shutdown: Expose bool cause in SHUTDOWN and RESET events 2017-05-23 13:28:17 +02:00
120 iotests: fix remainining tests to work with LUKS 2017-07-11 17:44:59 +02:00
120.out shutdown: Expose bool cause in SHUTDOWN and RESET events 2017-05-23 13:28:17 +02:00
121
121.out
122
122.out iotests: Improve _filter_qemu_img_map 2017-05-11 14:28:07 +02:00
123
123.out
124 iotests: Check dirty bitmap statistics in 124 2017-08-01 18:09:33 +02:00
124.out
125 iotests: Add preallocated growth test for qcow2 2017-07-11 17:45:02 +02:00
125.out iotests: Add preallocated growth test for qcow2 2017-07-11 17:45:02 +02:00
126 iotests: Add test for colon handling 2017-07-11 17:45:00 +02:00
126.out iotests: Add test for colon handling 2017-07-11 17:45:00 +02:00
128
128.out
129
129.out
130 qemu-iotests: _cleanup_qemu must be called on exit 2017-04-24 15:09:33 -04:00
130.out qemu-iotests: Filter HMP readline escape characters 2017-04-27 15:39:49 +02:00
131
131.out
132
132.out
133
133.out
134 iotests: enable tests 134 and 158 to work with qcow (v1) 2017-07-11 17:44:56 +02:00
134.out qcow2: convert QCow2 to use QCryptoBlock for encryption 2017-07-11 17:44:56 +02:00
135
135.out
136 block/null: Remove 'filename' option 2017-08-08 15:19:16 +02:00
136.out
137
137.out
138
138.out
139 block: Use JSON null instead of "" to disable backing file 2017-07-24 13:35:11 +02:00
139.out
140 iotests: fix remainining tests to work with LUKS 2017-07-11 17:44:59 +02:00
140.out nbd: Fix iotests failure due to changed client error message 2017-07-17 13:57:42 -05:00
141 qemu-iotests/141: Fix image cleanup 2017-08-01 18:09:33 +02:00
141.out mirror: Use real permissions in mirror/active commit block job 2017-02-28 20:47:46 +01:00
142 tests: Avoid non-portable 'echo -ARG' 2017-07-11 17:45:00 +02:00
142.out qemu-iotests: Filter HMP readline escape characters 2017-04-27 15:39:49 +02:00
143 qemu-iotests: _cleanup_qemu must be called on exit 2017-04-24 15:09:33 -04:00
143.out nbd: Fix iotests failure due to changed client error message 2017-07-17 13:57:42 -05:00
144
144.out block: deprecate "encryption=on" in favor of "encrypt.format=aes" 2017-07-11 17:44:55 +02:00
145 iotests: fix remainining tests to work with LUKS 2017-07-11 17:44:59 +02:00
145.out qemu-iotests: Filter HMP readline escape characters 2017-04-27 15:39:49 +02:00
146
146.out qemu-io: Switch 'map' output to byte-based reporting 2017-05-11 14:28:06 +02:00
147 iotests: 147: Don't test inet6 if not available 2017-05-26 16:48:21 +02:00
147.out
148
148.out
149 iotests: chown LUKS device before qemu-io launches 2017-07-11 17:45:00 +02:00
149.out iotests: chown LUKS device before qemu-io launches 2017-07-11 17:45:00 +02:00
150
150.out
152
152.out
153 qemu-iotests/153: Fix leaked scratch images 2017-08-01 18:09:33 +02:00
153.out qemu-io: Don't die on second open 2017-07-10 13:18:05 +02:00
154 block: Exploit BDRV_BLOCK_EOF for larger zero blocks 2017-06-30 21:48:06 +08:00
154.out block: Exploit BDRV_BLOCK_EOF for larger zero blocks 2017-06-30 21:48:06 +08:00
155
155.out
156 iotests: Fix test 156 2017-08-01 18:09:33 +02:00
156.out shutdown: Expose bool cause in SHUTDOWN and RESET events 2017-05-23 13:28:17 +02:00
157 iotests: fix remainining tests to work with LUKS 2017-07-11 17:44:59 +02:00
157.out iotests: fix remainining tests to work with LUKS 2017-07-11 17:44:59 +02:00
158 qemu-img: Check for backing image if specified during create 2017-07-18 15:27:37 +02:00
158.out qcow2: convert QCow2 to use QCryptoBlock for encryption 2017-07-11 17:44:56 +02:00
159 iotests: skip 159 & 170 with luks format 2017-07-11 17:44:59 +02:00
159.out
160
160.out
162 qemu-iotests/162: Fix leaked temporary files 2017-08-01 18:09:33 +02:00
162.out
165 iotests: test qcow2 persistent dirty bitmap 2017-07-11 17:44:59 +02:00
165.out iotests: test qcow2 persistent dirty bitmap 2017-07-11 17:44:59 +02:00
170 iotests: skip 159 & 170 with luks format 2017-07-11 17:44:59 +02:00
170.out
171 tests: Avoid non-portable 'echo -ARG' 2017-07-11 17:45:00 +02:00
171.out
172 iotests: 172: Use separate images for multiple devices 2017-05-11 11:08:40 +02:00
172.out iotests: 172: Use separate images for multiple devices 2017-05-11 11:08:40 +02:00
173
173.out
174 iotests: fix remainining tests to work with LUKS 2017-07-11 17:44:59 +02:00
174.out
175
175.out
176 iotests: Improve image-clear tests on non-aligned image 2017-04-03 17:11:40 +02:00
176.out iotests: Improve image-clear tests on non-aligned image 2017-04-03 17:11:40 +02:00
177 block: Guarantee that *file is set on bdrv_get_block_status() 2017-07-10 13:18:05 +02:00
177.out blkdebug: Support .bdrv_co_get_block_status 2017-07-10 13:18:05 +02:00
178 iotests: add test 178 for qemu-img measure 2017-07-11 17:45:01 +02:00
178.out.qcow2 iotests: add test 178 for qemu-img measure 2017-07-11 17:45:01 +02:00
178.out.raw iotests: add test 178 for qemu-img measure 2017-07-11 17:45:01 +02:00
179 qemu-iotests: Remove blkdebug.conf after tests 2017-08-01 18:09:33 +02:00
179.out iotests: Add test 179 to cover write zeroes with unmap 2017-05-11 14:28:07 +02:00
181 iotests: fix remainining tests to work with LUKS 2017-07-11 17:44:59 +02:00
181.out qemu-iotests: Test postcopy migration 2017-04-27 15:39:49 +02:00
182 tests: Add POSIX image locking test case 182 2017-05-11 12:08:20 +02:00
182.out tests: Add POSIX image locking test case 182 2017-05-11 12:08:20 +02:00
183 qemu-iotests: Block migration test 2017-06-09 11:45:03 +02:00
183.out qemu-iotests: Block migration test 2017-06-09 11:45:03 +02:00
185 qemu-iotests: fix 185 2017-08-11 14:44:39 +02:00
185.out block: deprecate "encryption=on" in favor of "encrypt.format=aes" 2017-07-11 17:44:55 +02:00
186 iotests: Redirect stderr to stdout in 186 2017-08-01 18:09:33 +02:00
186.out iotests: Redirect stderr to stdout in 186 2017-08-01 18:09:33 +02:00
187 qemu-iotests: Test reopen between read-only and read-write 2017-08-08 15:19:16 +02:00
187.out qemu-iotests: Test reopen between read-only and read-write 2017-08-08 15:19:16 +02:00
188 qcow2: add iotests to cover LUKS encryption support 2017-07-11 17:44:56 +02:00
188.out qcow2: add iotests to cover LUKS encryption support 2017-07-11 17:44:56 +02:00
189 qemu-img: Check for backing image if specified during create 2017-07-18 15:27:37 +02:00
189.out qcow2: add iotests to cover LUKS encryption support 2017-07-11 17:44:56 +02:00
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
COPYING
Makefile
README
check qemu-iotests: remove comment about root privileges requirement 2017-08-14 13:06:54 +03:00
common qcow2: convert QCow2 to use QCryptoBlock for encryption 2017-07-11 17:44:56 +02:00
common.config iotests: Use absolute paths for executables 2017-07-11 17:45:00 +02:00
common.filter iotests: reduce PBKDF iterations when testing LUKS 2017-07-11 17:45:00 +02:00
common.pattern qemu-io: Switch 'alloc' command to byte-based length 2017-05-11 14:28:05 +02:00
common.qemu iotests: fix remainining tests to work with LUKS 2017-07-11 17:44:59 +02:00
common.rc qemu-iotests: get rid of _full_imgproto_details() 2017-08-14 13:06:54 +03:00
group qemu-iotests: Test reopen between read-only and read-write 2017-08-08 15:19:16 +02:00
iotests.py qemu-iotests: Avoid unnecessary sleeps 2017-07-24 15:06:04 +02:00
nbd-fault-injector.py
qcow2.py
qed.py
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.