From: Max Reitz <mreitz@redhat.com>
To: Kevin Wolf <kwolf@redhat.com>, qemu-devel@nongnu.org
Cc: benoit.canet@irqsave.net, armbru@redhat.com, stefanha@redhat.com
Subject: Re: [Qemu-devel] [PATCH v2 0/9] bdrv_open() cleanups, part 1
Date: Thu, 26 Jun 2014 23:17:29 +0200 [thread overview]
Message-ID: <53AC8DE9.4030001@redhat.com> (raw)
In-Reply-To: <1403706959-6979-1-git-send-email-kwolf@redhat.com>
[-- Attachment #1: Type: text/plain, Size: 1650 bytes --]
On 25.06.2014 16:35, Kevin Wolf wrote:
> This is the first part of an attempt for disentangling bdrv_open(). At the end
> of this series, bdrv_open() code is somewhat easier to read, but the real
> changes (including some bug fixes and changes of behaviour) haven't happened
> yet.
>
> Just sending out the first part now to get this merged early and avoid
> conflicts.
>
> v2:
> - Rebased on current git master
> - Patch 1: Removed redundant if condition [Benoît]
> Replaced redundant error check with assertion [Eric]
> - Patch 2: Fixed leak in error path [Benoît]
>
> Kevin Wolf (9):
> block: Create bdrv_fill_options()
> block: Move bdrv_fill_options() call to bdrv_open()
> block: Move json: parsing to bdrv_fill_options()
> block: Always pass driver name through options QDict
> block: Use common driver selection code for bdrv_open_file()
> block: Inline bdrv_file_open()
> block: Remove second bdrv_open() recursion
> block: Catch backing files assigned to non-COW drivers
> block: Remove a special case for protocols
>
> block.c | 280 ++++++++++++++++++++++-----------------------
> block/cow.c | 1 +
> block/qcow.c | 1 +
> block/qcow2.c | 1 +
> block/qed.c | 1 +
> block/vmdk.c | 1 +
> include/block/block_int.h | 3 +
> tests/qemu-iotests/051 | 6 +
> tests/qemu-iotests/051.out | 14 ++-
> 9 files changed, 164 insertions(+), 144 deletions(-)
With this series, iotests 040, 041 and 067 fail for me. I attached the
result.
Max
[-- Attachment #2: log --]
[-- Type: text/plain, Size: 29830 bytes --]
QEMU -- /home/mreitz/projects/qemu/tests/qemu-iotests/qemu
QEMU_IMG -- /home/mreitz/projects/qemu/tests/qemu-iotests/qemu-img
QEMU_IO -- /home/mreitz/projects/qemu/tests/qemu-iotests/qemu-io
QEMU_NBD -- /home/mreitz/projects/qemu/tests/qemu-iotests/qemu-nbd
IMGFMT -- qcow2 (compat=1.1)
IMGPROTO -- file
PLATFORM -- Linux/x86_64 dresden 3.14.5-200.fc20.x86_64
SOCKET_SCM_HELPER --
040 10s ... [23:15:41] [23:15:52] [failed, exit status 1] - output mismatch (see 040.out.bad)
--- 040.out 2014-06-26 23:10:00.591073323 +0200
+++ 040.out.bad 2014-06-26 23:15:52.102465884 +0200
@@ -1,5 +1,47 @@
-........................
+.....F.......F.......F..
+======================================================================
+FAIL: test_top_is_active (__main__.TestActiveZeroLengthImage)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "./040", line 112, in test_top_is_active
+ self.run_commit_test(test_img, backing_img, need_ready=True)
+ File "./040", line 57, in run_commit_test
+ self.assert_qmp(event, 'data/type', 'commit')
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 232, in assert_qmp
+ result = self.dictpath(d, path)
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 211, in dictpath
+ self.fail('failed path traversal for "%s" in "%s"' % (path, str(d)))
+AssertionError: failed path traversal for "data/type" in "{u'device': u'drive0'}"
+
+======================================================================
+FAIL: test_top_is_active (__main__.TestRelativePaths)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "./040", line 202, in test_top_is_active
+ self.run_commit_test(self.test_img, self.backing_img)
+ File "./040", line 57, in run_commit_test
+ self.assert_qmp(event, 'data/type', 'commit')
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 232, in assert_qmp
+ result = self.dictpath(d, path)
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 211, in dictpath
+ self.fail('failed path traversal for "%s" in "%s"' % (path, str(d)))
+AssertionError: failed path traversal for "data/type" in "{u'device': u'drive0'}"
+
+======================================================================
+FAIL: test_top_is_active (__main__.TestSingleDrive)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "./040", line 112, in test_top_is_active
+ self.run_commit_test(test_img, backing_img, need_ready=True)
+ File "./040", line 57, in run_commit_test
+ self.assert_qmp(event, 'data/type', 'commit')
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 232, in assert_qmp
+ result = self.dictpath(d, path)
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 211, in dictpath
+ self.fail('failed path traversal for "%s" in "%s"' % (path, str(d)))
+AssertionError: failed path traversal for "data/type" in "{u'device': u'drive0'}"
+
----------------------------------------------------------------------
Ran 24 tests
-OK
+FAILED (failures=3)
041 17s ... [23:15:52] [23:16:21] [failed, exit status 1] - output mismatch (see 041.out.bad)
--- 041.out 2014-06-26 23:10:00.591073323 +0200
+++ 041.out.bad 2014-06-26 23:16:21.502833277 +0200
@@ -1,5 +1,399 @@
-...................................
+FEFFFFFF..FF.FF..F.FFF.FF...FFFFFFFF
+======================================================================
+ERROR: test_cancel (__main__.TestMirrorNoBacking)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "./041", line 235, in tearDown
+ os.remove(target_backing_img)
+OSError: [Errno 2] No such file or directory: '/home/mreitz/projects/qemu/tests/qemu-iotests/scratch/target-backing.img'
+
+======================================================================
+FAIL: test_cancel (__main__.TestMirrorNoBacking)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "./041", line 261, in test_cancel
+ self.wait_ready_and_cancel()
+ File "./041", line 45, in wait_ready_and_cancel
+ self.wait_ready(drive)
+ File "./041", line 40, in wait_ready
+ self.assert_qmp(event, 'data/type', 'mirror')
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 232, in assert_qmp
+ result = self.dictpath(d, path)
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 211, in dictpath
+ self.fail('failed path traversal for "%s" in "%s"' % (path, str(d)))
+AssertionError: failed path traversal for "data/type" in "{u'device': u'drive0'}"
+
+======================================================================
+FAIL: test_complete (__main__.TestMirrorNoBacking)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "./041", line 246, in test_complete
+ self.complete_and_wait()
+ File "./041", line 219, in complete_and_wait
+ return ImageMirroringTestCase.complete_and_wait(self, drive, wait_ready)
+ File "./041", line 55, in complete_and_wait
+ self.wait_ready()
+ File "./041", line 40, in wait_ready
+ self.assert_qmp(event, 'data/type', 'mirror')
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 232, in assert_qmp
+ result = self.dictpath(d, path)
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 211, in dictpath
+ self.fail('failed path traversal for "%s" in "%s"' % (path, str(d)))
+AssertionError: failed path traversal for "data/type" in "{u'device': u'drive0'}"
+
+======================================================================
+FAIL: test_large_cluster (__main__.TestMirrorNoBacking)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "./041", line 282, in test_large_cluster
+ self.complete_and_wait()
+ File "./041", line 219, in complete_and_wait
+ return ImageMirroringTestCase.complete_and_wait(self, drive, wait_ready)
+ File "./041", line 55, in complete_and_wait
+ self.wait_ready()
+ File "./041", line 40, in wait_ready
+ self.assert_qmp(event, 'data/type', 'mirror')
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 232, in assert_qmp
+ result = self.dictpath(d, path)
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 211, in dictpath
+ self.fail('failed path traversal for "%s" in "%s"' % (path, str(d)))
+AssertionError: failed path traversal for "data/type" in "{u'device': u'drive0'}"
+
+======================================================================
+FAIL: test_complete_full (__main__.TestMirrorResized)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "./041", line 330, in test_complete_full
+ self.complete_and_wait()
+ File "./041", line 55, in complete_and_wait
+ self.wait_ready()
+ File "./041", line 40, in wait_ready
+ self.assert_qmp(event, 'data/type', 'mirror')
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 232, in assert_qmp
+ result = self.dictpath(d, path)
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 211, in dictpath
+ self.fail('failed path traversal for "%s" in "%s"' % (path, str(d)))
+AssertionError: failed path traversal for "data/type" in "{u'device': u'drive0'}"
+
+======================================================================
+FAIL: test_complete_top (__main__.TestMirrorResized)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "./041", line 316, in test_complete_top
+ self.complete_and_wait()
+ File "./041", line 55, in complete_and_wait
+ self.wait_ready()
+ File "./041", line 40, in wait_ready
+ self.assert_qmp(event, 'data/type', 'mirror')
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 232, in assert_qmp
+ result = self.dictpath(d, path)
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 211, in dictpath
+ self.fail('failed path traversal for "%s" in "%s"' % (path, str(d)))
+AssertionError: failed path traversal for "data/type" in "{u'device': u'drive0'}"
+
+======================================================================
+FAIL: test_ignore_read (__main__.TestReadErrors)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "./041", line 428, in test_ignore_read
+ self.complete_and_wait()
+ File "./041", line 55, in complete_and_wait
+ self.wait_ready()
+ File "./041", line 40, in wait_ready
+ self.assert_qmp(event, 'data/type', 'mirror')
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 232, in assert_qmp
+ result = self.dictpath(d, path)
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 211, in dictpath
+ self.fail('failed path traversal for "%s" in "%s"' % (path, str(d)))
+AssertionError: failed path traversal for "data/type" in "{u'device': u'drive0'}"
+
+======================================================================
+FAIL: test_large_cluster (__main__.TestReadErrors)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "./041", line 449, in test_large_cluster
+ self.complete_and_wait()
+ File "./041", line 55, in complete_and_wait
+ self.wait_ready()
+ File "./041", line 40, in wait_ready
+ self.assert_qmp(event, 'data/type', 'mirror')
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 232, in assert_qmp
+ result = self.dictpath(d, path)
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 211, in dictpath
+ self.fail('failed path traversal for "%s" in "%s"' % (path, str(d)))
+AssertionError: failed path traversal for "data/type" in "{u'device': u'drive0'}"
+
+======================================================================
+FAIL: test_set_speed (__main__.TestSetSpeed)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "./041", line 654, in test_set_speed
+ self.wait_ready_and_cancel()
+ File "./041", line 45, in wait_ready_and_cancel
+ self.wait_ready(drive)
+ File "./041", line 40, in wait_ready
+ self.assert_qmp(event, 'data/type', 'mirror')
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 232, in assert_qmp
+ result = self.dictpath(d, path)
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 211, in dictpath
+ self.fail('failed path traversal for "%s" in "%s"' % (path, str(d)))
+AssertionError: failed path traversal for "data/type" in "{u'device': u'drive0'}"
+
+======================================================================
+FAIL: test_set_speed_invalid (__main__.TestSetSpeed)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "./041", line 683, in test_set_speed_invalid
+ self.wait_ready_and_cancel()
+ File "./041", line 45, in wait_ready_and_cancel
+ self.wait_ready(drive)
+ File "./041", line 40, in wait_ready
+ self.assert_qmp(event, 'data/type', 'mirror')
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 232, in assert_qmp
+ result = self.dictpath(d, path)
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 211, in dictpath
+ self.fail('failed path traversal for "%s" in "%s"' % (path, str(d)))
+AssertionError: failed path traversal for "data/type" in "{u'device': u'drive0'}"
+
+======================================================================
+FAIL: test_cancel_after_ready (__main__.TestSingleDrive)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "./041", line 114, in test_cancel_after_ready
+ self.wait_ready_and_cancel()
+ File "./041", line 45, in wait_ready_and_cancel
+ self.wait_ready(drive)
+ File "./041", line 40, in wait_ready
+ self.assert_qmp(event, 'data/type', 'mirror')
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 232, in assert_qmp
+ result = self.dictpath(d, path)
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 211, in dictpath
+ self.fail('failed path traversal for "%s" in "%s"' % (path, str(d)))
+AssertionError: failed path traversal for "data/type" in "{u'device': u'drive0'}"
+
+======================================================================
+FAIL: test_complete (__main__.TestSingleDrive)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "./041", line 88, in test_complete
+ self.complete_and_wait()
+ File "./041", line 55, in complete_and_wait
+ self.wait_ready()
+ File "./041", line 40, in wait_ready
+ self.assert_qmp(event, 'data/type', 'mirror')
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 232, in assert_qmp
+ result = self.dictpath(d, path)
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 211, in dictpath
+ self.fail('failed path traversal for "%s" in "%s"' % (path, str(d)))
+AssertionError: failed path traversal for "data/type" in "{u'device': u'drive0'}"
+
+======================================================================
+FAIL: test_large_cluster (__main__.TestSingleDrive)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "./041", line 187, in test_large_cluster
+ self.complete_and_wait()
+ File "./041", line 55, in complete_and_wait
+ self.wait_ready()
+ File "./041", line 40, in wait_ready
+ self.assert_qmp(event, 'data/type', 'mirror')
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 232, in assert_qmp
+ result = self.dictpath(d, path)
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 211, in dictpath
+ self.fail('failed path traversal for "%s" in "%s"' % (path, str(d)))
+AssertionError: failed path traversal for "data/type" in "{u'device': u'drive0'}"
+
+======================================================================
+FAIL: test_pause (__main__.TestSingleDrive)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "./041", line 142, in test_pause
+ self.complete_and_wait()
+ File "./041", line 55, in complete_and_wait
+ self.wait_ready()
+ File "./041", line 40, in wait_ready
+ self.assert_qmp(event, 'data/type', 'mirror')
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 232, in assert_qmp
+ result = self.dictpath(d, path)
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 211, in dictpath
+ self.fail('failed path traversal for "%s" in "%s"' % (path, str(d)))
+AssertionError: failed path traversal for "data/type" in "{u'device': u'drive0'}"
+
+======================================================================
+FAIL: test_small_buffer (__main__.TestSingleDrive)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "./041", line 155, in test_small_buffer
+ self.complete_and_wait()
+ File "./041", line 55, in complete_and_wait
+ self.wait_ready()
+ File "./041", line 40, in wait_ready
+ self.assert_qmp(event, 'data/type', 'mirror')
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 232, in assert_qmp
+ result = self.dictpath(d, path)
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 211, in dictpath
+ self.fail('failed path traversal for "%s" in "%s"' % (path, str(d)))
+AssertionError: failed path traversal for "data/type" in "{u'device': u'drive0'}"
+
+======================================================================
+FAIL: test_small_buffer2 (__main__.TestSingleDrive)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "./041", line 171, in test_small_buffer2
+ self.complete_and_wait()
+ File "./041", line 55, in complete_and_wait
+ self.wait_ready()
+ File "./041", line 40, in wait_ready
+ self.assert_qmp(event, 'data/type', 'mirror')
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 232, in assert_qmp
+ result = self.dictpath(d, path)
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 211, in dictpath
+ self.fail('failed path traversal for "%s" in "%s"' % (path, str(d)))
+AssertionError: failed path traversal for "data/type" in "{u'device': u'drive0'}"
+
+======================================================================
+FAIL: test_cancel_after_ready (__main__.TestSingleDriveZeroLength)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "./041", line 114, in test_cancel_after_ready
+ self.wait_ready_and_cancel()
+ File "./041", line 45, in wait_ready_and_cancel
+ self.wait_ready(drive)
+ File "./041", line 40, in wait_ready
+ self.assert_qmp(event, 'data/type', 'mirror')
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 232, in assert_qmp
+ result = self.dictpath(d, path)
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 211, in dictpath
+ self.fail('failed path traversal for "%s" in "%s"' % (path, str(d)))
+AssertionError: failed path traversal for "data/type" in "{u'device': u'drive0'}"
+
+======================================================================
+FAIL: test_complete (__main__.TestSingleDriveZeroLength)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "./041", line 88, in test_complete
+ self.complete_and_wait()
+ File "./041", line 55, in complete_and_wait
+ self.wait_ready()
+ File "./041", line 40, in wait_ready
+ self.assert_qmp(event, 'data/type', 'mirror')
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 232, in assert_qmp
+ result = self.dictpath(d, path)
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 211, in dictpath
+ self.fail('failed path traversal for "%s" in "%s"' % (path, str(d)))
+AssertionError: failed path traversal for "data/type" in "{u'device': u'drive0'}"
+
+======================================================================
+FAIL: test_pause (__main__.TestSingleDriveZeroLength)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "./041", line 142, in test_pause
+ self.complete_and_wait()
+ File "./041", line 55, in complete_and_wait
+ self.wait_ready()
+ File "./041", line 40, in wait_ready
+ self.assert_qmp(event, 'data/type', 'mirror')
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 232, in assert_qmp
+ result = self.dictpath(d, path)
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 211, in dictpath
+ self.fail('failed path traversal for "%s" in "%s"' % (path, str(d)))
+AssertionError: failed path traversal for "data/type" in "{u'device': u'drive0'}"
+
+======================================================================
+FAIL: test_small_buffer (__main__.TestSingleDriveZeroLength)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "./041", line 155, in test_small_buffer
+ self.complete_and_wait()
+ File "./041", line 55, in complete_and_wait
+ self.wait_ready()
+ File "./041", line 40, in wait_ready
+ self.assert_qmp(event, 'data/type', 'mirror')
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 232, in assert_qmp
+ result = self.dictpath(d, path)
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 211, in dictpath
+ self.fail('failed path traversal for "%s" in "%s"' % (path, str(d)))
+AssertionError: failed path traversal for "data/type" in "{u'device': u'drive0'}"
+
+======================================================================
+FAIL: test_absolute_paths_full (__main__.TestUnbackedSource)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "./041", line 705, in test_absolute_paths_full
+ self.complete_and_wait()
+ File "./041", line 55, in complete_and_wait
+ self.wait_ready()
+ File "./041", line 40, in wait_ready
+ self.assert_qmp(event, 'data/type', 'mirror')
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 232, in assert_qmp
+ result = self.dictpath(d, path)
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 211, in dictpath
+ self.fail('failed path traversal for "%s" in "%s"' % (path, str(d)))
+AssertionError: failed path traversal for "data/type" in "{u'device': u'drive0'}"
+
+======================================================================
+FAIL: test_absolute_paths_none (__main__.TestUnbackedSource)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "./041", line 723, in test_absolute_paths_none
+ self.complete_and_wait()
+ File "./041", line 55, in complete_and_wait
+ self.wait_ready()
+ File "./041", line 40, in wait_ready
+ self.assert_qmp(event, 'data/type', 'mirror')
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 232, in assert_qmp
+ result = self.dictpath(d, path)
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 211, in dictpath
+ self.fail('failed path traversal for "%s" in "%s"' % (path, str(d)))
+AssertionError: failed path traversal for "data/type" in "{u'device': u'drive0'}"
+
+======================================================================
+FAIL: test_absolute_paths_top (__main__.TestUnbackedSource)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "./041", line 714, in test_absolute_paths_top
+ self.complete_and_wait()
+ File "./041", line 55, in complete_and_wait
+ self.wait_ready()
+ File "./041", line 40, in wait_ready
+ self.assert_qmp(event, 'data/type', 'mirror')
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 232, in assert_qmp
+ result = self.dictpath(d, path)
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 211, in dictpath
+ self.fail('failed path traversal for "%s" in "%s"' % (path, str(d)))
+AssertionError: failed path traversal for "data/type" in "{u'device': u'drive0'}"
+
+======================================================================
+FAIL: test_ignore_write (__main__.TestWriteErrors)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "./041", line 576, in test_ignore_write
+ self.assert_qmp(event, 'data/device', 'drive0')
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 233, in assert_qmp
+ self.assertEqual(result, value, 'values not equal "%s" and "%s"' % (str(result), str(value)))
+AssertionError: values not equal "" and "drive0"
+
+======================================================================
+FAIL: test_report_write (__main__.TestWriteErrors)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "./041", line 550, in test_report_write
+ self.assert_qmp(event, 'data/device', 'drive0')
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 233, in assert_qmp
+ self.assertEqual(result, value, 'values not equal "%s" and "%s"' % (str(result), str(value)))
+AssertionError: values not equal "" and "drive0"
+
+======================================================================
+FAIL: test_stop_write (__main__.TestWriteErrors)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "./041", line 596, in test_stop_write
+ self.assert_qmp(event, 'data/device', 'drive0')
+ File "/home/mreitz/projects/qemu/tests/qemu-iotests/iotests.py", line 233, in assert_qmp
+ self.assertEqual(result, value, 'values not equal "%s" and "%s"' % (str(result), str(value)))
+AssertionError: values not equal "" and "drive0"
+
----------------------------------------------------------------------
Ran 35 tests
-OK
+FAILED (failures=25, errors=1)
067 1s ... [23:16:21] [23:16:21] - output mismatch (see 067.out.bad)
--- 067.out 2014-06-26 23:10:00.593073348 +0200
+++ 067.out.bad 2014-06-26 23:16:21.883838039 +0200
@@ -9,7 +9,6 @@
{"return": [{"io-status": "ok", "device": "disk", "locked": false, "removable": false, "inserted": {"iops_rd": 0, "detect_zeroes": "off", "image": {"virtual-size": 134217728, "filename": "TEST_DIR/t.qcow2", "cluster-size": 65536, "format": "qcow2", "actual-size": SIZE, "format-specific": {"type": "qcow2", "data": {"compat": "1.1", "lazy-refcounts": false}}, "dirty-flag": false}, "iops_wr": 0, "ro": false, "backing_file_depth": 0, "drv": "qcow2", "iops": 0, "bps_wr": 0, "encrypted": false, "bps": 0, "bps_rd": 0, "file": "TEST_DIR/t.qcow2", "encryption_key_missing": false}, "type": "unknown"}, {"io-status": "ok", "device": "ide1-cd0", "locked": false, "removable": true, "tray_open": false, "type": "unknown"}, {"device": "floppy0", "locked": false, "removable": true, "tray_open": false, "type": "unknown"}, {"device": "sd0", "locked": false, "removable": true, "tray_open": false, "type": "unknown"}]}
{"return": {}}
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "DEVICE_DELETED", "data": {"path": "/machine/peripheral/virtio0/virtio-backend"}}
{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "DEVICE_DELETED", "data": {"device": "virtio0", "path": "/machine/peripheral/virtio0"}}
{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "RESET"}
{"return": [{"io-status": "ok", "device": "ide1-cd0", "locked": false, "removable": true, "tray_open": false, "type": "unknown"}, {"device": "floppy0", "locked": false, "removable": true, "tray_open": false, "type": "unknown"}, {"device": "sd0", "locked": false, "removable": true, "tray_open": false, "type": "unknown"}]}
@@ -28,7 +27,6 @@
{"return": {}}
{"return": {}}
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "DEVICE_DELETED", "data": {"path": "/machine/peripheral/virtio0/virtio-backend"}}
{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "DEVICE_DELETED", "data": {"device": "virtio0", "path": "/machine/peripheral/virtio0"}}
{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "RESET"}
{"return": [{"io-status": "ok", "device": "ide1-cd0", "locked": false, "removable": true, "tray_open": false, "type": "unknown"}, {"device": "floppy0", "locked": false, "removable": true, "tray_open": false, "type": "unknown"}, {"device": "sd0", "locked": false, "removable": true, "tray_open": false, "type": "unknown"}]}
@@ -48,7 +46,6 @@
{"return": {}}
{"return": {}}
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "DEVICE_DELETED", "data": {"path": "/machine/peripheral/virtio0/virtio-backend"}}
{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "DEVICE_DELETED", "data": {"device": "virtio0", "path": "/machine/peripheral/virtio0"}}
{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "RESET"}
{"return": [{"io-status": "ok", "device": "ide1-cd0", "locked": false, "removable": true, "tray_open": false, "type": "unknown"}, {"device": "floppy0", "locked": false, "removable": true, "tray_open": false, "type": "unknown"}, {"device": "sd0", "locked": false, "removable": true, "tray_open": false, "type": "unknown"}]}
@@ -68,7 +65,6 @@
{"return": {}}
{"return": {}}
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "DEVICE_DELETED", "data": {"path": "/machine/peripheral/virtio0/virtio-backend"}}
{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "DEVICE_DELETED", "data": {"device": "virtio0", "path": "/machine/peripheral/virtio0"}}
{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "RESET"}
{"return": [{"io-status": "ok", "device": "ide1-cd0", "locked": false, "removable": true, "tray_open": false, "type": "unknown"}, {"device": "floppy0", "locked": false, "removable": true, "tray_open": false, "type": "unknown"}, {"device": "sd0", "locked": false, "removable": true, "tray_open": false, "type": "unknown"}, {"io-status": "ok", "device": "disk", "locked": false, "removable": true, "inserted": {"iops_rd": 0, "detect_zeroes": "off", "image": {"virtual-size": 134217728, "filename": "TEST_DIR/t.qcow2", "cluster-size": 65536, "format": "qcow2", "actual-size": SIZE, "format-specific": {"type": "qcow2", "data": {"compat": "1.1", "lazy-refcounts": false}}, "dirty-flag": false}, "iops_wr": 0, "ro": false, "backing_file_depth": 0, "drv": "qcow2", "iops": 0, "bps_wr": 0, "encrypted": false, "bps": 0, "bps_rd": 0, "file": "TEST_DIR/t.qcow2", "encryption_key_missing": false}, "tray_open": false, "type": "unknown"}]}
Failures: 040 041 067
Failed 3 of 3 tests
next prev parent reply other threads:[~2014-06-26 21:17 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-25 14:35 [Qemu-devel] [PATCH v2 0/9] bdrv_open() cleanups, part 1 Kevin Wolf
2014-06-25 14:35 ` [Qemu-devel] [PATCH v2 1/9] block: Create bdrv_fill_options() Kevin Wolf
2014-06-25 15:37 ` Eric Blake
2014-06-25 14:35 ` [Qemu-devel] [PATCH v2 2/9] block: Move bdrv_fill_options() call to bdrv_open() Kevin Wolf
2014-06-25 15:40 ` Eric Blake
2014-06-25 14:35 ` [Qemu-devel] [PATCH v2 3/9] block: Move json: parsing to bdrv_fill_options() Kevin Wolf
2014-06-25 14:35 ` [Qemu-devel] [PATCH v2 4/9] block: Always pass driver name through options QDict Kevin Wolf
2014-06-25 14:35 ` [Qemu-devel] [PATCH v2 5/9] block: Use common driver selection code for bdrv_open_file() Kevin Wolf
2014-06-25 14:35 ` [Qemu-devel] [PATCH v2 6/9] block: Inline bdrv_file_open() Kevin Wolf
2014-06-25 15:49 ` Eric Blake
2014-06-25 14:35 ` [Qemu-devel] [PATCH v2 7/9] block: Remove second bdrv_open() recursion Kevin Wolf
2014-06-25 15:52 ` Eric Blake
2014-06-25 14:35 ` [Qemu-devel] [PATCH v2 8/9] block: Catch backing files assigned to non-COW drivers Kevin Wolf
2014-06-25 15:53 ` Eric Blake
2014-06-25 14:35 ` [Qemu-devel] [PATCH v2 9/9] block: Remove a special case for protocols Kevin Wolf
2014-06-25 15:55 ` Eric Blake
2014-06-26 10:17 ` [Qemu-devel] [PATCH v2 0/9] bdrv_open() cleanups, part 1 Kevin Wolf
2014-06-26 21:17 ` Max Reitz [this message]
2014-06-26 21:46 ` Eric Blake
2014-06-26 21:48 ` Max Reitz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=53AC8DE9.4030001@redhat.com \
--to=mreitz@redhat.com \
--cc=armbru@redhat.com \
--cc=benoit.canet@irqsave.net \
--cc=kwolf@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.