summary refs log tree commit diff
path: root/src/libnm-client-test/nm-test-libnm-utils.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libnm-client-test/nm-test-libnm-utils.h')
-rw-r--r--src/libnm-client-test/nm-test-libnm-utils.h90
1 files changed, 90 insertions, 0 deletions
diff --git a/src/libnm-client-test/nm-test-libnm-utils.h b/src/libnm-client-test/nm-test-libnm-utils.h
new file mode 100644
index 00000000..58909304
--- /dev/null
+++ b/src/libnm-client-test/nm-test-libnm-utils.h
@@ -0,0 +1,90 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+/*
+ * Copyright (C) 2014 - 2015 Red Hat, Inc.
+ */
+
+#ifndef __NM_TEST_LIBNM_UTILS_H__
+#define __NM_TEST_LIBNM_UTILS_H__
+
+#include "NetworkManager.h"
+
+#include "libnm-glib-aux/nm-test-utils.h"
+
+typedef struct {
+    GDBusConnection *bus;
+    GDBusProxy *     proxy;
+    GPid             pid;
+    int              keepalive_fd;
+} NMTstcServiceInfo;
+
+NMTstcServiceInfo *nmtstc_service_init(void);
+void               nmtstc_service_cleanup(NMTstcServiceInfo *info);
+NMTstcServiceInfo *nmtstc_service_available(NMTstcServiceInfo *info);
+
+static inline void
+_nmtstc_auto_service_cleanup(NMTstcServiceInfo **info)
+{
+    nmtstc_service_cleanup(g_steal_pointer(info));
+}
+#define nmtstc_auto_service_cleanup nm_auto(_nmtstc_auto_service_cleanup)
+
+#define NMTSTC_SERVICE_INFO_SETUP(sinfo)                      \
+    NM_PRAGMA_WARNING_DISABLE("-Wunused-variable")            \
+    nmtstc_auto_service_cleanup NMTstcServiceInfo *sinfo = ({ \
+        NMTstcServiceInfo *_sinfo;                            \
+                                                              \
+        _sinfo = nmtstc_service_init();                       \
+        if (!nmtstc_service_available(_sinfo))                \
+            return;                                           \
+        _sinfo;                                               \
+    });                                                       \
+    NM_PRAGMA_WARNING_REENABLE
+
+NMDevice *nmtstc_service_add_device(NMTstcServiceInfo *info,
+                                    NMClient *         client,
+                                    const char *       method,
+                                    const char *       ifname);
+
+NMDevice *nmtstc_service_add_wired_device(NMTstcServiceInfo *sinfo,
+                                          NMClient *         client,
+                                          const char *       ifname,
+                                          const char *       hwaddr,
+                                          const char **      subchannels);
+
+void nmtstc_service_add_connection(NMTstcServiceInfo *sinfo,
+                                   NMConnection *     connection,
+                                   gboolean           verify_connection,
+                                   char **            out_path);
+
+void nmtstc_service_add_connection_variant(NMTstcServiceInfo *sinfo,
+                                           GVariant *         connection,
+                                           gboolean           verify_connection,
+                                           char **            out_path);
+
+void nmtstc_service_update_connection(NMTstcServiceInfo *sinfo,
+                                      const char *       path,
+                                      NMConnection *     connection,
+                                      gboolean           verify_connection);
+
+void nmtstc_service_update_connection_variant(NMTstcServiceInfo *sinfo,
+                                              const char *       path,
+                                              GVariant *         connection,
+                                              gboolean           verify_connection);
+
+gpointer nmtstc_context_object_new_valist(GType       gtype,
+                                          gboolean    allow_iterate_main_context,
+                                          const char *first_property_name,
+                                          va_list     var_args);
+
+gpointer nmtstc_context_object_new(GType       gtype,
+                                   gboolean    allow_iterate_main_context,
+                                   const char *first_property_name,
+                                   ...);
+
+static inline NMClient *
+nmtstc_client_new(gboolean allow_iterate_main_context)
+{
+    return nmtstc_context_object_new(NM_TYPE_CLIENT, allow_iterate_main_context, NULL);
+}
+
+#endif /* __NM_TEST_LIBNM_UTILS_H__ */