summary refs log tree commit diff
path: root/dispatcher/tests
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2020-10-05 22:27:18 +0200
committerMichael Biebl <biebl@debian.org>2020-10-05 22:27:18 +0200
commitaafc1dbe4712c86189bbc1d4d54ad8cb4c69be7e (patch)
treea2a9bb4d007339a0b1304540388230ccedac32bd /dispatcher/tests
parente7b44ef4c80907346ec7492a09c45277459924fc (diff)
New upstream version 1.27.90 upstream/1.27.90
Diffstat (limited to 'dispatcher/tests')
-rw-r--r--dispatcher/tests/test-dispatcher-envp.c1087
1 files changed, 533 insertions, 554 deletions
diff --git a/dispatcher/tests/test-dispatcher-envp.c b/dispatcher/tests/test-dispatcher-envp.c
index 240b8951..2e64dc58 100644
--- a/dispatcher/tests/test-dispatcher-envp.c
+++ b/dispatcher/tests/test-dispatcher-envp.c
@@ -1,4 +1,4 @@
-// SPDX-License-Identifier: GPL-2.0+
+/* SPDX-License-Identifier: GPL-2.0+ */
 /*
  * Copyright (C) 2011 Red Hat, Inc.
  */
@@ -15,644 +15,623 @@
 
 #include "nmdbus-dispatcher.h"
 
-#define TEST_DIR      NM_BUILD_SRCDIR"/dispatcher/tests"
+#define TEST_DIR NM_BUILD_SRCDIR "/dispatcher/tests"
 
 /*****************************************************************************/
 
 static void
-_print_env (const char *const*denv, GHashTable *expected_env)
+_print_env(const char *const *denv, GHashTable *expected_env)
 {
-	const char *const*iter;
-	GHashTableIter k;
-	const char *key;
-
-	g_print ("\n******* Generated environment:\n");
-	for (iter = denv; iter && *iter; iter++)
-		g_print ("   %s\n", *iter);
-
-	g_print ("\n******* Expected environment:\n");
-	g_hash_table_iter_init (&k, expected_env);
-	while (g_hash_table_iter_next (&k, (gpointer) &key, NULL))
-		g_print ("   %s\n", key);
+    const char *const *iter;
+    GHashTableIter     k;
+    const char *       key;
+
+    g_print("\n******* Generated environment:\n");
+    for (iter = denv; iter && *iter; iter++)
+        g_print("   %s\n", *iter);
+
+    g_print("\n******* Expected environment:\n");
+    g_hash_table_iter_init(&k, expected_env);
+    while (g_hash_table_iter_next(&k, (gpointer) &key, NULL))
+        g_print("   %s\n", key);
 }
 
 static gboolean
-parse_main (GKeyFile *kf,
-            const char *filename,
-            GVariant **out_con_dict,
-            GVariant **out_con_props,
-            char **out_expected_iface,
-            char **out_action,
-            char **out_connectivity_state,
-            char **out_vpn_ip_iface,
-            GError **error)
+parse_main(GKeyFile *  kf,
+           const char *filename,
+           GVariant ** out_con_dict,
+           GVariant ** out_con_props,
+           char **     out_expected_iface,
+           char **     out_action,
+           char **     out_connectivity_state,
+           char **     out_vpn_ip_iface,
+           GError **   error)
 {
-	nm_auto_clear_variant_builder GVariantBuilder props = { };
-	gs_free char *uuid = NULL;
-	gs_free char *id = NULL;
-	gs_unref_object NMConnection *connection = NULL;
-	NMSettingConnection *s_con;
-
-	*out_expected_iface = g_key_file_get_string (kf, "main", "expected-iface", NULL);
-
-	*out_connectivity_state = g_key_file_get_string (kf, "main", "connectivity-state", NULL);
-	*out_vpn_ip_iface = g_key_file_get_string (kf, "main", "vpn-ip-iface", NULL);
-
-	*out_action = g_key_file_get_string (kf, "main", "action", error);
-	if (*out_action == NULL)
-		return FALSE;
-
-	uuid = g_key_file_get_string (kf, "main", "uuid", error);
-	if (uuid == NULL)
-		return FALSE;
-	id = g_key_file_get_string (kf, "main", "id", error);
-	if (id == NULL)
-		return FALSE;
-
-	connection = nm_simple_connection_new ();
-	s_con = (NMSettingConnection *) nm_setting_connection_new ();
-	g_object_set (s_con,
-	              NM_SETTING_CONNECTION_UUID, uuid,
-	              NM_SETTING_CONNECTION_ID, id,
-	              NULL);
-	nm_connection_add_setting (connection, NM_SETTING (s_con));
-
-	*out_con_dict = nm_connection_to_dbus (connection, NM_CONNECTION_SERIALIZE_ALL);
-
-	g_variant_builder_init (&props, G_VARIANT_TYPE ("a{sv}"));
-	g_variant_builder_add (&props, "{sv}",
-	                       NMD_CONNECTION_PROPS_PATH,
-	                       g_variant_new_object_path ("/org/freedesktop/NetworkManager/Connections/5"));
-
-	/* Strip out the non-fixed portion of the filename */
-	filename = strstr (filename, "/dispatcher");
-	g_variant_builder_add (&props, "{sv}",
-	                       "filename",
-	                       g_variant_new_string (filename));
-
-	if (g_key_file_get_boolean (kf, "main", "external", NULL)) {
-		g_variant_builder_add (&props, "{sv}",
-		                       "external",
-		                       g_variant_new_boolean (TRUE));
-	}
-
-	*out_con_props = g_variant_builder_end (&props);
-
-	return TRUE;
+    nm_auto_clear_variant_builder GVariantBuilder props = {};
+    gs_free char *                                uuid  = NULL;
+    gs_free char *                                id    = NULL;
+    gs_unref_object NMConnection *connection            = NULL;
+    NMSettingConnection *         s_con;
+
+    *out_expected_iface = g_key_file_get_string(kf, "main", "expected-iface", NULL);
+
+    *out_connectivity_state = g_key_file_get_string(kf, "main", "connectivity-state", NULL);
+    *out_vpn_ip_iface       = g_key_file_get_string(kf, "main", "vpn-ip-iface", NULL);
+
+    *out_action = g_key_file_get_string(kf, "main", "action", error);
+    if (*out_action == NULL)
+        return FALSE;
+
+    uuid = g_key_file_get_string(kf, "main", "uuid", error);
+    if (uuid == NULL)
+        return FALSE;
+    id = g_key_file_get_string(kf, "main", "id", error);
+    if (id == NULL)
+        return FALSE;
+
+    connection = nm_simple_connection_new();
+    s_con      = (NMSettingConnection *) nm_setting_connection_new();
+    g_object_set(s_con, NM_SETTING_CONNECTION_UUID, uuid, NM_SETTING_CONNECTION_ID, id, NULL);
+    nm_connection_add_setting(connection, NM_SETTING(s_con));
+
+    *out_con_dict = nm_connection_to_dbus(connection, NM_CONNECTION_SERIALIZE_ALL);
+
+    g_variant_builder_init(&props, G_VARIANT_TYPE("a{sv}"));
+    g_variant_builder_add(
+        &props,
+        "{sv}",
+        NMD_CONNECTION_PROPS_PATH,
+        g_variant_new_object_path("/org/freedesktop/NetworkManager/Connections/5"));
+
+    /* Strip out the non-fixed portion of the filename */
+    filename = strstr(filename, "/dispatcher");
+    g_variant_builder_add(&props, "{sv}", "filename", g_variant_new_string(filename));
+
+    if (g_key_file_get_boolean(kf, "main", "external", NULL)) {
+        g_variant_builder_add(&props, "{sv}", "external", g_variant_new_boolean(TRUE));
+    }
+
+    *out_con_props = g_variant_builder_end(&props);
+
+    return TRUE;
 }
 
 static gboolean
-parse_device (GKeyFile *kf, GVariant **out_device_props, GError **error)
+parse_device(GKeyFile *kf, GVariant **out_device_props, GError **error)
 {
-	nm_auto_clear_variant_builder GVariantBuilder props = { };
-	gs_free char *tmp = NULL;
-	int i;
-
-	g_variant_builder_init (&props, G_VARIANT_TYPE ("a{sv}"));
-
-	i = g_key_file_get_integer (kf, "device", "state", error);
-	if (i == 0)
-		return FALSE;
-	g_variant_builder_add (&props, "{sv}",
-	                       NMD_DEVICE_PROPS_STATE,
-	                       g_variant_new_uint32 (i));
-
-	i = g_key_file_get_integer (kf, "device", "type", error);
-	if (i == 0)
-		return FALSE;
-	g_variant_builder_add (&props, "{sv}",
-	                       NMD_DEVICE_PROPS_TYPE,
-	                       g_variant_new_uint32 (i));
-
-	tmp = g_key_file_get_string (kf, "device", "interface", error);
-	if (tmp == NULL)
-		return FALSE;
-	g_variant_builder_add (&props, "{sv}",
-	                       NMD_DEVICE_PROPS_INTERFACE,
-	                       g_variant_new_string (tmp));
-
-	nm_clear_g_free (&tmp);
-	tmp = g_key_file_get_string (kf, "device", "ip-interface", error);
-	if (tmp == NULL)
-		return FALSE;
-	g_variant_builder_add (&props, "{sv}",
-	                       NMD_DEVICE_PROPS_IP_INTERFACE,
-	                       g_variant_new_string (tmp));
-
-	nm_clear_g_free (&tmp);
-	tmp = g_key_file_get_string (kf, "device", "path", error);
-	if (tmp == NULL)
-		return FALSE;
-	g_variant_builder_add (&props, "{sv}",
-	                       NMD_DEVICE_PROPS_PATH,
-	                       g_variant_new_object_path (tmp));
-
-	*out_device_props = g_variant_builder_end (&props);
-	return TRUE;
+    nm_auto_clear_variant_builder GVariantBuilder props = {};
+    gs_free char *                                tmp   = NULL;
+    int                                           i;
+
+    g_variant_builder_init(&props, G_VARIANT_TYPE("a{sv}"));
+
+    i = g_key_file_get_integer(kf, "device", "state", error);
+    if (i == 0)
+        return FALSE;
+    g_variant_builder_add(&props, "{sv}", NMD_DEVICE_PROPS_STATE, g_variant_new_uint32(i));
+
+    i = g_key_file_get_integer(kf, "device", "type", error);
+    if (i == 0)
+        return FALSE;
+    g_variant_builder_add(&props, "{sv}", NMD_DEVICE_PROPS_TYPE, g_variant_new_uint32(i));
+
+    tmp = g_key_file_get_string(kf, "device", "interface", error);
+    if (tmp == NULL)
+        return FALSE;
+    g_variant_builder_add(&props, "{sv}", NMD_DEVICE_PROPS_INTERFACE, g_variant_new_string(tmp));
+
+    nm_clear_g_free(&tmp);
+    tmp = g_key_file_get_string(kf, "device", "ip-interface", error);
+    if (tmp == NULL)
+        return FALSE;
+    g_variant_builder_add(&props, "{sv}", NMD_DEVICE_PROPS_IP_INTERFACE, g_variant_new_string(tmp));
+
+    nm_clear_g_free(&tmp);
+    tmp = g_key_file_get_string(kf, "device", "path", error);
+    if (tmp == NULL)
+        return FALSE;
+    g_variant_builder_add(&props, "{sv}", NMD_DEVICE_PROPS_PATH, g_variant_new_object_path(tmp));
+
+    *out_device_props = g_variant_builder_end(&props);
+    return TRUE;
 }
 
 static gboolean
-add_uint_array (GKeyFile *kf,
-                GVariantBuilder *props,
-                const char *section,
-                const char *key,
-                GError **error)
+add_uint_array(GKeyFile *       kf,
+               GVariantBuilder *props,
+               const char *     section,
+               const char *     key,
+               GError **        error)
 {
-	gs_free char *tmp = NULL;
-	gs_free const char **split = NULL;
-	gsize i;
-
-	tmp = g_key_file_get_string (kf, section, key, NULL);
-	if (tmp == NULL)
-		return TRUE;
-
-	split = nm_utils_strsplit_set_with_empty (tmp, " ");
-	if (split) {
-		gs_unref_array GArray *items = NULL;
-
-		items = g_array_sized_new (FALSE, TRUE, sizeof (guint32), NM_PTRARRAY_LEN (split));
-		for (i = 0; split[i]; i++) {
-			const char *s;
-
-			s = split[i];
-			g_strstrip ((char *) s);
-			if (s[0]) {
-				guint32 addr;
-
-				if (inet_pton (AF_INET, s, &addr) != 1)
-					g_assert_not_reached ();
-				g_array_append_val (items, addr);
-			}
-		}
-		g_variant_builder_add (props, "{sv}", key,
-		                       g_variant_new_fixed_array (G_VARIANT_TYPE_UINT32,
-		                                                  items->data, items->len,
-		                                                  sizeof (guint32)));
-	}
-
-	return TRUE;
+    gs_free char *       tmp   = NULL;
+    gs_free const char **split = NULL;
+    gsize                i;
+
+    tmp = g_key_file_get_string(kf, section, key, NULL);
+    if (tmp == NULL)
+        return TRUE;
+
+    split = nm_utils_strsplit_set_with_empty(tmp, " ");
+    if (split) {
+        gs_unref_array GArray *items = NULL;
+
+        items = g_array_sized_new(FALSE, TRUE, sizeof(guint32), NM_PTRARRAY_LEN(split));
+        for (i = 0; split[i]; i++) {
+            const char *s;
+
+            s = split[i];
+            g_strstrip((char *) s);
+            if (s[0]) {
+                guint32 addr;
+
+                if (inet_pton(AF_INET, s, &addr) != 1)
+                    g_assert_not_reached();
+                g_array_append_val(items, addr);
+            }
+        }
+        g_variant_builder_add(props,
+                              "{sv}",
+                              key,
+                              g_variant_new_fixed_array(G_VARIANT_TYPE_UINT32,
+                                                        items->data,
+                                                        items->len,
+                                                        sizeof(guint32)));
+    }
+
+    return TRUE;
 }
 
 static gboolean
-parse_proxy (GKeyFile *kf, GVariant **out_props, const char *section, GError **error)
+parse_proxy(GKeyFile *kf, GVariant **out_props, const char *section, GError **error)
 {
-	nm_auto_clear_variant_builder GVariantBuilder props = { };
-	gs_free char *tmp = NULL;
-
-	g_variant_builder_init (&props, G_VARIANT_TYPE ("a{sv}"));
-
-	tmp = g_key_file_get_string (kf, section, "pac-url", error);
-	if (tmp == NULL)
-		return FALSE;
-	g_variant_builder_add (&props, "{sv}",
-	                       "pac-url",
-	                       g_variant_new_string (tmp));
-
-	nm_clear_g_free (&tmp);
-	tmp = g_key_file_get_string (kf, section, "pac-script", error);
-	if (tmp == NULL)
-		return FALSE;
-	g_variant_builder_add (&props, "{sv}",
-	                       "pac-script",
-	                       g_variant_new_string (tmp));
-
-	*out_props = g_variant_builder_end (&props);
-	return TRUE;
+    nm_auto_clear_variant_builder GVariantBuilder props = {};
+    gs_free char *                                tmp   = NULL;
+
+    g_variant_builder_init(&props, G_VARIANT_TYPE("a{sv}"));
+
+    tmp = g_key_file_get_string(kf, section, "pac-url", error);
+    if (tmp == NULL)
+        return FALSE;
+    g_variant_builder_add(&props, "{sv}", "pac-url", g_variant_new_string(tmp));
+
+    nm_clear_g_free(&tmp);
+    tmp = g_key_file_get_string(kf, section, "pac-script", error);
+    if (tmp == NULL)
+        return FALSE;
+    g_variant_builder_add(&props, "{sv}", "pac-script", g_variant_new_string(tmp));
+
+    *out_props = g_variant_builder_end(&props);
+    return TRUE;
 }
 
 static gboolean
-parse_ip4 (GKeyFile *kf, GVariant **out_props, const char *section, GError **error)
+parse_ip4(GKeyFile *kf, GVariant **out_props, const char *section, GError **error)
 {
-	nm_auto_clear_variant_builder GVariantBuilder props = { };
-	gs_free char *tmp = NULL;
-	gs_free const char **split = NULL;
-	const char **iter;
-
-	g_variant_builder_init (&props, G_VARIANT_TYPE ("a{sv}"));
-
-	/* search domains */
-	/* Use char** for domains. (DBUS_TYPE_G_ARRAY_OF_STRING of NMIP4Config
-	 * becomes G_TYPE_STRV when sending the value over D-Bus)
-	 */
-	tmp = g_key_file_get_string (kf, section, "domains", error);
-	if (tmp == NULL)
-		return FALSE;
-	split = nm_utils_strsplit_set_with_empty (tmp, " ");
-	if (split) {
-		for (iter = split; *iter; iter++)
-			g_strstrip ((char *) *iter);
-		g_variant_builder_add (&props, "{sv}", "domains", g_variant_new_strv ((gpointer) split, -1));
-	}
-	nm_clear_g_free (&split);
-
-	if (!add_uint_array (kf, &props, "ip4", "nameservers", error))
-		return FALSE;
-
-	if (!add_uint_array (kf, &props, "ip4", "wins-servers", error))
-		return FALSE;
-
-	nm_clear_g_free (&tmp);
-	tmp = g_key_file_get_string (kf, section, "addresses", error);
-	if (tmp == NULL)
-		return FALSE;
-	split = nm_utils_strsplit_set_with_empty (tmp, ",");
-	if (split) {
-		gs_unref_ptrarray GPtrArray *addresses = NULL;
-		const char *gateway = NULL;
-
-		addresses = g_ptr_array_new_with_free_func ((GDestroyNotify) nm_ip_address_unref);
-		for (iter = split; *iter; iter++) {
-			const char *s = *iter;
-			NMIPAddress *addr;
-			const char *ip;
-			const char *prefix;
-
-			g_strstrip ((char *) s);
-			if (s[0] == '\0')
-				continue;
-
-			ip = *iter;
-
-			prefix = strchr (ip, '/');
-			g_assert (prefix);
-			((char *) (prefix++))[0] = '\0';
-
-			if (addresses->len == 0) {
-				gateway = strchr (prefix, ' ');
-				g_assert (gateway);
-				gateway++;
-			}
-
-			addr = nm_ip_address_new (AF_INET, ip, (guint) atoi (prefix), error);
-			if (!addr)
-				return FALSE;
-
-			g_ptr_array_add (addresses, addr);
-		}
-
-		g_variant_builder_add (&props, "{sv}", "addresses",
-		                       nm_utils_ip4_addresses_to_variant (addresses, gateway));
-	}
-	nm_clear_g_free (&split);
-
-	nm_clear_g_free (&tmp);
-	tmp = g_key_file_get_string (kf, section, "routes", NULL);
-	split = nm_utils_strsplit_set_with_empty (tmp, ",");
-	if (split) {
-		gs_unref_ptrarray GPtrArray *routes = NULL;
-
-		routes = g_ptr_array_new_with_free_func ((GDestroyNotify) nm_ip_route_unref);
-		for (iter = split; *iter; iter++) {
-			const char *s = *iter;
-			NMIPRoute *route;
-			const char *dest;
-			const char *prefix;
-			const char *next_hop;
-			const char *metric;
-
-			g_strstrip ((char *) s);
-			if (s[0] == '\0')
-				continue;
-
-			dest = s;
-
-			prefix = strchr (dest, '/');
-			g_assert (prefix);
-			((char *) (prefix++))[0] = '\0';
-
-			next_hop = strchr (prefix, ' ');
-			g_assert (next_hop);
-			((char *) (next_hop++))[0] = '\0';
-
-			metric = strchr (next_hop, ' ');
-			g_assert (metric);
-			((char *) (metric++))[0] = '\0';
-
-			route = nm_ip_route_new (AF_INET,
-			                         dest,
-			                         _nm_utils_ascii_str_to_int64 (prefix, 10, 0, 32, 255),
-			                         next_hop,
-			                         (guint) atoi (metric),
-			                         error);
-			if (!route)
-				return FALSE;
-			g_ptr_array_add (routes, route);
-		}
-
-		g_variant_builder_add (&props, "{sv}", "routes",
-		                       nm_utils_ip4_routes_to_variant (routes));
-	}
-
-	*out_props = g_variant_builder_end (&props);
-	return TRUE;
+    nm_auto_clear_variant_builder GVariantBuilder props = {};
+    gs_free char *                                tmp   = NULL;
+    gs_free const char **                         split = NULL;
+    const char **                                 iter;
+
+    g_variant_builder_init(&props, G_VARIANT_TYPE("a{sv}"));
+
+    /* search domains */
+    /* Use char** for domains. (DBUS_TYPE_G_ARRAY_OF_STRING of NMIP4Config
+     * becomes G_TYPE_STRV when sending the value over D-Bus)
+     */
+    tmp = g_key_file_get_string(kf, section, "domains", error);
+    if (tmp == NULL)
+        return FALSE;
+    split = nm_utils_strsplit_set_with_empty(tmp, " ");
+    if (split) {
+        for (iter = split; *iter; iter++)
+            g_strstrip((char *) *iter);
+        g_variant_builder_add(&props, "{sv}", "domains", g_variant_new_strv((gpointer) split, -1));
+    }
+    nm_clear_g_free(&split);
+
+    if (!add_uint_array(kf, &props, "ip4", "nameservers", error))
+        return FALSE;
+
+    if (!add_uint_array(kf, &props, "ip4", "wins-servers", error))
+        return FALSE;
+
+    nm_clear_g_free(&tmp);
+    tmp = g_key_file_get_string(kf, section, "addresses", error);
+    if (tmp == NULL)
+        return FALSE;
+    split = nm_utils_strsplit_set_with_empty(tmp, ",");
+    if (split) {
+        gs_unref_ptrarray GPtrArray *addresses = NULL;
+        const char *                 gateway   = NULL;
+
+        addresses = g_ptr_array_new_with_free_func((GDestroyNotify) nm_ip_address_unref);
+        for (iter = split; *iter; iter++) {
+            const char * s = *iter;
+            NMIPAddress *addr;
+            const char * ip;
+            const char * prefix;
+
+            g_strstrip((char *) s);
+            if (s[0] == '\0')
+                continue;
+
+            ip = *iter;
+
+            prefix = strchr(ip, '/');
+            g_assert(prefix);
+            ((char *) (prefix++))[0] = '\0';
+
+            if (addresses->len == 0) {
+                gateway = strchr(prefix, ' ');
+                g_assert(gateway);
+                gateway++;
+            }
+
+            addr = nm_ip_address_new(AF_INET, ip, (guint) atoi(prefix), error);
+            if (!addr)
+                return FALSE;
+
+            g_ptr_array_add(addresses, addr);
+        }
+
+        g_variant_builder_add(&props,
+                              "{sv}",
+                              "addresses",
+                              nm_utils_ip4_addresses_to_variant(addresses, gateway));
+    }
+    nm_clear_g_free(&split);
+
+    nm_clear_g_free(&tmp);
+    tmp   = g_key_file_get_string(kf, section, "routes", NULL);
+    split = nm_utils_strsplit_set_with_empty(tmp, ",");
+    if (split) {
+        gs_unref_ptrarray GPtrArray *routes = NULL;
+
+        routes = g_ptr_array_new_with_free_func((GDestroyNotify) nm_ip_route_unref);
+        for (iter = split; *iter; iter++) {
+            const char *s = *iter;
+            NMIPRoute * route;
+            const char *dest;
+            const char *prefix;
+            const char *next_hop;
+            const char *metric;
+
+            g_strstrip((char *) s);
+            if (s[0] == '\0')
+                continue;
+
+            dest = s;
+
+            prefix = strchr(dest, '/');
+            g_assert(prefix);
+            ((char *) (prefix++))[0] = '\0';
+
+            next_hop = strchr(prefix, ' ');
+            g_assert(next_hop);
+            ((char *) (next_hop++))[0] = '\0';
+
+            metric = strchr(next_hop, ' ');
+            g_assert(metric);
+            ((char *) (metric++))[0] = '\0';
+
+            route = nm_ip_route_new(AF_INET,
+                                    dest,
+                                    _nm_utils_ascii_str_to_int64(prefix, 10, 0, 32, 255),
+                                    next_hop,
+                                    (guint) atoi(metric),
+                                    error);
+            if (!route)
+                return FALSE;
+            g_ptr_array_add(routes, route);
+        }
+
+        g_variant_builder_add(&props, "{sv}", "routes", nm_utils_ip4_routes_to_variant(routes));
+    }
+
+    *out_props = g_variant_builder_end(&props);
+    return TRUE;
 }
 
 static gboolean
-parse_dhcp (GKeyFile *kf,
-            const char *group_name,
-            GVariant **out_props,
-            GError **error)
+parse_dhcp(GKeyFile *kf, const char *group_name, GVariant **out_props, GError **error)
 {
-	nm_auto_clear_variant_builder GVariantBuilder props = { };
-	gs_strfreev char **keys = NULL;
-	char **iter;
-
-	keys = g_key_file_get_keys (kf, group_name, NULL, error);
-	if (!keys)
-		return FALSE;
-
-	g_variant_builder_init (&props, G_VARIANT_TYPE ("a{sv}"));
-	for (iter = keys; iter && *iter; iter++) {
-		gs_free char *val = NULL;
-
-		val = g_key_file_get_string (kf, group_name, *iter, error);
-		if (!val)
-			return FALSE;
-		g_variant_builder_add (&props, "{sv}", *iter, g_variant_new_string (val));
-	}
-
-	*out_props = g_variant_builder_end (&props);
-	return TRUE;
+    nm_auto_clear_variant_builder GVariantBuilder props = {};
+    gs_strfreev char **                           keys  = NULL;
+    char **                                       iter;
+
+    keys = g_key_file_get_keys(kf, group_name, NULL, error);
+    if (!keys)
+        return FALSE;
+
+    g_variant_builder_init(&props, G_VARIANT_TYPE("a{sv}"));
+    for (iter = keys; iter && *iter; iter++) {
+        gs_free char *val = NULL;
+
+        val = g_key_file_get_string(kf, group_name, *iter, error);
+        if (!val)
+            return FALSE;
+        g_variant_builder_add(&props, "{sv}", *iter, g_variant_new_string(val));
+    }
+
+    *out_props = g_variant_builder_end(&props);
+    return TRUE;
 }
 
 static gboolean
-get_dispatcher_file (const char *file,
-                     GVariant **out_con_dict,
-                     GVariant **out_con_props,
-                     GVariant **out_device_props,
-                     GVariant **out_device_proxy_props,
-                     GVariant **out_device_ip4_props,
-                     GVariant **out_device_ip6_props,
-                     GVariant **out_device_dhcp4_props,
-                     GVariant **out_device_dhcp6_props,
-                     char **out_connectivity_state,
-                     char **out_vpn_ip_iface,
-                     GVariant **out_vpn_proxy_props,
-                     GVariant **out_vpn_ip4_props,
-                     GVariant **out_vpn_ip6_props,
-                     char **out_expected_iface,
-                     char **out_action,
-                     GHashTable **out_env,
-                     GError **error)
+get_dispatcher_file(const char * file,
+                    GVariant **  out_con_dict,
+                    GVariant **  out_con_props,
+                    GVariant **  out_device_props,
+                    GVariant **  out_device_proxy_props,
+                    GVariant **  out_device_ip4_props,
+                    GVariant **  out_device_ip6_props,
+                    GVariant **  out_device_dhcp4_props,
+                    GVariant **  out_device_dhcp6_props,
+                    char **      out_connectivity_state,
+                    char **      out_vpn_ip_iface,
+                    GVariant **  out_vpn_proxy_props,
+                    GVariant **  out_vpn_ip4_props,
+                    GVariant **  out_vpn_ip6_props,
+                    char **      out_expected_iface,
+                    char **      out_action,
+                    GHashTable **out_env,
+                    GError **    error)
 {
-	gs_unref_keyfile GKeyFile *kf = NULL;
-	gs_strfreev char **keys = NULL;
-	char **iter;
-
-	g_assert (!error || !*error);
-	g_assert (out_con_dict && !*out_con_dict);
-	g_assert (out_con_props && !*out_con_props);
-	g_assert (out_device_props && !*out_device_props);
-	g_assert (out_device_proxy_props && !*out_device_proxy_props);
-	g_assert (out_device_ip4_props && !*out_device_ip4_props);
-	g_assert (out_device_ip6_props && !*out_device_ip6_props);
-	g_assert (out_device_dhcp4_props && !*out_device_dhcp4_props);
-	g_assert (out_device_dhcp6_props && !*out_device_dhcp6_props);
-	g_assert (out_connectivity_state && !*out_connectivity_state);
-	g_assert (out_vpn_ip_iface && !*out_vpn_ip_iface);
-	g_assert (out_vpn_proxy_props && !*out_vpn_proxy_props);
-	g_assert (out_vpn_ip4_props && !*out_vpn_ip4_props);
-	g_assert (out_vpn_ip6_props && !*out_vpn_ip6_props);
-	g_assert (out_expected_iface && !*out_expected_iface);
-	g_assert (out_action && !*out_action);
-	g_assert (out_env && !*out_env);
-
-	kf = g_key_file_new ();
-	if (!g_key_file_load_from_file (kf, file, G_KEY_FILE_NONE, error))
-		return FALSE;
-
-	if (!parse_main (kf,
-	                 file,
-	                 out_con_dict,
-	                 out_con_props,
-	                 out_expected_iface,
-	                 out_action,
-	                 out_connectivity_state,
-	                 out_vpn_ip_iface,
-	                 error))
-		return FALSE;
-
-	if (!parse_device (kf, out_device_props, error))
-		return FALSE;
-
-	if (g_key_file_has_group (kf, "proxy")) {
-		if (!parse_proxy (kf, out_device_proxy_props, "proxy", error))
-			return FALSE;
-	}
-
-	if (g_key_file_has_group (kf, "ip4")) {
-		if (!parse_ip4 (kf, out_device_ip4_props, "ip4", error))
-			return FALSE;
-	}
-
-	if (g_key_file_has_group (kf, "dhcp4")) {
-		if (!parse_dhcp (kf, "dhcp4", out_device_dhcp4_props, error))
-			return FALSE;
-	}
-
-	if (g_key_file_has_group (kf, "dhcp6")) {
-		if (!parse_dhcp (kf, "dhcp6", out_device_dhcp6_props, error))
-			return FALSE;
-	}
-
-	g_assert (g_key_file_has_group (kf, "env"));
-	keys = g_key_file_get_keys (kf, "env", NULL, error);
-	*out_env = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
-	for (iter = keys; iter && *iter; iter++) {
-		gs_free char *val = NULL;
-
-		val = g_key_file_get_string (kf, "env", *iter, error);
-		if (!val)
-			return FALSE;
-		g_hash_table_insert (*out_env,
-		                     g_strdup_printf ("%s=%s", *iter, val),
-		                     GUINT_TO_POINTER (1));
-	}
-
-	return TRUE;
+    nm_auto_unref_keyfile GKeyFile *kf   = NULL;
+    gs_strfreev char **             keys = NULL;
+    char **                         iter;
+
+    g_assert(!error || !*error);
+    g_assert(out_con_dict && !*out_con_dict);
+    g_assert(out_con_props && !*out_con_props);
+    g_assert(out_device_props && !*out_device_props);
+    g_assert(out_device_proxy_props && !*out_device_proxy_props);
+    g_assert(out_device_ip4_props && !*out_device_ip4_props);
+    g_assert(out_device_ip6_props && !*out_device_ip6_props);
+    g_assert(out_device_dhcp4_props && !*out_device_dhcp4_props);
+    g_assert(out_device_dhcp6_props && !*out_device_dhcp6_props);
+    g_assert(out_connectivity_state && !*out_connectivity_state);
+    g_assert(out_vpn_ip_iface && !*out_vpn_ip_iface);
+    g_assert(out_vpn_proxy_props && !*out_vpn_proxy_props);
+    g_assert(out_vpn_ip4_props && !*out_vpn_ip4_props);
+    g_assert(out_vpn_ip6_props && !*out_vpn_ip6_props);
+    g_assert(out_expected_iface && !*out_expected_iface);
+    g_assert(out_action && !*out_action);
+    g_assert(out_env && !*out_env);
+
+    kf = g_key_file_new();
+    if (!g_key_file_load_from_file(kf, file, G_KEY_FILE_NONE, error))
+        return FALSE;
+
+    if (!parse_main(kf,
+                    file,
+                    out_con_dict,
+                    out_con_props,
+                    out_expected_iface,
+                    out_action,
+                    out_connectivity_state,
+                    out_vpn_ip_iface,
+                    error))
+        return FALSE;
+
+    if (!parse_device(kf, out_device_props, error))
+        return FALSE;
+
+    if (g_key_file_has_group(kf, "proxy")) {
+        if (!parse_proxy(kf, out_device_proxy_props, "proxy", error))
+            return FALSE;
+    }
+
+    if (g_key_file_has_group(kf, "ip4")) {
+        if (!parse_ip4(kf, out_device_ip4_props, "ip4", error))
+            return FALSE;
+    }
+
+    if (g_key_file_has_group(kf, "dhcp4")) {
+        if (!parse_dhcp(kf, "dhcp4", out_device_dhcp4_props, error))
+            return FALSE;
+    }
+
+    if (g_key_file_has_group(kf, "dhcp6")) {
+        if (!parse_dhcp(kf, "dhcp6", out_device_dhcp6_props, error))
+            return FALSE;
+    }
+
+    g_assert(g_key_file_has_group(kf, "env"));
+    keys     = g_key_file_get_keys(kf, "env", NULL, error);
+    *out_env = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL);
+    for (iter = keys; iter && *iter; iter++) {
+        gs_free char *val = NULL;
+
+        val = g_key_file_get_string(kf, "env", *iter, error);
+        if (!val)
+            return FALSE;
+        g_hash_table_insert(*out_env, g_strdup_printf("%s=%s", *iter, val), GUINT_TO_POINTER(1));
+    }
+
+    return TRUE;
 }
 
 /*****************************************************************************/
 
 static void
-test_generic (const char *file, const char *override_vpn_ip_iface)
+test_generic(const char *file, const char *override_vpn_ip_iface)
 {
-	gs_unref_variant GVariant *con_dict = NULL;
-	gs_unref_variant GVariant *con_props = NULL;
-	gs_unref_variant GVariant *device_props = NULL;
-	gs_unref_variant GVariant *device_proxy_props = NULL;
-	gs_unref_variant GVariant *device_ip4_props = NULL;
-	gs_unref_variant GVariant *device_ip6_props = NULL;
-	gs_unref_variant GVariant *device_dhcp4_props = NULL;
-	gs_unref_variant GVariant *device_dhcp6_props = NULL;
-	gs_free char *connectivity_change = NULL;
-	gs_free char *vpn_ip_iface = NULL;
-	gs_unref_variant GVariant *vpn_proxy_props = NULL;
-	gs_unref_variant GVariant *vpn_ip4_props = NULL;
-	gs_unref_variant GVariant *vpn_ip6_props = NULL;
-	gs_free char *expected_iface = NULL;
-	gs_free char *action = NULL;
-	gs_free char *out_iface = NULL;
-	const char *error_message = NULL;
-	gs_unref_hashtable GHashTable *expected_env = NULL;
-	GError *error = NULL;
-	gboolean success;
-	gs_free char *filename = NULL;
-	gs_strfreev char **denv = NULL;
-	char **iter;
-
-	filename = g_build_filename (TEST_DIR, file, NULL);
-	success = get_dispatcher_file (filename,
-	                               &con_dict,
-	                               &con_props,
-	                               &device_props,
-	                               &device_proxy_props,
-	                               &device_ip4_props,
-	                               &device_ip6_props,
-	                               &device_dhcp4_props,
-	                               &device_dhcp6_props,
-	                               &connectivity_change,
-	                               &vpn_ip_iface,
-	                               &vpn_proxy_props,
-	                               &vpn_ip4_props,
-	                               &vpn_ip6_props,
-	                               &expected_iface,
-	                               &action,
-	                               &expected_env,
-	                               &error);
-	nmtst_assert_success (success, error);
-
-	/* Get the environment from the dispatcher code */
-	denv = nm_dispatcher_utils_construct_envp (action,
-	                                           con_dict,
-	                                           con_props,
-	                                           device_props,
-	                                           device_proxy_props,
-	                                           device_ip4_props,
-	                                           device_ip6_props,
-	                                           device_dhcp4_props,
-	                                           device_dhcp6_props,
-	                                           connectivity_change,
-	                                           override_vpn_ip_iface ?: vpn_ip_iface,
-	                                           vpn_proxy_props,
-	                                           vpn_ip4_props,
-	                                           vpn_ip6_props,
-	                                           &out_iface,
-	                                           &error_message);
-
-	g_assert ((!denv && error_message) || (denv && !error_message));
-
-	if (error_message)
-		g_error ("FAILED: %s", error_message);
-
-	if (g_strv_length (denv) != g_hash_table_size (expected_env)) {
-		_print_env (NM_CAST_STRV_CC (denv), expected_env);
-		g_assert_cmpint (g_strv_length (denv), ==, g_hash_table_size (expected_env));
-	}
-
-	/* Compare dispatcher generated env and expected env */
-	for (iter = denv; iter && *iter; iter++) {
-		gpointer foo;
-		const char *i_value = *iter;
-
-		if (strstr (i_value, "PATH=") == i_value) {
-			g_assert_cmpstr (&i_value[strlen("PATH=")], ==, g_getenv ("PATH"));
-
-			/* The path is constructed dynamically. Ignore the actual value. */
-			i_value = "PATH=";
-		}
-
-		foo = g_hash_table_lookup (expected_env, i_value);
-		if (!foo) {
-			_print_env (NM_CAST_STRV_CC (denv), expected_env);
-			g_error ("Failed to find %s in environment", i_value);
-		}
-	}
-
-	g_assert_cmpstr (expected_iface, ==, out_iface);
+    gs_unref_variant GVariant *con_dict            = NULL;
+    gs_unref_variant GVariant *con_props           = NULL;
+    gs_unref_variant GVariant *device_props        = NULL;
+    gs_unref_variant GVariant *device_proxy_props  = NULL;
+    gs_unref_variant GVariant *device_ip4_props    = NULL;
+    gs_unref_variant GVariant *device_ip6_props    = NULL;
+    gs_unref_variant GVariant *device_dhcp4_props  = NULL;
+    gs_unref_variant GVariant *device_dhcp6_props  = NULL;
+    gs_free char *             connectivity_change = NULL;
+    gs_free char *             vpn_ip_iface        = NULL;
+    gs_unref_variant GVariant *vpn_proxy_props     = NULL;
+    gs_unref_variant GVariant *vpn_ip4_props       = NULL;
+    gs_unref_variant GVariant *vpn_ip6_props       = NULL;
+    gs_free char *             expected_iface      = NULL;
+    gs_free char *             action              = NULL;
+    gs_free char *             out_iface           = NULL;
+    const char *               error_message       = NULL;
+    gs_unref_hashtable GHashTable *expected_env    = NULL;
+    GError *                       error           = NULL;
+    gboolean                       success;
+    gs_free char *                 filename = NULL;
+    gs_strfreev char **            denv     = NULL;
+    char **                        iter;
+
+    filename = g_build_filename(TEST_DIR, file, NULL);
+    success  = get_dispatcher_file(filename,
+                                  &con_dict,
+                                  &con_props,
+                                  &device_props,
+                                  &device_proxy_props,
+                                  &device_ip4_props,
+                                  &device_ip6_props,
+                                  &device_dhcp4_props,
+                                  &device_dhcp6_props,
+                                  &connectivity_change,
+                                  &vpn_ip_iface,
+                                  &vpn_proxy_props,
+                                  &vpn_ip4_props,
+                                  &vpn_ip6_props,
+                                  &expected_iface,
+                                  &action,
+                                  &expected_env,
+                                  &error);
+    nmtst_assert_success(success, error);
+
+    /* Get the environment from the dispatcher code */
+    denv = nm_dispatcher_utils_construct_envp(action,
+                                              con_dict,
+                                              con_props,
+                                              device_props,
+                                              device_proxy_props,
+                                              device_ip4_props,
+                                              device_ip6_props,
+                                              device_dhcp4_props,
+                                              device_dhcp6_props,
+                                              connectivity_change,
+                                              override_vpn_ip_iface ?: vpn_ip_iface,
+                                              vpn_proxy_props,
+                                              vpn_ip4_props,
+                                              vpn_ip6_props,
+                                              &out_iface,
+                                              &error_message);
+
+    g_assert((!denv && error_message) || (denv && !error_message));
+
+    if (error_message)
+        g_error("FAILED: %s", error_message);
+
+    if (g_strv_length(denv) != g_hash_table_size(expected_env)) {
+        _print_env(NM_CAST_STRV_CC(denv), expected_env);
+        g_assert_cmpint(g_strv_length(denv), ==, g_hash_table_size(expected_env));
+    }
+
+    /* Compare dispatcher generated env and expected env */
+    for (iter = denv; iter && *iter; iter++) {
+        gpointer    foo;
+        const char *i_value = *iter;
+
+        if (strstr(i_value, "PATH=") == i_value) {
+            g_assert_cmpstr(&i_value[strlen("PATH=")], ==, g_getenv("PATH"));
+
+            /* The path is constructed dynamically. Ignore the actual value. */
+            i_value = "PATH=";
+        }
+
+        foo = g_hash_table_lookup(expected_env, i_value);
+        if (!foo) {
+            _print_env(NM_CAST_STRV_CC(denv), expected_env);
+            g_error("Failed to find %s in environment", i_value);
+        }
+    }
+
+    g_assert_cmpstr(expected_iface, ==, out_iface);
 }
 
 /*****************************************************************************/
 
 static void
-test_up (void)
+test_up(void)
 {
-	test_generic ("dispatcher-up", NULL);
+    test_generic("dispatcher-up", NULL);
 }
 
 static void
-test_down (void)
+test_down(void)
 {
-	test_generic ("dispatcher-down", NULL);
+    test_generic("dispatcher-down", NULL);
 }
 
 static void
-test_vpn_up (void)
+test_vpn_up(void)
 {
-	test_generic ("dispatcher-vpn-up", NULL);
+    test_generic("dispatcher-vpn-up", NULL);
 }
 
 static void
-test_vpn_down (void)
+test_vpn_down(void)
 {
-	test_generic ("dispatcher-vpn-down", NULL);
+    test_generic("dispatcher-vpn-down", NULL);
 }
 
 static void
-test_external (void)
+test_external(void)
 {
-	test_generic ("dispatcher-external", NULL);
+    test_generic("dispatcher-external", NULL);
 }
 
 static void
-test_connectivity_changed (void)
+test_connectivity_changed(void)
 {
-	/* These tests will check that the CONNECTIVITY_STATE environment
-	 * variable is only defined for known states, such as 'full'. */
-	test_generic ("dispatcher-connectivity-unknown", NULL);
-	test_generic ("dispatcher-connectivity-full", NULL);
+    /* These tests will check that the CONNECTIVITY_STATE environment
+     * variable is only defined for known states, such as 'full'. */
+    test_generic("dispatcher-connectivity-unknown", NULL);
+    test_generic("dispatcher-connectivity-full", NULL);
 }
 
 static void
-test_up_empty_vpn_iface (void)
+test_up_empty_vpn_iface(void)
 {
-	/* Test that an empty VPN iface variable, like is passed through D-Bus
-	 * from NM, is ignored by the dispatcher environment construction code.
-	 */
-	test_generic ("dispatcher-up", "");
+    /* Test that an empty VPN iface variable, like is passed through D-Bus
+     * from NM, is ignored by the dispatcher environment construction code.
+     */
+    test_generic("dispatcher-up", "");
 }
 
 /*****************************************************************************/
 
 static void
-test_gdbus_codegen (void)
+test_gdbus_codegen(void)
 {
-	gs_unref_object NMDBusDispatcher *dbus_dispatcher = NULL;
+    gs_unref_object NMDBusDispatcher *dbus_dispatcher = NULL;
 
-	dbus_dispatcher = nmdbus_dispatcher_skeleton_new ();
-	g_assert (NMDBUS_IS_DISPATCHER_SKELETON (dbus_dispatcher));
+    dbus_dispatcher = nmdbus_dispatcher_skeleton_new();
+    g_assert(NMDBUS_IS_DISPATCHER_SKELETON(dbus_dispatcher));
 }
 
 /*****************************************************************************/
 
-NMTST_DEFINE ();
+NMTST_DEFINE();
 
 int
-main (int argc, char **argv)
+main(int argc, char **argv)
 {
-	nmtst_init (&argc, &argv, TRUE);
+    nmtst_init(&argc, &argv, TRUE);
 
-	g_test_add_func ("/dispatcher/up", test_up);
-	g_test_add_func ("/dispatcher/down", test_down);
-	g_test_add_func ("/dispatcher/vpn_up", test_vpn_up);
-	g_test_add_func ("/dispatcher/vpn_down", test_vpn_down);
-	g_test_add_func ("/dispatcher/external", test_external);
-	g_test_add_func ("/dispatcher/connectivity_changed", test_connectivity_changed);
+    g_test_add_func("/dispatcher/up", test_up);
+    g_test_add_func("/dispatcher/down", test_down);
+    g_test_add_func("/dispatcher/vpn_up", test_vpn_up);
+    g_test_add_func("/dispatcher/vpn_down", test_vpn_down);
+    g_test_add_func("/dispatcher/external", test_external);
+    g_test_add_func("/dispatcher/connectivity_changed", test_connectivity_changed);
 
-	g_test_add_func ("/dispatcher/up_empty_vpn_iface", test_up_empty_vpn_iface);
+    g_test_add_func("/dispatcher/up_empty_vpn_iface", test_up_empty_vpn_iface);
 
-	g_test_add_func ("/dispatcher/gdbus-codegen", test_gdbus_codegen);
+    g_test_add_func("/dispatcher/gdbus-codegen", test_gdbus_codegen);
 
-	return g_test_run ();
+    return g_test_run();
 }
-