summaryrefslogtreecommitdiffstats
path: root/qemu/tests/qemu-iotests/148
diff options
context:
space:
mode:
authorRajithaY <rajithax.yerrumsetty@intel.com>2017-04-25 03:31:15 -0700
committerRajitha Yerrumchetty <rajithax.yerrumsetty@intel.com>2017-05-22 06:48:08 +0000
commitbb756eebdac6fd24e8919e2c43f7d2c8c4091f59 (patch)
treeca11e03542edf2d8f631efeca5e1626d211107e3 /qemu/tests/qemu-iotests/148
parenta14b48d18a9ed03ec191cf16b162206998a895ce (diff)
Adding qemu as a submodule of KVMFORNFV
This Patch includes the changes to add qemu as a submodule to kvmfornfv repo and make use of the updated latest qemu for the execution of all testcase Change-Id: I1280af507a857675c7f81d30c95255635667bdd7 Signed-off-by:RajithaY<rajithax.yerrumsetty@intel.com>
Diffstat (limited to 'qemu/tests/qemu-iotests/148')
-rw-r--r--qemu/tests/qemu-iotests/148140
1 files changed, 0 insertions, 140 deletions
diff --git a/qemu/tests/qemu-iotests/148 b/qemu/tests/qemu-iotests/148
deleted file mode 100644
index e01b061fe..000000000
--- a/qemu/tests/qemu-iotests/148
+++ /dev/null
@@ -1,140 +0,0 @@
-#!/usr/bin/env python
-#
-# Test the rate limit of QMP events
-#
-# Copyright (C) 2016 Igalia, S.L.
-# Author: Alberto Garcia <berto@igalia.com>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-
-import os
-import iotests
-
-imgs = (os.path.join(iotests.test_dir, 'quorum0.img'),
- os.path.join(iotests.test_dir, 'quorum1.img'),
- os.path.join(iotests.test_dir, 'quorum2.img'))
-
-img_conf = (os.path.join(iotests.test_dir, 'quorum0.conf'),
- os.path.join(iotests.test_dir, 'quorum1.conf'),
- os.path.join(iotests.test_dir, 'quorum2.conf'))
-
-event_rate = 1000000000
-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')
- file.write('''
-[inject-error]
-event = "read_aio"
-errno = "5"
-sector = "%d"
-''' % bad_sector)
- file.close()
-
- 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)
- driveopts.append('children.%d.driver=%s' % (i, iotests.imgfmt))
- driveopts.append('children.%d.file.driver=blkdebug' % i)
- driveopts.append('children.%d.file.config=%s' % (i, img_conf[i]))
- driveopts.append('children.%d.file.image.filename=%s' % (i, imgs[i]))
- driveopts.append('children.%d.node-name=img%d' % (i, i))
- self.vm = iotests.VM()
- self.vm.add_drive(None, opts = ','.join(driveopts))
- self.vm.launch()
-
- def tearDown(self):
- self.vm.shutdown()
- for i in range(len(imgs)):
- os.remove(imgs[i])
- os.remove(img_conf[i])
-
- def do_check_event(self, node, sector = 0):
- if node == None:
- self.assertEqual(self.vm.get_qmp_event(), None)
- return
-
- for event in self.vm.get_qmp_events(wait=True):
- if event['event'] == 'QUORUM_REPORT_BAD':
- self.assert_qmp(event, 'data/node-name', node)
- self.assert_qmp(event, 'data/sector-num', sector)
-
- def testQuorum(self):
- # Generate an error and get an event
- self.vm.hmp_qemu_io("drive0", "aio_read %d %d" %
- (offset * sector_size, sector_size))
- self.vm.qtest("clock_step 10")
- self.do_check_event('img0', offset)
-
- # I/O errors in the same child: only one event is emitted
- delay = 10
- for i in range(3):
- self.vm.hmp_qemu_io("drive0", "aio_read %d %d" %
- (offset * sector_size, sector_size))
- self.vm.qtest("clock_step %d" % delay)
- self.do_check_event(None)
-
- # Wait enough so the event is finally emitted
- self.vm.qtest("clock_step %d" % (2 * event_rate))
- self.do_check_event('img0', offset)
-
- # I/O errors in the same child: all events are emitted
- delay = 2 * event_rate
- for i in range(3):
- self.vm.hmp_qemu_io("drive0", "aio_read %d %d" %
- (offset * sector_size, sector_size))
- self.vm.qtest("clock_step %d" % delay)
- self.do_check_event('img0', offset)
-
- # I/O errors in different children: all events are emitted
- delay = 10
- for i in range(len(imgs)):
- 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
- delay = 2 * event_rate
- for i in range(len(imgs)):
- 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.verify_quorum()
- iotests.main(supported_fmts=["raw"])