aboutsummaryrefslogtreecommitdiff
path: root/subprojects/libvhost-user
diff options
context:
space:
mode:
Diffstat (limited to 'subprojects/libvhost-user')
-rw-r--r--subprojects/libvhost-user/link-test.c45
-rw-r--r--subprojects/libvhost-user/meson.build4
2 files changed, 49 insertions, 0 deletions
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 <assert.h>
+#include <stdlib.h>
+#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,