From: Denis V. Lunev <[email protected]> With extended headers a client may name the meta contexts it wants in a request payload. Our own client never sends one, so the server side of it, nbd_co_block_status_payload_read(), is not exercised anywhere.
Export two meta contexts and ask libnbd for each of them in turn, which is only answerable through that path. Signed-off-by: Denis V. Lunev <[email protected]> CC: Eric Blake <[email protected]> CC: Vladimir Sementsov-Ogievskiy <[email protected]> --- tests/qemu-iotests/tests/nbd-commands | 14 ++++++++++++-- tests/qemu-iotests/tests/nbd-commands.out | 4 ++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/tests/qemu-iotests/tests/nbd-commands b/tests/qemu-iotests/tests/nbd-commands index 3dfe913190..09e811724b 100755 --- a/tests/qemu-iotests/tests/nbd-commands +++ b/tests/qemu-iotests/tests/nbd-commands @@ -90,7 +90,7 @@ class TestNbdCommands(iotests.QMPTestCase): self.h.shutdown() self.h = None - def block_status(self, count=size): + def block_status(self, count=size, wanted=None): """Map each meta context in the reply to its list of extents.""" reply = {} @@ -98,7 +98,10 @@ class TestNbdCommands(iotests.QMPTestCase): reply.setdefault(meta, []).extend(zip(entries[0::2], entries[1::2])) - self.h.block_status(count, 0, cb) + if wanted is None: + self.h.block_status(count, 0, cb) + else: + self.h.block_status_filter(count, 0, wanted, cb) return reply def top_extents(self): @@ -148,6 +151,13 @@ class TestNbdCommands(iotests.QMPTestCase): def test_commands_extended_headers(self): self.check_commands(structured=True, extended=True) + def test_block_status_payload_filter(self): + self.assertEqual(sorted(self.block_status()), + ['base:allocation', 'qemu:allocation-depth']) + + for wanted in (['base:allocation'], ['qemu:allocation-depth']): + self.assertEqual(sorted(self.block_status(wanted=wanted)), wanted) + def test_cache_past_end_of_export(self): self.assertRaises(nbd.Error, self.h.cache, size + 1, 0) diff --git a/tests/qemu-iotests/tests/nbd-commands.out b/tests/qemu-iotests/tests/nbd-commands.out index 3f8a935a08..2f7d3902f2 100644 --- a/tests/qemu-iotests/tests/nbd-commands.out +++ b/tests/qemu-iotests/tests/nbd-commands.out @@ -1,5 +1,5 @@ -...... +....... ---------------------------------------------------------------------- -Ran 6 tests +Ran 7 tests OK -- 2.53.0
