diff options
author | Michael S. Tsirkin <mst@redhat.com> | 2015-09-24 18:22:01 +0200 |
---|---|---|
committer | Michael S. Tsirkin <mst@redhat.com> | 2015-10-02 17:04:32 +0300 |
commit | 8a9b6b37dabf00388e8069a2f5c0f659626693b3 (patch) | |
tree | 2b7d55ae48dc8e8faaf9268341e5ea943c8ff7a2 | |
parent | ca06d9cc6691e23b6d02e07b44ea549aeac60151 (diff) | |
download | qemu-8a9b6b37dabf00388e8069a2f5c0f659626693b3.zip qemu-8a9b6b37dabf00388e8069a2f5c0f659626693b3.tar.gz qemu-8a9b6b37dabf00388e8069a2f5c0f659626693b3.tar.bz2 |
vhost-user: unit test for new messages
Data is empty for now, but do make sure master
sets the new feature bit flag.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
-rw-r--r-- | tests/vhost-user-test.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/vhost-user-test.c b/tests/vhost-user-test.c index 0e04f06..87281b9 100644 --- a/tests/vhost-user-test.c +++ b/tests/vhost-user-test.c @@ -46,6 +46,8 @@ #define VHOST_MEMORY_MAX_NREGIONS 8 +#define VHOST_USER_F_PROTOCOL_FEATURES 30 + typedef enum VhostUserRequest { VHOST_USER_NONE = 0, VHOST_USER_GET_FEATURES = 1, @@ -62,6 +64,8 @@ typedef enum VhostUserRequest { VHOST_USER_SET_VRING_KICK = 12, VHOST_USER_SET_VRING_CALL = 13, VHOST_USER_SET_VRING_ERR = 14, + VHOST_USER_GET_PROTOCOL_FEATURES = 15, + VHOST_USER_SET_PROTOCOL_FEATURES = 16, VHOST_USER_MAX } VhostUserRequest; @@ -214,6 +218,20 @@ static void chr_read(void *opaque, const uint8_t *buf, int size) /* send back features to qemu */ msg.flags |= VHOST_USER_REPLY_MASK; msg.size = sizeof(m.u64); + msg.u64 = 0x1ULL << VHOST_USER_F_PROTOCOL_FEATURES; + p = (uint8_t *) &msg; + qemu_chr_fe_write_all(chr, p, VHOST_USER_HDR_SIZE + msg.size); + break; + + case VHOST_USER_SET_FEATURES: + g_assert_cmpint(msg.u64 & (0x1ULL << VHOST_USER_F_PROTOCOL_FEATURES), + !=, 0ULL); + break; + + case VHOST_USER_GET_PROTOCOL_FEATURES: + /* send back features to qemu */ + msg.flags |= VHOST_USER_REPLY_MASK; + msg.size = sizeof(m.u64); msg.u64 = 0; p = (uint8_t *) &msg; qemu_chr_fe_write_all(chr, p, VHOST_USER_HDR_SIZE + msg.size); |