tests/qtest/vhost-user-test: add a test case for memory-backend-shm
`memory-backend-shm` can be used with vhost-user devices, so let's add a new test case for it. Acked-by: Thomas Huth <thuth@redhat.com> Acked-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: David Hildenbrand <david@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Stefano Garzarella <sgarzare@redhat.com> Message-Id: <20240618100534.145917-1-sgarzare@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
e349062727
commit
0173ce4b2b
@ -44,6 +44,8 @@
|
||||
"mem-path=%s,share=on -numa node,memdev=mem"
|
||||
#define QEMU_CMD_MEMFD " -m %d -object memory-backend-memfd,id=mem,size=%dM," \
|
||||
" -numa node,memdev=mem"
|
||||
#define QEMU_CMD_SHM " -m %d -object memory-backend-shm,id=mem,size=%dM," \
|
||||
" -numa node,memdev=mem"
|
||||
#define QEMU_CMD_CHR " -chardev socket,id=%s,path=%s%s"
|
||||
#define QEMU_CMD_NETDEV " -netdev vhost-user,id=hs0,chardev=%s,vhostforce=on"
|
||||
|
||||
@ -195,6 +197,7 @@ enum test_memfd {
|
||||
TEST_MEMFD_AUTO,
|
||||
TEST_MEMFD_YES,
|
||||
TEST_MEMFD_NO,
|
||||
TEST_MEMFD_SHM,
|
||||
};
|
||||
|
||||
static void append_vhost_net_opts(TestServer *s, GString *cmd_line,
|
||||
@ -228,6 +231,8 @@ static void append_mem_opts(TestServer *server, GString *cmd_line,
|
||||
|
||||
if (memfd == TEST_MEMFD_YES) {
|
||||
g_string_append_printf(cmd_line, QEMU_CMD_MEMFD, size, size);
|
||||
} else if (memfd == TEST_MEMFD_SHM) {
|
||||
g_string_append_printf(cmd_line, QEMU_CMD_SHM, size, size);
|
||||
} else {
|
||||
const char *root = init_hugepagefs() ? : server->tmpfs;
|
||||
|
||||
@ -791,6 +796,19 @@ static void *vhost_user_test_setup_memfd(GString *cmd_line, void *arg)
|
||||
return server;
|
||||
}
|
||||
|
||||
static void *vhost_user_test_setup_shm(GString *cmd_line, void *arg)
|
||||
{
|
||||
TestServer *server = test_server_new("vhost-user-test", arg);
|
||||
test_server_listen(server);
|
||||
|
||||
append_mem_opts(server, cmd_line, 256, TEST_MEMFD_SHM);
|
||||
server->vu_ops->append_opts(server, cmd_line, "");
|
||||
|
||||
g_test_queue_destroy(vhost_user_test_cleanup, server);
|
||||
|
||||
return server;
|
||||
}
|
||||
|
||||
static void test_read_guest_mem(void *obj, void *arg, QGuestAllocator *alloc)
|
||||
{
|
||||
TestServer *server = arg;
|
||||
@ -1084,6 +1102,11 @@ static void register_vhost_user_test(void)
|
||||
"virtio-net",
|
||||
test_read_guest_mem, &opts);
|
||||
|
||||
opts.before = vhost_user_test_setup_shm;
|
||||
qos_add_test("vhost-user/read-guest-mem/shm",
|
||||
"virtio-net",
|
||||
test_read_guest_mem, &opts);
|
||||
|
||||
if (qemu_memfd_check(MFD_ALLOW_SEALING)) {
|
||||
opts.before = vhost_user_test_setup_memfd;
|
||||
qos_add_test("vhost-user/read-guest-mem/memfd",
|
||||
|
Loading…
Reference in New Issue
Block a user