[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 16/21] tests/qtest: catch unhandled vhost-user messages
From: |
Alex Bennée |
Subject: |
[PATCH v3 16/21] tests/qtest: catch unhandled vhost-user messages |
Date: |
Tue, 26 Jul 2022 20:21:45 +0100 |
We don't need to action every message but lets document the ones we
are expecting to consume so future tests don't get confused about
unhandled bits.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
v1
- drop g_test_fail() when we get unexpected result, that just hangs
---
tests/qtest/vhost-user-test.c | 40 +++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)
diff --git a/tests/qtest/vhost-user-test.c b/tests/qtest/vhost-user-test.c
index 968113d591..d0fa034601 100644
--- a/tests/qtest/vhost-user-test.c
+++ b/tests/qtest/vhost-user-test.c
@@ -358,12 +358,41 @@ static void chr_read(void *opaque, const uint8_t *buf,
int size)
}
break;
+ case VHOST_USER_SET_OWNER:
+ /*
+ * We don't need to do anything here, the remote is just
+ * letting us know it is in charge. Just log it.
+ */
+ qos_printf("set_owner: start of session\n");
+ break;
+
case VHOST_USER_GET_PROTOCOL_FEATURES:
if (s->vu_ops->get_protocol_features) {
s->vu_ops->get_protocol_features(s, chr, &msg);
}
break;
+ case VHOST_USER_SET_PROTOCOL_FEATURES:
+ /*
+ * We did set VHOST_USER_F_PROTOCOL_FEATURES so its valid for
+ * the remote end to send this. There is no handshake reply so
+ * just log the details for debugging.
+ */
+ qos_printf("set_protocol_features: 0x%"PRIx64 "\n", msg.payload.u64);
+ break;
+
+ /*
+ * A real vhost-user backend would actually set the size and
+ * address of the vrings but we can simply report them.
+ */
+ case VHOST_USER_SET_VRING_NUM:
+ qos_printf("set_vring_num: %d/%d\n",
+ msg.payload.state.index, msg.payload.state.num);
+ break;
+ case VHOST_USER_SET_VRING_ADDR:
+ qos_printf("set_vring_addr:\n");
+ break;
+
case VHOST_USER_GET_VRING_BASE:
/* send back vring base to qemu */
msg.flags |= VHOST_USER_REPLY_MASK;
@@ -428,7 +457,18 @@ static void chr_read(void *opaque, const uint8_t *buf, int
size)
qemu_chr_fe_write_all(chr, p, VHOST_USER_HDR_SIZE + msg.size);
break;
+ case VHOST_USER_SET_VRING_ENABLE:
+ /*
+ * Another case we ignore as we don't need to respond. With a
+ * fully functioning vhost-user we would enable/disable the
+ * vring monitoring.
+ */
+ qos_printf("set_vring(%d)=%s\n", msg.payload.state.index,
+ msg.payload.state.num ? "enabled" : "disabled");
+ break;
+
default:
+ qos_printf("vhost-user: un-handled message: %d\n", msg.request);
break;
}
--
2.30.2
- Re: [PATCH v3 05/21] block/vhost-user-blk-server: don't expose VHOST_USER_F_PROTOCOL_FEATURES, (continued)
- [PATCH v3 07/21] hw/virtio: gracefully handle unset vhost_dev vdev, Alex Bennée, 2022/07/26
- [PATCH v3 08/21] hw/virtio: handle un-configured shutdown in virtio-pci, Alex Bennée, 2022/07/26
- [PATCH v3 09/21] hw/virtio: fix vhost_user_read tracepoint, Alex Bennée, 2022/07/26
- [PATCH v3 17/21] tests/qtest: plain g_assert for VHOST_USER_F_PROTOCOL_FEATURES, Alex Bennée, 2022/07/26
- [PATCH v3 21/21] tests/qtest: enable tests for virtio-gpio, Alex Bennée, 2022/07/26
- [PATCH v3 19/21] tests/qtest: implement stub for VHOST_USER_GET_CONFIG, Alex Bennée, 2022/07/26
- [PATCH v3 13/21] tests/qtest: pass stdout/stderr down to subtests, Alex Bennée, 2022/07/26
- [PATCH v3 16/21] tests/qtest: catch unhandled vhost-user messages,
Alex Bennée <=
- [PATCH v3 12/21] hw/virtio: add vhost-user-gpio-pci boilerplate, Alex Bennée, 2022/07/26
- [PATCH v3 10/21] hw/virtio: add some vhost-user trace events, Alex Bennée, 2022/07/26
- [PATCH v3 11/21] hw/virtio: add boilerplate for vhost-user-gpio device, Alex Bennée, 2022/07/26
- [PATCH v3 18/21] tests/qtest: add assert to catch bad features, Alex Bennée, 2022/07/26
- [PATCH v3 14/21] tests/qtest: add a timeout for subprocess_run_one_test, Alex Bennée, 2022/07/26
- Re: [PATCH v3 for 7.2 00/21] virtio-gpio and various virtio cleanups, Michael S. Tsirkin, 2022/07/26