summary refs log tree commit diff
path: root/shared/nm-platform/tests
diff options
context:
space:
mode:
Diffstat (limited to 'shared/nm-platform/tests')
-rw-r--r--shared/nm-platform/tests/meson.build20
-rw-r--r--shared/nm-platform/tests/test-nm-platform.c116
2 files changed, 136 insertions, 0 deletions
diff --git a/shared/nm-platform/tests/meson.build b/shared/nm-platform/tests/meson.build
new file mode 100644
index 00000000..a8fcdbca
--- /dev/null
+++ b/shared/nm-platform/tests/meson.build
@@ -0,0 +1,20 @@
+# SPDX-License-Identifier: LGPL-2.1-or-later
+
+exe = executable(
+  'test-nm-platform',
+  'test-nm-platform.c',
+  c_args: [
+    '-DG_LOG_DOMAIN="test"',
+  ],
+  dependencies: [
+    libnm_log_core_dep,
+    libnm_platform_dep,
+  ],
+)
+
+test(
+  'shared/nm-glib-aux/test-nm-platform',
+  test_script,
+  args: test_args + [exe.full_path()],
+  timeout: default_test_timeout,
+)
diff --git a/shared/nm-platform/tests/test-nm-platform.c b/shared/nm-platform/tests/test-nm-platform.c
new file mode 100644
index 00000000..a3e9ff13
--- /dev/null
+++ b/shared/nm-platform/tests/test-nm-platform.c
@@ -0,0 +1,116 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
+#include "nm-glib-aux/nm-default-glib-i18n-prog.h"
+
+#include "nm-log-core/nm-logging.h"
+#include "nm-platform/nm-netlink.h"
+#include "nm-platform/nmp-netns.h"
+
+#include "nm-utils/nm-test-utils.h"
+
+/*****************************************************************************/
+
+void
+_nm_logging_clear_platform_logging_cache(void)
+{
+    /* this symbols is required by nm-log-core library. */
+}
+
+/*****************************************************************************/
+
+static void
+test_use_symbols(void)
+{
+    static void (*const SYMBOLS[])(void) = {
+        (void (*)(void)) nl_nlmsghdr_to_str,
+        (void (*)(void)) nlmsg_hdr,
+        (void (*)(void)) nlmsg_reserve,
+        (void (*)(void)) nla_reserve,
+        (void (*)(void)) nlmsg_alloc_size,
+        (void (*)(void)) nlmsg_alloc,
+        (void (*)(void)) nlmsg_alloc_convert,
+        (void (*)(void)) nlmsg_alloc_simple,
+        (void (*)(void)) nlmsg_free,
+        (void (*)(void)) nlmsg_append,
+        (void (*)(void)) nlmsg_parse,
+        (void (*)(void)) nlmsg_put,
+        (void (*)(void)) nla_strlcpy,
+        (void (*)(void)) nla_memcpy,
+        (void (*)(void)) nla_put,
+        (void (*)(void)) nla_find,
+        (void (*)(void)) nla_nest_cancel,
+        (void (*)(void)) nla_nest_start,
+        (void (*)(void)) nla_nest_end,
+        (void (*)(void)) nla_parse,
+        (void (*)(void)) nlmsg_get_proto,
+        (void (*)(void)) nlmsg_set_proto,
+        (void (*)(void)) nlmsg_set_src,
+        (void (*)(void)) nlmsg_get_creds,
+        (void (*)(void)) nlmsg_set_creds,
+        (void (*)(void)) genlmsg_put,
+        (void (*)(void)) genlmsg_data,
+        (void (*)(void)) genlmsg_user_hdr,
+        (void (*)(void)) genlmsg_hdr,
+        (void (*)(void)) genlmsg_user_data,
+        (void (*)(void)) genlmsg_attrdata,
+        (void (*)(void)) genlmsg_len,
+        (void (*)(void)) genlmsg_attrlen,
+        (void (*)(void)) genlmsg_valid_hdr,
+        (void (*)(void)) genlmsg_parse,
+        (void (*)(void)) genl_ctrl_resolve,
+        (void (*)(void)) nl_socket_alloc,
+        (void (*)(void)) nl_socket_free,
+        (void (*)(void)) nl_socket_get_fd,
+        (void (*)(void)) nl_socket_get_local_port,
+        (void (*)(void)) nl_socket_get_msg_buf_size,
+        (void (*)(void)) nl_socket_set_passcred,
+        (void (*)(void)) nl_socket_set_msg_buf_size,
+        (void (*)(void)) nlmsg_get_dst,
+        (void (*)(void)) nl_socket_set_nonblocking,
+        (void (*)(void)) nl_socket_set_buffer_size,
+        (void (*)(void)) nl_socket_add_memberships,
+        (void (*)(void)) nl_socket_set_ext_ack,
+        (void (*)(void)) nl_socket_disable_msg_peek,
+        (void (*)(void)) nl_connect,
+        (void (*)(void)) nl_wait_for_ack,
+        (void (*)(void)) nl_recvmsgs,
+        (void (*)(void)) nl_sendmsg,
+        (void (*)(void)) nl_send_iovec,
+        (void (*)(void)) nl_complete_msg,
+        (void (*)(void)) nl_send,
+        (void (*)(void)) nl_send_auto,
+        (void (*)(void)) nl_recv,
+
+        (void (*)(void)) nmp_netns_bind_to_path,
+        (void (*)(void)) nmp_netns_bind_to_path_destroy,
+        (void (*)(void)) nmp_netns_get_current,
+        (void (*)(void)) nmp_netns_get_fd_mnt,
+        (void (*)(void)) nmp_netns_get_fd_net,
+        (void (*)(void)) nmp_netns_get_initial,
+        (void (*)(void)) nmp_netns_is_initial,
+        (void (*)(void)) nmp_netns_new,
+        (void (*)(void)) nmp_netns_pop,
+        (void (*)(void)) nmp_netns_push,
+        (void (*)(void)) nmp_netns_push_type,
+
+        NULL,
+    };
+
+    /* The only (not very exciting) purpose of this test is to see that
+     * we can use various symbols and don't get a linker error. */
+    assert(G_N_ELEMENTS(SYMBOLS) == NM_PTRARRAY_LEN(SYMBOLS) + 1);
+}
+
+/*****************************************************************************/
+
+NMTST_DEFINE();
+
+int
+main(int argc, char **argv)
+{
+    nmtst_init(&argc, &argv, TRUE);
+
+    g_test_add_func("/nm-platform/test_use_symbols", test_use_symbols);
+
+    return g_test_run();
+}