xemu/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 452589b6b47e8dc6353df257fc803dfc1383bed8 ("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
..
026
2017-04-27 15:46:16 +02:00
2017-04-27 15:46:16 +02:00
2017-04-27 15:46:16 +02:00
030
2017-07-24 15:06:04 +02:00
2016-04-15 17:22:11 +02:00
2017-07-11 17:45:02 +02:00
046
2017-05-11 11:08:40 +02:00
051
2017-07-11 17:45:00 +02:00
055
2017-07-24 15:06:04 +02:00
059
2017-08-01 18:09:33 +02:00
2017-07-10 13:18:05 +02:00
063
2017-08-01 18:09:33 +02:00
2015-01-23 12:41:32 -05:00
066
2017-05-11 12:08:24 +02:00
2017-05-11 12:08:24 +02:00
068
2017-07-11 17:45:00 +02:00
2017-06-26 14:51:13 +02:00
083
2016-05-12 15:33:23 +02:00
2017-06-06 20:18:36 +02:00
2016-01-07 21:30:17 +01:00
109
2017-08-08 14:36:59 +02:00
2015-12-18 14:36:17 +01:00
2017-07-10 13:18:05 +02:00
2017-05-11 14:28:07 +02:00
126
2017-07-11 17:45:00 +02:00
2017-07-11 17:45:00 +02:00
136
2017-08-08 15:19:16 +02:00
2016-05-19 16:45:31 +02:00
141
2017-08-01 18:09:33 +02:00
142
2017-07-11 17:45:00 +02:00
2017-07-10 13:18:05 +02:00
156
2017-08-01 18:09:33 +02:00
159
2017-07-11 17:44:59 +02:00
2016-09-20 22:10:57 +02:00
160
2016-09-20 22:10:57 +02:00
2016-09-20 22:10:57 +02:00
170
2017-07-11 17:44:59 +02:00
2016-09-20 22:10:57 +02:00
171
2017-07-11 17:45:00 +02:00
2017-02-12 00:47:42 +01:00
178
2017-07-11 17:45:01 +02:00
2017-04-27 15:39:49 +02:00
183
2017-06-09 11:45:03 +02:00
2017-06-09 11:45:03 +02:00
185
2017-08-11 14:44:39 +02:00
186
2017-08-01 18:09:33 +02:00

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