diff mbox

iotest 055: refactor and speed up

Message ID 1470506994-36251-1-git-send-email-vsementsov@virtuozzo.com (mailing list archive)
State New, archived
Headers show

Commit Message

Vladimir Sementsov-Ogievskiy Aug. 6, 2016, 6:09 p.m. UTC
Source disk is created and filled with test data before each test case.
Instead initialize it once for the whole unit.

performance:
qcow2: 25s -> 15s
  raw: 16s -> 11s

Actually, changed only TestSetSpeed: before this patch it used different
image_len and data pattern.
Alse TestSetSpeed used different image_len for source and target (by
mistake) - this is automatically fixed here.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
---
 tests/qemu-iotests/055 | 41 ++++++++++++++++-------------------------
 1 file changed, 16 insertions(+), 25 deletions(-)

Comments

Fam Zheng Aug. 8, 2016, 2:56 a.m. UTC | #1
On Sat, 08/06 21:09, Vladimir Sementsov-Ogievskiy wrote:
> Source disk is created and filled with test data before each test case.
> Instead initialize it once for the whole unit.
> 
> performance:
> qcow2: 25s -> 15s
>   raw: 16s -> 11s
> 
> Actually, changed only TestSetSpeed: before this patch it used different
> image_len and data pattern.
> Alse TestSetSpeed used different image_len for source and target (by
> mistake) - this is automatically fixed here.
> 
> Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>

Reviewed-by: Fam Zheng <famz@redhat.com>
Kevin Wolf Aug. 9, 2016, 8:50 a.m. UTC | #2
Am 06.08.2016 um 20:09 hat Vladimir Sementsov-Ogievskiy geschrieben:
> Source disk is created and filled with test data before each test case.
> Instead initialize it once for the whole unit.
> 
> performance:
> qcow2: 25s -> 15s
>   raw: 16s -> 11s
> 
> Actually, changed only TestSetSpeed: before this patch it used different
> image_len and data pattern.
> Alse TestSetSpeed used different image_len for source and target (by
> mistake) - this is automatically fixed here.
> 
> Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>

This doesn't work on top of my block-next branch. The compressed backup
patches add a class which still deletes test.img in its teardown, so any
following tests fail. Can you rebase, please?

Kevin
Vladimir Sementsov-Ogievskiy Aug. 9, 2016, 10:05 a.m. UTC | #3
On 09.08.2016 11:50, Kevin Wolf wrote:
> Am 06.08.2016 um 20:09 hat Vladimir Sementsov-Ogievskiy geschrieben:
>> Source disk is created and filled with test data before each test case.
>> Instead initialize it once for the whole unit.
>>
>> performance:
>> qcow2: 25s -> 15s
>>    raw: 16s -> 11s
>>
>> Actually, changed only TestSetSpeed: before this patch it used different
>> image_len and data pattern.
>> Alse TestSetSpeed used different image_len for source and target (by
>> mistake) - this is automatically fixed here.
>>
>> Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
> This doesn't work on top of my block-next branch. The compressed backup
> patches add a class which still deletes test.img in its teardown, so any
> following tests fail. Can you rebase, please?
>
> Kevin
No problem, ok.
diff mbox

Patch

diff --git a/tests/qemu-iotests/055 b/tests/qemu-iotests/055
index c8e3578..74b50a1 100755
--- a/tests/qemu-iotests/055
+++ b/tests/qemu-iotests/055
@@ -29,17 +29,22 @@  test_img = os.path.join(iotests.test_dir, 'test.img')
 target_img = os.path.join(iotests.test_dir, 'target.img')
 blockdev_target_img = os.path.join(iotests.test_dir, 'blockdev-target.img')
 
-class TestSingleDrive(iotests.QMPTestCase):
-    image_len = 64 * 1024 * 1024 # MB
+image_len = 64 * 1024 * 1024 # MB
+
+def setUpModule():
+    qemu_img('create', '-f', iotests.imgfmt, test_img, str(image_len))
+    qemu_io('-f', iotests.imgfmt, '-c', 'write -P0x5d 0 64k', test_img)
+    qemu_io('-f', iotests.imgfmt, '-c', 'write -P0xd5 1M 32k', test_img)
+    qemu_io('-f', iotests.imgfmt, '-c', 'write -P0xdc 32M 124k', test_img)
+    qemu_io('-f', iotests.imgfmt, '-c', 'write -P0xdc 67043328 64k', test_img)
+
+def tearDownModule():
+    os.remove(test_img)
+
 
+class TestSingleDrive(iotests.QMPTestCase):
     def setUp(self):
-        # Write data to the image so we can compare later
-        qemu_img('create', '-f', iotests.imgfmt, test_img, str(TestSingleDrive.image_len))
-        qemu_io('-f', iotests.imgfmt, '-c', 'write -P0x5d 0 64k', test_img)
-        qemu_io('-f', iotests.imgfmt, '-c', 'write -P0xd5 1M 32k', test_img)
-        qemu_io('-f', iotests.imgfmt, '-c', 'write -P0xdc 32M 124k', test_img)
-        qemu_io('-f', iotests.imgfmt, '-c', 'write -P0xdc 67043328 64k', test_img)
-        qemu_img('create', '-f', iotests.imgfmt, blockdev_target_img, str(TestSingleDrive.image_len))
+        qemu_img('create', '-f', iotests.imgfmt, blockdev_target_img, str(image_len))
 
         self.vm = iotests.VM().add_drive(test_img).add_drive(blockdev_target_img)
         if iotests.qemu_default_machine == 'pc':
@@ -48,7 +53,6 @@  class TestSingleDrive(iotests.QMPTestCase):
 
     def tearDown(self):
         self.vm.shutdown()
-        os.remove(test_img)
         os.remove(blockdev_target_img)
         try:
             os.remove(target_img)
@@ -158,19 +162,14 @@  class TestSingleDrive(iotests.QMPTestCase):
         self.assert_qmp(result, 'error/class', 'GenericError')
 
 class TestSetSpeed(iotests.QMPTestCase):
-    image_len = 80 * 1024 * 1024 # MB
-
     def setUp(self):
-        qemu_img('create', '-f', iotests.imgfmt, test_img, str(TestSetSpeed.image_len))
-        qemu_io('-f', iotests.imgfmt, '-c', 'write -P1 0 512', test_img)
-        qemu_img('create', '-f', iotests.imgfmt, blockdev_target_img, str(TestSingleDrive.image_len))
+        qemu_img('create', '-f', iotests.imgfmt, blockdev_target_img, str(image_len))
 
         self.vm = iotests.VM().add_drive(test_img).add_drive(blockdev_target_img)
         self.vm.launch()
 
     def tearDown(self):
         self.vm.shutdown()
-        os.remove(test_img)
         os.remove(blockdev_target_img)
         try:
             os.remove(target_img)
@@ -246,15 +245,8 @@  class TestSetSpeed(iotests.QMPTestCase):
         self.do_test_set_speed_invalid('blockdev-backup',  'drive1')
 
 class TestSingleTransaction(iotests.QMPTestCase):
-    image_len = 64 * 1024 * 1024 # MB
-
     def setUp(self):
-        qemu_img('create', '-f', iotests.imgfmt, test_img, str(TestSingleTransaction.image_len))
-        qemu_io('-f', iotests.imgfmt, '-c', 'write -P0x5d 0 64k', test_img)
-        qemu_io('-f', iotests.imgfmt, '-c', 'write -P0xd5 1M 32k', test_img)
-        qemu_io('-f', iotests.imgfmt, '-c', 'write -P0xdc 32M 124k', test_img)
-        qemu_io('-f', iotests.imgfmt, '-c', 'write -P0xdc 67043328 64k', test_img)
-        qemu_img('create', '-f', iotests.imgfmt, blockdev_target_img, str(TestSingleDrive.image_len))
+        qemu_img('create', '-f', iotests.imgfmt, blockdev_target_img, str(image_len))
 
         self.vm = iotests.VM().add_drive(test_img).add_drive(blockdev_target_img)
         if iotests.qemu_default_machine == 'pc':
@@ -263,7 +255,6 @@  class TestSingleTransaction(iotests.QMPTestCase):
 
     def tearDown(self):
         self.vm.shutdown()
-        os.remove(test_img)
         os.remove(blockdev_target_img)
         try:
             os.remove(target_img)