summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorAlex Bennée2022-08-02 11:50:05 +0200
committerMichael S. Tsirkin2022-10-07 15:41:51 +0200
commit20a4127fbd4f54ab5ff2e0f3538c2b8e89011bce (patch)
tree2f1ddfb310b7aad4b257f64376a1bfa665f21b09 /tests
parenttests/qtest: use qos_printf instead of g_test_message (diff)
downloadqemu-20a4127fbd4f54ab5ff2e0f3538c2b8e89011bce.tar.gz
qemu-20a4127fbd4f54ab5ff2e0f3538c2b8e89011bce.tar.xz
qemu-20a4127fbd4f54ab5ff2e0f3538c2b8e89011bce.zip
tests/qtest: catch unhandled vhost-user messages
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> Message-Id: <20220802095010.3330793-18-alex.bennee@linaro.org> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/qtest/vhost-user-test.c43
1 files changed, 43 insertions, 0 deletions
diff --git a/tests/qtest/vhost-user-test.c b/tests/qtest/vhost-user-test.c
index 99dc6080e5..8d2d4ba535 100644
--- a/tests/qtest/vhost-user-test.c
+++ b/tests/qtest/vhost-user-test.c
@@ -358,12 +358,44 @@ 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: 0x%"PRIx64"/0x%"PRIx64"/0x%"PRIx64"\n",
+ msg.payload.addr.avail_user_addr,
+ msg.payload.addr.desc_user_addr,
+ msg.payload.addr.used_user_addr);
+ break;
+
case VHOST_USER_GET_VRING_BASE:
/* send back vring base to qemu */
msg.flags |= VHOST_USER_REPLY_MASK;
@@ -428,7 +460,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;
}