diff --git a/subprojects/libvhost-user/link-test.c b/subprojects/libvhost-user/link-test.c new file mode 100644 index 0000000000..e01d6eb1fa --- /dev/null +++ b/subprojects/libvhost-user/link-test.c @@ -0,0 +1,45 @@ +/* + * A trivial unit test to check linking without glib. A real test suite should + * probably based off libvhost-user-glib instead. + */ +#include +#include +#include "libvhost-user.h" + +static void +panic(VuDev *dev, const char *err) +{ + abort(); +} + +static void +set_watch(VuDev *dev, int fd, int condition, + vu_watch_cb cb, void *data) +{ + abort(); +} + +static void +remove_watch(VuDev *dev, int fd) +{ + abort(); +} + +static const VuDevIface iface = { + 0, +}; + +int +main(int argc, const char *argv[]) +{ + bool rc; + uint16_t max_queues = 2; + int socket = 0; + VuDev dev = { 0, }; + + rc = vu_init(&dev, max_queues, socket, panic, NULL, set_watch, remove_watch, &iface); + assert(rc == true); + vu_deinit(&dev); + + return 0; +} diff --git a/subprojects/libvhost-user/meson.build b/subprojects/libvhost-user/meson.build index f9ecc534cf..c5d85c11d7 100644 --- a/subprojects/libvhost-user/meson.build +++ b/subprojects/libvhost-user/meson.build @@ -10,6 +10,10 @@ vhost_user = static_library('vhost-user', include_directories: inc, c_args: '-D_GNU_SOURCE') +executable('link-test', files('link-test.c'), + link_whole: vhost_user, + include_directories: inc) + vhost_user_glib = static_library('vhost-user-glib', files('libvhost-user-glib.c'), include_directories: inc,