mirror of https://github.com/xqemu/xqemu.git
iotests: Test QUORUM_REPORT_BAD in fifo mode
Signed-off-by: Alberto Garcia <berto@igalia.com> Message-id: c0a8dbfdbe939520cda5f661af6f1cd7b6b4df9d.1458034554.git.berto@igalia.com Reviewed-by: Max Reitz <mreitz@redhat.com> Signed-off-by: Max Reitz <mreitz@redhat.com>
This commit is contained in:
parent
6049490df4
commit
509565f36f
|
@ -35,6 +35,7 @@ sector_size = 512
|
||||||
offset = 10
|
offset = 10
|
||||||
|
|
||||||
class TestQuorumEvents(iotests.QMPTestCase):
|
class TestQuorumEvents(iotests.QMPTestCase):
|
||||||
|
read_pattern = 'quorum'
|
||||||
|
|
||||||
def create_blkdebug_file(self, blkdebug_file, bad_sector):
|
def create_blkdebug_file(self, blkdebug_file, bad_sector):
|
||||||
file = open(blkdebug_file, 'w')
|
file = open(blkdebug_file, 'w')
|
||||||
|
@ -48,6 +49,7 @@ sector = "%d"
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
driveopts = ['driver=quorum', 'vote-threshold=2']
|
driveopts = ['driver=quorum', 'vote-threshold=2']
|
||||||
|
driveopts.append('read-pattern=%s' % self.read_pattern)
|
||||||
for i in range(len(imgs)):
|
for i in range(len(imgs)):
|
||||||
iotests.qemu_img('create', '-f', iotests.imgfmt, imgs[i], '1M')
|
iotests.qemu_img('create', '-f', iotests.imgfmt, imgs[i], '1M')
|
||||||
self.create_blkdebug_file(img_conf[i], i + offset)
|
self.create_blkdebug_file(img_conf[i], i + offset)
|
||||||
|
@ -112,6 +114,10 @@ sector = "%d"
|
||||||
self.vm.hmp_qemu_io("drive0", "aio_read %d %d" %
|
self.vm.hmp_qemu_io("drive0", "aio_read %d %d" %
|
||||||
((offset + i) * sector_size, sector_size))
|
((offset + i) * sector_size, sector_size))
|
||||||
self.vm.qtest("clock_step %d" % delay)
|
self.vm.qtest("clock_step %d" % delay)
|
||||||
|
# In fifo mode only errors in the first child are detected
|
||||||
|
if i > 0 and self.read_pattern == 'fifo':
|
||||||
|
self.do_check_event(None)
|
||||||
|
else:
|
||||||
self.do_check_event('img%d' % i, offset + i)
|
self.do_check_event('img%d' % i, offset + i)
|
||||||
|
|
||||||
# I/O errors in different children: all events are emitted
|
# I/O errors in different children: all events are emitted
|
||||||
|
@ -120,10 +126,17 @@ sector = "%d"
|
||||||
self.vm.hmp_qemu_io("drive0", "aio_read %d %d" %
|
self.vm.hmp_qemu_io("drive0", "aio_read %d %d" %
|
||||||
((offset + i) * sector_size, sector_size))
|
((offset + i) * sector_size, sector_size))
|
||||||
self.vm.qtest("clock_step %d" % delay)
|
self.vm.qtest("clock_step %d" % delay)
|
||||||
|
# In fifo mode only errors in the first child are detected
|
||||||
|
if i > 0 and self.read_pattern == 'fifo':
|
||||||
|
self.do_check_event(None)
|
||||||
|
else:
|
||||||
self.do_check_event('img%d' % i, offset + i)
|
self.do_check_event('img%d' % i, offset + i)
|
||||||
|
|
||||||
# No more pending events
|
# No more pending events
|
||||||
self.do_check_event(None)
|
self.do_check_event(None)
|
||||||
|
|
||||||
|
class TestFifoQuorumEvents(TestQuorumEvents):
|
||||||
|
read_pattern = 'fifo'
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
iotests.main(supported_fmts=["raw"])
|
iotests.main(supported_fmts=["raw"])
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
.
|
..
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
Ran 1 tests
|
Ran 2 tests
|
||||||
|
|
||||||
OK
|
OK
|
||||||
|
|
Loading…
Reference in New Issue