qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 08/11] qemu-iotests: add no-op streaming test


From: Max Reitz
Subject: Re: [Qemu-devel] [PATCH 08/11] qemu-iotests: add no-op streaming test
Date: Fri, 24 Apr 2015 15:19:54 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0

On 24.04.2015 13:40, Alberto Garcia wrote:
This patch updates test_stream_partial() to test that the block-stream
operation never copies data from the image specified as base.

Signed-off-by: Alberto Garcia <address@hidden>
---
  tests/qemu-iotests/030 | 13 +++++++++++++
  1 file changed, 13 insertions(+)

I think it would be better to add this as an own test case. But I won't oppose adding it as a special case of test_stream_partial either, because strictly speaking, streaming nothing is a special case of streaming partially.

diff --git a/tests/qemu-iotests/030 b/tests/qemu-iotests/030
index 6e6cb5a..a395a03 100755
--- a/tests/qemu-iotests/030
+++ b/tests/qemu-iotests/030
@@ -94,6 +94,19 @@ class TestSingleDrive(iotests.QMPTestCase):
      def test_stream_partial(self):
          self.assert_no_active_block_jobs()
+ # This is a no-op: no data should ever be copied from the base image
+        result = self.vm.qmp('block-stream', device='drive0', base=mid_img)
+        self.assert_qmp(result, 'return', {})
+
+        self.wait_until_completed()
+
+        self.assert_no_active_block_jobs()
+
+        self.assertNotEqual(qemu_io('-f', iotests.imgfmt, '-c', 'map', 
mid_img),
+                            qemu_io('-f', iotests.imgfmt, '-c', 'map', 
test_img),
+                            'image file map matches backing file after a 
no-op')

Well, you haven't really proven anything by doing this, except that the mid_img hasn't been streamed completely into test_img... What you want to prove is that test_img is empty after streaming, right? This can be done by either comparing against an empty image specifically created for this single test, or by comparing the qemu_io map output against "[ 0] 2048/ 2048 sectors not allocated at offset 0 bytes (0)\n", which should be the map output for every empty 1 MB image (regardless of format, and so on).

Max

+
+        # And this is the operation that actually copies data
          result = self.vm.qmp('block-stream', device='drive0', 
base=backing_img)
          self.assert_qmp(result, 'return', {})





reply via email to

[Prev in Thread] Current Thread [Next in Thread]