Re: [Qemu-devel] [PATCH 4/4] vhost-user: unit test for new messages

2015-07-23 Thread Ouyang, Changchun


 -Original Message-
 From: Michael S. Tsirkin [mailto:m...@redhat.com]
 Sent: Friday, July 17, 2015 10:10 PM
 To: qemu-devel@nongnu.org
 Cc: marcandre.lur...@gmail.com; haifeng@huawei.com;
 thibaut.col...@6wind.com; Ouyang, Changchun; f...@redhat.com; Peter
 Maydell; Nikolay Nikolaev; Gonglei; Stefan Hajnoczi
 Subject: [PATCH 4/4] 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 m...@redhat.com
 ---
  tests/vhost-user-test.c | 19 +++
  1 file changed, 19 insertions(+)
 
 diff --git a/tests/vhost-user-test.c b/tests/vhost-user-test.c index
 75fedf0..228acb6 100644
 --- a/tests/vhost-user-test.c
 +++ b/tests/vhost-user-test.c
 @@ -53,6 +53,8 @@
 
  #define VHOST_MEMORY_MAX_NREGIONS8
 
 +#define VHOST_USER_F_PROTOCOL_FEATURES 30
 +
  typedef enum VhostUserRequest {
  VHOST_USER_NONE = 0,
  VHOST_USER_GET_FEATURES = 1,
 @@ -69,6 +71,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;
 
 @@ -293,11 +297,26 @@ 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:

Do we also need add test codes for the case: VHOST_USER_SET_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);
  break;
 
 +
  case VHOST_USER_GET_VRING_BASE:
  /* send back vring base to qemu */
  msg.flags |= VHOST_USER_REPLY_MASK;
 --
 MST




[Qemu-devel] [PATCH 4/4] vhost-user: unit test for new messages

2015-07-17 Thread Michael S. Tsirkin
Data is empty for now, but do make sure master
sets the new feature bit flag.

Signed-off-by: Michael S. Tsirkin m...@redhat.com
---
 tests/vhost-user-test.c | 19 +++
 1 file changed, 19 insertions(+)

diff --git a/tests/vhost-user-test.c b/tests/vhost-user-test.c
index 75fedf0..228acb6 100644
--- a/tests/vhost-user-test.c
+++ b/tests/vhost-user-test.c
@@ -53,6 +53,8 @@
 
 #define VHOST_MEMORY_MAX_NREGIONS8
 
+#define VHOST_USER_F_PROTOCOL_FEATURES 30
+
 typedef enum VhostUserRequest {
 VHOST_USER_NONE = 0,
 VHOST_USER_GET_FEATURES = 1,
@@ -69,6 +71,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;
 
@@ -293,11 +297,26 @@ 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);
 break;
 
+
 case VHOST_USER_GET_VRING_BASE:
 /* send back vring base to qemu */
 msg.flags |= VHOST_USER_REPLY_MASK;
-- 
MST