[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH for-5.0 v2 18/23] iotests: Add VM.assert_block_path()
From: |
Max Reitz |
Subject: |
Re: [PATCH for-5.0 v2 18/23] iotests: Add VM.assert_block_path() |
Date: |
Fri, 20 Dec 2019 12:42:30 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.2.2 |
On 13.12.19 12:27, Vladimir Sementsov-Ogievskiy wrote:
> 11.11.2019 19:02, Max Reitz wrote:
>> Signed-off-by: Max Reitz <address@hidden>
>> ---
>> tests/qemu-iotests/iotests.py | 59 +++++++++++++++++++++++++++++++++++
>> 1 file changed, 59 insertions(+)
>>
>> diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py
>> index d34305ce69..3e03320ce3 100644
>> --- a/tests/qemu-iotests/iotests.py
>> +++ b/tests/qemu-iotests/iotests.py
>> @@ -681,6 +681,65 @@ class VM(qtest.QEMUQtestMachine):
>>
>> return fields.items() <= ret.items()
>>
>> + """
>> + Check whether the node under the given path in the block graph is
>> + @expected_node.
>> +
>> + @root is the node name of the node where the @path is rooted.
>> +
>> + @path is a string that consists of child names separated by
>> + slashes. It must begin with a slash.
>> +
>> + Examples for @root + @path:
>> + - root="qcow2-node", path="/backing/file"
>> + - root="quorum-node", path="/children.2/file"
>> +
>> + Hypothetically, @path could be empty, in which case it would point
>> + to @root. However, in practice this case is not useful and hence
>> + not allowed.
>> +
>> + @expected_node may be None.
>> +
>> + @graph may be None or the result of an x-debug-query-block-graph
>> + call that has already been performed.
>> + """
>> + def assert_block_path(self, root, path, expected_node, graph=None):
>> + if graph is None:
>> + graph = self.qmp('x-debug-query-block-graph')['return']
>> +
>> + iter_path = iter(path.split('/'))
>> +
>> + # Must start with a /
>> + assert next(iter_path) == ''
>> +
>> + node = next((node for node in graph['nodes'] if node['name'] ==
>> root),
>> + None)
>> +
>> + for path_node in iter_path:
>
> I'd rename path_node to child or edge, to not interfere with block nodes here.
Sure. Or maybe child_name.
Max
signature.asc
Description: OpenPGP digital signature