libqos: improve event_index test with timeout
commite8c81b4d8a5a2fd125e559cb02b8a87598419041
authorStefan Hajnoczi <stefanha@redhat.com>
Mon, 29 Sep 2014 15:40:11 +0000 (29 16:40 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Mon, 29 Sep 2014 16:31:08 +0000 (29 17:31 +0100)
treea7fc7c59c24b280e203d4b5b1694c5df1c770aa4
parented9114356b587b362f5ed10e75366a4f07ed32af
libqos: improve event_index test with timeout

The virtio event_index feature lets the device driver tell the device
how many requests to process before raising the next interrupt.
virtio-blk-test.c tries to verify that the device does not raise an
interrupt unnecessarily.

Unfortunately the test has a race condition.  It spins checking for an
interrupt up to 100 times and then assumes the request has finished.  On
a slow host the I/O request could still be in flight and the test would
fail.

This patch waits for the request to complete, or until a 30-second
timeout is reached.  If an interrupt is raised while waiting the test
fails since the device was not supposed to raise interrupts.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
tests/libqos/virtio.c
tests/libqos/virtio.h
tests/virtio-blk-test.c