[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v6 8/9] vhost-user-test: make read-guest-mem setup i
From: |
Marc-André Lureau |
Subject: |
[Qemu-devel] [PATCH v6 8/9] vhost-user-test: make read-guest-mem setup its own qemu |
Date: |
Mon, 23 Oct 2017 15:18:14 +0100 |
Signed-off-by: Marc-André Lureau <address@hidden>
---
tests/vhost-user-test.c | 66 ++++++++++++++++++++++++++-----------------------
1 file changed, 35 insertions(+), 31 deletions(-)
diff --git a/tests/vhost-user-test.c b/tests/vhost-user-test.c
index 7fc6f85888..2da6b6d61f 100644
--- a/tests/vhost-user-test.c
+++ b/tests/vhost-user-test.c
@@ -49,6 +49,14 @@
#define QEMU_CMD QEMU_CMD_MEM QEMU_CMD_CHR \
QEMU_CMD_NETDEV QEMU_CMD_NET
+#define GET_QEMU_CMD(s) \
+ g_strdup_printf(QEMU_CMD, 512, 512, (root), (s)->chr_name, \
+ (s)->socket_path, "", (s)->chr_name)
+
+#define GET_QEMU_CMDE(s, mem, chr_opts, extra, ...) \
+ g_strdup_printf(QEMU_CMD extra, (mem), (mem), (root), (s)->chr_name, \
+ (s)->socket_path, (chr_opts), (s)->chr_name, ##__VA_ARGS__)
+
#define HUGETLBFS_MAGIC 0x958458f6
/*********** FROM hw/virtio/vhost-user.c *************************************/
@@ -156,6 +164,10 @@ typedef struct TestServer {
int queues;
} TestServer;
+static TestServer *test_server_new(const gchar *name);
+static void test_server_free(TestServer *server);
+static void test_server_listen(TestServer *server);
+
static const char *tmpfs;
static const char *root;
@@ -205,9 +217,8 @@ static void wait_for_fds(TestServer *s)
g_mutex_unlock(&s->data_mutex);
}
-static void read_guest_mem(const void *data)
+static void read_guest_mem_server(TestServer *s)
{
- TestServer *s = (void *)data;
uint32_t *guest_mem;
int i, j;
size_t size;
@@ -248,6 +259,26 @@ static void read_guest_mem(const void *data)
g_mutex_unlock(&s->data_mutex);
}
+static void read_guest_mem(void)
+{
+ TestServer *s;
+ char *qemu_cmd;
+
+ s = test_server_new("test");
+ test_server_listen(s);
+
+ qemu_cmd = GET_QEMU_CMD(s);
+
+ qtest_start(qemu_cmd);
+ g_free(qemu_cmd);
+ init_virtio_dev(s);
+
+ read_guest_mem_server(s);
+
+ qtest_end();
+ test_server_free(s);
+}
+
static void *thread_function(void *data)
{
GMainLoop *loop = data;
@@ -472,14 +503,6 @@ static void test_server_listen(TestServer *server)
test_server_create_chr(server, ",server,nowait");
}
-#define GET_QEMU_CMD(s) \
- g_strdup_printf(QEMU_CMD, 512, 512, (root), (s)->chr_name, \
- (s)->socket_path, "", (s)->chr_name)
-
-#define GET_QEMU_CMDE(s, mem, chr_opts, extra, ...) \
- g_strdup_printf(QEMU_CMD extra, (mem), (mem), (root), (s)->chr_name, \
- (s)->socket_path, (chr_opts), (s)->chr_name, ##__VA_ARGS__)
-
static gboolean _test_server_free(TestServer *server)
{
int i;
@@ -686,7 +709,7 @@ static void test_migrate(void)
global_qtest = to;
qmp_eventwait("RESUME");
- read_guest_mem(dest);
+ read_guest_mem_server(dest);
g_source_destroy(source);
g_source_unref(source);
@@ -918,10 +941,7 @@ static void test_multiqueue(void)
int main(int argc, char **argv)
{
- QTestState *s = NULL;
- TestServer *server = NULL;
const char *hugefs;
- char *qemu_cmd = NULL;
int ret;
char template[] = "/tmp/vhost-test-XXXXXX";
GMainLoop *loop;
@@ -946,20 +966,11 @@ int main(int argc, char **argv)
root = tmpfs;
}
- server = test_server_new("test");
- test_server_listen(server);
-
loop = g_main_loop_new(NULL, FALSE);
/* run the main loop thread so the chardev may operate */
thread = g_thread_new(NULL, thread_function, loop);
- qemu_cmd = GET_QEMU_CMD(server);
-
- s = qtest_start(qemu_cmd);
- g_free(qemu_cmd);
- init_virtio_dev(server);
-
- qtest_add_data_func("/vhost-user/read-guest-mem", server, read_guest_mem);
+ qtest_add_func("/vhost-user/read-guest-mem", read_guest_mem);
qtest_add_func("/vhost-user/migrate", test_migrate);
qtest_add_func("/vhost-user/multiqueue", test_multiqueue);
@@ -980,13 +991,6 @@ int main(int argc, char **argv)
ret = g_test_run();
- if (s) {
- qtest_quit(s);
- }
-
- /* cleanup */
- test_server_free(server);
-
/* finish the helper thread and dispatch pending sources */
g_main_loop_quit(loop);
g_thread_join(thread);
--
2.15.0.rc0.40.gaefcc5f6f
- [Qemu-devel] [PATCH v6 0/9] Add memfd memory backend, Marc-André Lureau, 2017/10/23
- [Qemu-devel] [PATCH v6 1/9] memfd: split qemu_memfd_alloc(), Marc-André Lureau, 2017/10/23
- [Qemu-devel] [PATCH v6 2/9] memfd: remove needless include, Marc-André Lureau, 2017/10/23
- [Qemu-devel] [PATCH v6 4/9] memfd: add hugetlb support, Marc-André Lureau, 2017/10/23
- [Qemu-devel] [PATCH v6 3/9] memfd: add error argument, instead of perror(), Marc-André Lureau, 2017/10/23
- [Qemu-devel] [PATCH v6 5/9] memfd: add hugetlbsize argument, Marc-André Lureau, 2017/10/23
- [Qemu-devel] [PATCH v6 6/9] Add memfd based hostmem, Marc-André Lureau, 2017/10/23
- [Qemu-devel] [PATCH v6 8/9] vhost-user-test: make read-guest-mem setup its own qemu,
Marc-André Lureau <=
- [Qemu-devel] [PATCH v6 7/9] tests: keep compiling failing vhost-user tests, Marc-André Lureau, 2017/10/23
- [Qemu-devel] [PATCH v6 9/9] tests: use memfd in vhost-user-test, Marc-André Lureau, 2017/10/23