Commit 509565f3 authored by Alberto Garcia's avatar Alberto Garcia Committed by Max Reitz
Browse files

iotests: Test QUORUM_REPORT_BAD in fifo mode



Signed-off-by: default avatarAlberto Garcia <berto@igalia.com>
Message-id: c0a8dbfdbe939520cda5f661af6f1cd7b6b4df9d.1458034554.git.berto@igalia.com
Reviewed-by: default avatarMax Reitz <mreitz@redhat.com>
Signed-off-by: default avatarMax Reitz <mreitz@redhat.com>
parent 6049490d
Loading
Loading
Loading
Loading
+15 −2
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ sector_size = 512
offset = 10

class TestQuorumEvents(iotests.QMPTestCase):
    read_pattern = 'quorum'

    def create_blkdebug_file(self, blkdebug_file, bad_sector):
        file = open(blkdebug_file, 'w')
@@ -48,6 +49,7 @@ sector = "%d"

    def setUp(self):
        driveopts = ['driver=quorum', 'vote-threshold=2']
        driveopts.append('read-pattern=%s' % self.read_pattern)
        for i in range(len(imgs)):
            iotests.qemu_img('create', '-f', iotests.imgfmt, imgs[i], '1M')
            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" %
                                ((offset + i) * sector_size, sector_size))
            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)

        # 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" %
                                ((offset + i) * sector_size, sector_size))
            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)

        # No more pending events
        self.do_check_event(None)

class TestFifoQuorumEvents(TestQuorumEvents):
    read_pattern = 'fifo'

if __name__ == '__main__':
    iotests.main(supported_fmts=["raw"])
+2 −2
Original line number Diff line number Diff line
.
..
----------------------------------------------------------------------
Ran 1 tests
Ran 2 tests

OK