about summary refs log tree commit diff
path: root/libnm/tests
diff options
context:
space:
mode:
Diffstat (limited to 'libnm/tests')
-rw-r--r--libnm/tests/meson.build47
-rw-r--r--libnm/tests/test-libnm.c177
-rw-r--r--libnm/tests/test-nm-client.c4
-rw-r--r--libnm/tests/test-remote-settings-client.c4
-rw-r--r--libnm/tests/test-secret-agent.c4
5 files changed, 153 insertions, 83 deletions
diff --git a/libnm/tests/meson.build b/libnm/tests/meson.build
index 59fb771d..08eecfbd 100644
--- a/libnm/tests/meson.build
+++ b/libnm/tests/meson.build
@@ -1,35 +1,34 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 test_units = [
-  ['test-libnm', 30],
-  ['test-nm-client', 90],
-  ['test-remote-settings-client', 90],
-  ['test-secret-agent', 90],
-]
-
-deps = [
-  libnm_core_dep,
-  libnm_nm_default_dep,
-]
-
-c_flags = [
-  '-DNETWORKMANAGER_COMPILATION_TEST',
-  '-DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIBNM',
+  'test-libnm',
+  'test-nm-client',
+  'test-remote-settings-client',
+  'test-secret-agent',
 ]
 
 foreach test_unit: test_units
   exe = executable(
-    test_unit[0],
-    [test_unit[0] + '.c', nm_test_utils_impl_source, libnm_enum_sources[1]],
-    dependencies: deps,
-    c_args: c_flags,
-    link_with: liblibnm,
+    test_unit,
+    [
+      test_unit + '.c',
+      nm_test_utils_impl_source,
+      libnm_enum_sources[1],
+    ],
+    dependencies: [
+      libnm_core_dep,
+      libnm_nm_default_dep,
+    ],
+    c_args: [
+      '-DG_LOG_DOMAIN="test"',
+    ],
+    link_with: libnm_static,
   )
 
   test(
-    test_unit[0],
+    test_unit,
     test_script,
-    timeout: test_unit[1],
+    timeout: 90,
     args: test_args + [exe.full_path()],
   )
 endforeach
@@ -40,5 +39,7 @@ libnm_vpn_plugin_utils_test = static_library(
   sources: nm_vpn_plugin_utils_source + [libnm_enum_sources[1]],
   include_directories: libnm_inc,
   dependencies: libnm_nm_default_dep,
-  c_args: c_flags,
+  c_args: [
+    '-DG_LOG_DOMAIN="test"',
+  ],
 )
diff --git a/libnm/tests/test-libnm.c b/libnm/tests/test-libnm.c
index 6f89a823..a90acd9b 100644
--- a/libnm/tests/test-libnm.c
+++ b/libnm/tests/test-libnm.c
@@ -1,9 +1,9 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 /*
  * Copyright (C) 2017 Red Hat, Inc.
  */
 
-#include "nm-default.h"
+#include "libnm/nm-default-libnm.h"
 
 #if defined(HAVE_DECL_MEMFD_CREATE) && HAVE_DECL_MEMFD_CREATE
     #include <linux/memfd.h>
@@ -2824,8 +2824,9 @@ test_nml_dbus_meta(void)
         g_assert(NM_IN_SET((NMLDBusMetaInteracePrio) mif->interface_prio,
                            NML_DBUS_META_INTERFACE_PRIO_NMCLIENT,
                            NML_DBUS_META_INTERFACE_PRIO_PARENT_TYPE,
-                           NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_LOW,
-                           NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH));
+                           NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_10,
+                           NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_20,
+                           NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_30));
 
         g_assert(mif->get_type_fcn);
         gtype = mif->get_type_fcn();
@@ -2847,22 +2848,85 @@ test_nml_dbus_meta(void)
 
         if (klass) {
             if (NM_IS_OBJECT_CLASS(klass)) {
-                NMObjectClass *                nm_object_class = NM_OBJECT_CLASS(klass);
-                const _NMObjectClassFieldInfo *p_prev;
-                const _NMObjectClassFieldInfo *p;
-
-                p_prev = NULL;
-                for (p = nm_object_class->property_o_info; p; p_prev = p, p = p->parent) {
-                    g_assert(p->num > 0);
-                    g_assert(NM_IS_OBJECT_CLASS(p->klass));
-                    g_assert(g_type_is_a(gtype, G_TYPE_FROM_CLASS(p->klass)));
-                    g_assert(p->klass->property_o_info == p);
-                    if (p_prev) {
-                        g_assert(g_type_is_a(G_TYPE_FROM_CLASS(p_prev->klass),
-                                             G_TYPE_FROM_CLASS(p->klass)));
-                        g_assert(p_prev->klass != p->klass);
+                NMObjectClass *nm_object_class = NM_OBJECT_CLASS(klass);
+
+                if (nm_object_class->property_o_info || nm_object_class->property_ao_info) {
+                    int ii;
+
+                    for (ii = 0; ii < 2; ii++) {
+                        const _NMObjectClassFieldInfo *p_prev = NULL;
+                        const _NMObjectClassFieldInfo *p0     = ii == 0
+                                                                    ? nm_object_class->property_o_info
+                                                                    : nm_object_class->property_ao_info;
+                        const _NMObjectClassFieldInfo *p;
+
+                        for (p = p0; p; p = p->parent) {
+                            GType          parent_gtype;
+                            NMObjectClass *parent_klass;
+
+                            g_assert(p->num > 0);
+                            g_assert(NM_IS_OBJECT_CLASS(p->klass));
+                            g_assert(g_type_is_a(gtype, G_TYPE_FROM_CLASS(p->klass)));
+                            if (ii == 0)
+                                g_assert(p->klass->property_o_info == p);
+                            else
+                                g_assert(p->klass->property_ao_info == p);
+                            g_assert_cmpint(p->klass->priv_ptr_offset, >, 0);
+                            if (p_prev) {
+                                g_assert(g_type_is_a(G_TYPE_FROM_CLASS(p_prev->klass),
+                                                     G_TYPE_FROM_CLASS(p->klass)));
+                                g_assert(p_prev->klass != p->klass);
+                                g_assert_cmpint(p_prev->klass->priv_ptr_offset,
+                                                >,
+                                                p->klass->priv_ptr_offset);
+                                g_assert_cmpint(p->klass->priv_ptr_indirect, ==, TRUE);
+                            }
+
+                            parent_gtype = g_type_parent(G_TYPE_FROM_CLASS(p->klass));
+                            g_assert(g_type_is_a(parent_gtype, NM_TYPE_OBJECT));
+                            parent_klass = g_type_class_peek(parent_gtype);
+                            g_assert(NM_IS_OBJECT_CLASS(parent_klass));
+                            if (parent_gtype == NM_TYPE_OBJECT) {
+                                g_assert_cmpint(parent_klass->priv_ptr_offset, ==, 0);
+                                g_assert_cmpint(parent_klass->priv_ptr_indirect, ==, FALSE);
+                                g_assert(!p->parent);
+                            } else {
+                                if (parent_klass->priv_ptr_offset == 0) {
+                                    g_assert(!parent_klass->property_o_info);
+                                    g_assert(!parent_klass->property_ao_info);
+                                    g_assert_cmpint(parent_klass->priv_ptr_indirect, ==, FALSE);
+                                    g_assert(!p->parent);
+                                } else if (p->klass->priv_ptr_offset
+                                           == parent_klass->priv_ptr_offset) {
+                                    g_assert(p->klass->property_o_info
+                                             == parent_klass->property_o_info);
+                                    g_assert(p->klass->property_ao_info
+                                             == parent_klass->property_ao_info);
+                                    g_assert(p->klass->priv_ptr_indirect
+                                             == parent_klass->priv_ptr_indirect);
+                                } else {
+                                    g_assert_cmpint(parent_klass->priv_ptr_offset, >, 0);
+                                    g_assert_cmpint(parent_klass->priv_ptr_offset,
+                                                    <,
+                                                    p->klass->priv_ptr_offset);
+                                    g_assert_cmpint(parent_klass->priv_ptr_indirect, ==, TRUE);
+                                    g_assert(p->klass->property_o_info
+                                                 != parent_klass->property_o_info
+                                             || p->klass->property_ao_info
+                                                    != parent_klass->property_ao_info);
+                                }
+                            }
+
+                            p_prev = p;
+                        }
                     }
+
+                    g_assert_cmpint(nm_object_class->priv_ptr_offset, >, 0);
+                } else {
+                    g_assert_cmpint(nm_object_class->priv_ptr_offset, ==, 0);
+                    g_assert_cmpint(nm_object_class->priv_ptr_indirect, ==, FALSE);
                 }
+
             } else
                 g_assert(NM_IS_CLIENT_CLASS(klass));
         }
@@ -3128,172 +3192,177 @@ test_dbus_meta_types(void)
         {
             NM_DBUS_INTERFACE_ACCESS_POINT,
             NM_TYPE_ACCESS_POINT,
-            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH,
+            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_30,
         },
         {
             NM_DBUS_INTERFACE_ACTIVE_CONNECTION,
             NM_TYPE_ACTIVE_CONNECTION,
-            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_LOW,
+            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_10,
         }, /* otherwise, NM_TYPE_VPN_CONNECTION. */
         {
             NM_DBUS_INTERFACE_DEVICE_6LOWPAN,
             NM_TYPE_DEVICE_6LOWPAN,
-            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH,
+            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_30,
         },
         {
             NM_DBUS_INTERFACE_DEVICE_ADSL,
             NM_TYPE_DEVICE_ADSL,
-            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH,
+            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_30,
         },
         {
             NM_DBUS_INTERFACE_DEVICE_BOND,
             NM_TYPE_DEVICE_BOND,
-            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH,
+            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_30,
         },
         {
             NM_DBUS_INTERFACE_DEVICE_BRIDGE,
             NM_TYPE_DEVICE_BRIDGE,
-            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH,
+            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_30,
         },
         {
             NM_DBUS_INTERFACE_DEVICE_BLUETOOTH,
             NM_TYPE_DEVICE_BT,
-            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH,
+            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_30,
         },
         {
             NM_DBUS_INTERFACE_DEVICE_DUMMY,
             NM_TYPE_DEVICE_DUMMY,
-            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH,
+            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_30,
         },
         {
             NM_DBUS_INTERFACE_DEVICE_WIRED,
             NM_TYPE_DEVICE_ETHERNET,
-            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH,
+            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_20,
+        },
+        {
+            NM_DBUS_INTERFACE_DEVICE_VETH,
+            NM_TYPE_DEVICE_VETH,
+            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_30,
         },
         {
             NM_DBUS_INTERFACE_DEVICE_GENERIC,
             NM_TYPE_DEVICE_GENERIC,
-            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH,
+            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_30,
         },
         {
             NM_DBUS_INTERFACE_DEVICE_INFINIBAND,
             NM_TYPE_DEVICE_INFINIBAND,
-            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH,
+            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_30,
         },
         {
             NM_DBUS_INTERFACE_DEVICE_IP_TUNNEL,
             NM_TYPE_DEVICE_IP_TUNNEL,
-            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH,
+            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_30,
         },
         {
             NM_DBUS_INTERFACE_DEVICE_MACSEC,
             NM_TYPE_DEVICE_MACSEC,
-            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH,
+            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_30,
         },
         {
             NM_DBUS_INTERFACE_DEVICE_MACVLAN,
             NM_TYPE_DEVICE_MACVLAN,
-            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH,
+            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_30,
         },
         {
             NM_DBUS_INTERFACE_DEVICE_MODEM,
             NM_TYPE_DEVICE_MODEM,
-            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH,
+            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_30,
         },
         {
             NM_DBUS_INTERFACE_DEVICE_OLPC_MESH,
             NM_TYPE_DEVICE_OLPC_MESH,
-            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH,
+            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_30,
         },
         {
             NM_DBUS_INTERFACE_DEVICE_OVS_INTERFACE,
             NM_TYPE_DEVICE_OVS_INTERFACE,
-            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH,
+            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_30,
         },
         {
             NM_DBUS_INTERFACE_DEVICE_OVS_PORT,
             NM_TYPE_DEVICE_OVS_PORT,
-            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH,
+            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_30,
         },
         {
             NM_DBUS_INTERFACE_DEVICE_OVS_BRIDGE,
             NM_TYPE_DEVICE_OVS_BRIDGE,
-            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH,
+            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_30,
         },
         {
             NM_DBUS_INTERFACE_DEVICE_WIFI_P2P,
             NM_TYPE_DEVICE_WIFI_P2P,
-            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH,
+            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_30,
         },
         {
             NM_DBUS_INTERFACE_DEVICE_PPP,
             NM_TYPE_DEVICE_PPP,
-            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH,
+            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_30,
         },
         {
             NM_DBUS_INTERFACE_DEVICE_TEAM,
             NM_TYPE_DEVICE_TEAM,
-            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH,
+            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_30,
         },
         {
             NM_DBUS_INTERFACE_DEVICE_TUN,
             NM_TYPE_DEVICE_TUN,
-            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH,
+            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_30,
         },
         {
             NM_DBUS_INTERFACE_DEVICE_VLAN,
             NM_TYPE_DEVICE_VLAN,
-            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH,
+            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_30,
         },
         {
             NM_DBUS_INTERFACE_DEVICE_WPAN,
             NM_TYPE_DEVICE_WPAN,
-            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH,
+            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_30,
         },
         {
             NM_DBUS_INTERFACE_DEVICE_VXLAN,
             NM_TYPE_DEVICE_VXLAN,
-            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH,
+            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_30,
         },
         {
             NM_DBUS_INTERFACE_DEVICE_WIRELESS,
             NM_TYPE_DEVICE_WIFI,
-            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH,
+            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_30,
         },
         {
             NM_DBUS_INTERFACE_DEVICE_WIREGUARD,
             NM_TYPE_DEVICE_WIREGUARD,
-            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH,
+            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_30,
         },
         {
             NM_DBUS_INTERFACE_DHCP4_CONFIG,
             NM_TYPE_DHCP4_CONFIG,
-            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH,
+            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_30,
         },
         {
             NM_DBUS_INTERFACE_DHCP6_CONFIG,
             NM_TYPE_DHCP6_CONFIG,
-            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH,
+            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_30,
         },
         {
             NM_DBUS_INTERFACE_IP4_CONFIG,
             NM_TYPE_IP4_CONFIG,
-            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH,
+            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_30,
         },
         {
             NM_DBUS_INTERFACE_IP6_CONFIG,
             NM_TYPE_IP6_CONFIG,
-            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH,
+            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_30,
         },
         {
             NM_DBUS_INTERFACE_WIFI_P2P_PEER,
             NM_TYPE_WIFI_P2P_PEER,
-            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH,
+            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_30,
         },
         {
             NM_DBUS_INTERFACE_SETTINGS_CONNECTION,
             NM_TYPE_REMOTE_CONNECTION,
-            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH,
+            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_30,
         },
         {
             NM_DBUS_INTERFACE_SETTINGS,
@@ -3308,12 +3377,12 @@ test_dbus_meta_types(void)
         {
             NM_DBUS_INTERFACE_VPN_CONNECTION,
             NM_TYPE_VPN_CONNECTION,
-            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH,
+            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_30,
         },
         {
             NM_DBUS_INTERFACE_CHECKPOINT,
             NM_TYPE_CHECKPOINT,
-            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH,
+            NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_30,
         },
     };
     guint i;
diff --git a/libnm/tests/test-nm-client.c b/libnm/tests/test-nm-client.c
index 6ffef2b0..5452c623 100644
--- a/libnm/tests/test-nm-client.c
+++ b/libnm/tests/test-nm-client.c
@@ -1,9 +1,9 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 /*
  * Copyright (C) 2010 - 2014 Red Hat, Inc.
  */
 
-#include "nm-default.h"
+#include "libnm/nm-default-libnm.h"
 
 #include <sys/types.h>
 #include <signal.h>
diff --git a/libnm/tests/test-remote-settings-client.c b/libnm/tests/test-remote-settings-client.c
index 770f074f..0e7b744d 100644
--- a/libnm/tests/test-remote-settings-client.c
+++ b/libnm/tests/test-remote-settings-client.c
@@ -1,9 +1,9 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 /*
  * Copyright (C) 2010 - 2011 Red Hat, Inc.
  */
 
-#include "nm-default.h"
+#include "libnm/nm-default-libnm.h"
 
 #include <sys/types.h>
 #include <signal.h>
diff --git a/libnm/tests/test-secret-agent.c b/libnm/tests/test-secret-agent.c
index 0a800788..08c77f8c 100644
--- a/libnm/tests/test-secret-agent.c
+++ b/libnm/tests/test-secret-agent.c
@@ -1,9 +1,9 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 /*
  * Copyright (C) 2010 - 2014 Red Hat, Inc.
  */
 
-#include "nm-default.h"
+#include "libnm/nm-default-libnm.h"
 
 #include <sys/types.h>
 #include <signal.h>