summaryrefslogtreecommitdiff
path: root/libnm-core/tests/test-general.c
diff options
context:
space:
mode:
Diffstat (limited to 'libnm-core/tests/test-general.c')
-rw-r--r--libnm-core/tests/test-general.c634
1 files changed, 437 insertions, 197 deletions
diff --git a/libnm-core/tests/test-general.c b/libnm-core/tests/test-general.c
index a71238929f..522c6eb15f 100644
--- a/libnm-core/tests/test-general.c
+++ b/libnm-core/tests/test-general.c
@@ -323,153 +323,209 @@ test_setting_vpn_modify_during_foreach (void)
static void
test_setting_ip4_config_labels (void)
{
- NMSettingIP4Config *s_ip4;
- NMIP4Address *addr;
- const char *label;
+ NMSettingIPConfig *s_ip4;
+ NMIPAddress *addr;
+ GVariant *label;
GPtrArray *addrs;
char **labels;
+ NMConnection *conn;
+ GVariant *dict, *dict2, *setting_dict, *value;
GError *error = NULL;
- s_ip4 = (NMSettingIP4Config *) nm_setting_ip4_config_new ();
+ s_ip4 = (NMSettingIPConfig *) nm_setting_ip4_config_new ();
g_object_set (G_OBJECT (s_ip4),
- NM_SETTING_IP4_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_MANUAL,
+ NM_SETTING_IP_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_MANUAL,
NULL);
/* addr 1 */
- addr = nm_ip4_address_new ();
- nm_ip4_address_set_address (addr, 0x01010101);
- nm_ip4_address_set_prefix (addr, 24);
+ addr = nm_ip_address_new (AF_INET, "1.1.1.1", 24, &error);
+ g_assert_no_error (error);
- nm_setting_ip4_config_add_address (s_ip4, addr);
- nm_ip4_address_unref (addr);
+ nm_setting_ip_config_add_address (s_ip4, addr);
+ nm_ip_address_unref (addr);
nm_setting_verify (NM_SETTING (s_ip4), NULL, &error);
g_assert_no_error (error);
- label = _nm_setting_ip4_config_get_address_label (s_ip4, 0);
- g_assert_cmpstr (label, ==, "");
+ addr = nm_setting_ip_config_get_address (s_ip4, 0);
+ label = nm_ip_address_get_attribute (addr, "label");
+ g_assert (label == NULL);
+
+ /* The 'address-labels' property should be omitted from the serialization if
+ * there are no non-NULL labels.
+ */
+ conn = nmtst_create_minimal_connection ("label test", NULL, NM_SETTING_WIRED_SETTING_NAME, NULL);
+ nm_connection_add_setting (conn, nm_setting_duplicate (NM_SETTING (s_ip4)));
+ dict = nm_connection_to_dbus (conn, NM_CONNECTION_SERIALIZE_ALL);
+ g_object_unref (conn);
+
+ setting_dict = g_variant_lookup_value (dict, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_VARIANT_TYPE_SETTING);
+ g_assert (setting_dict != NULL);
+
+ value = g_variant_lookup_value (setting_dict, "address-labels", NULL);
+ g_assert (value == NULL);
+
+ g_variant_unref (setting_dict);
+ g_variant_unref (dict);
+
+ /* Now back to constructing the original s_ip4... */
/* addr 2 */
- addr = nm_ip4_address_new ();
- nm_ip4_address_set_address (addr, 0x02020202);
- nm_ip4_address_set_prefix (addr, 24);
+ addr = nm_ip_address_new (AF_INET, "2.2.2.2", 24, &error);
+ g_assert_no_error (error);
+ nm_ip_address_set_attribute (addr, "label", g_variant_new_string ("eth0:1"));
- _nm_setting_ip4_config_add_address_with_label (s_ip4, addr, "eth0:1");
- nm_ip4_address_unref (addr);
+ nm_setting_ip_config_add_address (s_ip4, addr);
+ nm_ip_address_unref (addr);
nm_setting_verify (NM_SETTING (s_ip4), NULL, &error);
g_assert_no_error (error);
- label = _nm_setting_ip4_config_get_address_label (s_ip4, 1);
- g_assert_cmpstr (label, ==, "eth0:1");
+ addr = nm_setting_ip_config_get_address (s_ip4, 1);
+ label = nm_ip_address_get_attribute (addr, "label");
+ g_assert (label != NULL);
+ g_assert_cmpstr (g_variant_get_string (label, NULL), ==, "eth0:1");
/* addr 3 */
- addr = nm_ip4_address_new ();
- nm_ip4_address_set_address (addr, 0x03030303);
- nm_ip4_address_set_prefix (addr, 24);
+ addr = nm_ip_address_new (AF_INET, "3.3.3.3", 24, &error);
+ g_assert_no_error (error);
+ nm_ip_address_set_attribute (addr, "label", NULL);
- _nm_setting_ip4_config_add_address_with_label (s_ip4, addr, "");
- nm_ip4_address_unref (addr);
+ nm_setting_ip_config_add_address (s_ip4, addr);
+ nm_ip_address_unref (addr);
nm_setting_verify (NM_SETTING (s_ip4), NULL, &error);
g_assert_no_error (error);
- label = _nm_setting_ip4_config_get_address_label (s_ip4, 2);
- g_assert_cmpstr (label, ==, "");
+ addr = nm_setting_ip_config_get_address (s_ip4, 2);
+ label = nm_ip_address_get_attribute (addr, "label");
+ g_assert (label == NULL);
/* Remove addr 1 and re-verify remaining addresses */
- nm_setting_ip4_config_remove_address (s_ip4, 0);
+ nm_setting_ip_config_remove_address (s_ip4, 0);
nm_setting_verify (NM_SETTING (s_ip4), NULL, &error);
g_assert_no_error (error);
- addr = nm_setting_ip4_config_get_address (s_ip4, 0);
- g_assert_cmpint (nm_ip4_address_get_address (addr), ==, 0x02020202);
- label = _nm_setting_ip4_config_get_address_label (s_ip4, 0);
- g_assert_cmpstr (label, ==, "eth0:1");
+ addr = nm_setting_ip_config_get_address (s_ip4, 0);
+ g_assert_cmpstr (nm_ip_address_get_address (addr), ==, "2.2.2.2");
+ label = nm_ip_address_get_attribute (addr, "label");
+ g_assert (label != NULL);
+ g_assert_cmpstr (g_variant_get_string (label, NULL), ==, "eth0:1");
- addr = nm_setting_ip4_config_get_address (s_ip4, 1);
- g_assert_cmpint (nm_ip4_address_get_address (addr), ==, 0x03030303);
- label = _nm_setting_ip4_config_get_address_label (s_ip4, 1);
- g_assert_cmpstr (label, ==, "");
+ addr = nm_setting_ip_config_get_address (s_ip4, 1);
+ g_assert_cmpstr (nm_ip_address_get_address (addr), ==, "3.3.3.3");
+ label = nm_ip_address_get_attribute (addr, "label");
+ g_assert (label == NULL);
+ /* The labels should appear in the D-Bus serialization under both
+ * 'address-labels' and 'address-data'.
+ */
+ conn = nmtst_create_minimal_connection ("label test", NULL, NM_SETTING_WIRED_SETTING_NAME, NULL);
+ nm_connection_add_setting (conn, NM_SETTING (s_ip4));
+ dict = nm_connection_to_dbus (conn, NM_CONNECTION_SERIALIZE_ALL);
+ g_object_unref (conn);
- /* Test explicit property assignment */
- g_object_get (G_OBJECT (s_ip4),
- NM_SETTING_IP4_CONFIG_ADDRESSES, &addrs,
- "address-labels", &labels,
- NULL);
+ setting_dict = g_variant_lookup_value (dict, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_VARIANT_TYPE_SETTING);
+ g_assert (setting_dict != NULL);
- nm_setting_ip4_config_clear_addresses (s_ip4);
- g_assert_cmpint (nm_setting_ip4_config_get_num_addresses (s_ip4), ==, 0);
+ value = g_variant_lookup_value (setting_dict, "address-labels", G_VARIANT_TYPE_STRING_ARRAY);
+ g_assert (value != NULL);
+ g_variant_get (value, "^as", &labels);
+ g_assert_cmpint (g_strv_length (labels), ==, 2);
+ g_assert_cmpstr (labels[0], ==, "eth0:1");
+ g_assert_cmpstr (labels[1], ==, "");
+ g_variant_unref (value);
+ g_strfreev (labels);
- /* Setting addrs but not labels will result in empty labels */
- g_object_set (G_OBJECT (s_ip4),
- NM_SETTING_IP4_CONFIG_ADDRESSES, addrs,
- NULL);
+ value = g_variant_lookup_value (setting_dict, "address-data", G_VARIANT_TYPE ("aa{sv}"));
+ addrs = nm_utils_ip_addresses_from_variant (value, AF_INET);
+ g_variant_unref (value);
+ g_assert (addrs != NULL);
+ g_assert_cmpint (addrs->len, ==, 2);
+ addr = addrs->pdata[0];
+ label = nm_ip_address_get_attribute (addr, "label");
+ g_assert (label != NULL);
+ g_assert_cmpstr (g_variant_get_string (label, NULL), ==, "eth0:1");
+ addr = addrs->pdata[1];
+ label = nm_ip_address_get_attribute (addr, "label");
+ g_assert (label == NULL);
g_ptr_array_unref (addrs);
- nm_setting_verify (NM_SETTING (s_ip4), NULL, &error);
+
+ g_variant_unref (setting_dict);
+
+ /* We should be able to deserialize the labels from either 'address-labels'
+ * or 'address-data'.
+ */
+ dict2 = g_variant_ref (dict);
+
+ NMTST_VARIANT_EDITOR (dict,
+ NMTST_VARIANT_DROP_PROPERTY (NM_SETTING_IP4_CONFIG_SETTING_NAME,
+ "address-data");
+ );
+ conn = nm_simple_connection_new_from_dbus (dict, &error);
g_assert_no_error (error);
- g_assert_cmpint (nm_setting_ip4_config_get_num_addresses (s_ip4), ==, 2);
+ g_variant_unref (dict);
- addr = nm_setting_ip4_config_get_address (s_ip4, 0);
- g_assert_cmpint (nm_ip4_address_get_address (addr), ==, 0x02020202);
- label = _nm_setting_ip4_config_get_address_label (s_ip4, 0);
- g_assert_cmpstr (label, ==, "");
+ s_ip4 = nm_connection_get_setting_ip4_config (conn);
- addr = nm_setting_ip4_config_get_address (s_ip4, 1);
- g_assert_cmpint (nm_ip4_address_get_address (addr), ==, 0x03030303);
- label = _nm_setting_ip4_config_get_address_label (s_ip4, 1);
- g_assert_cmpstr (label, ==, "");
+ addr = nm_setting_ip_config_get_address (s_ip4, 0);
+ g_assert_cmpstr (nm_ip_address_get_address (addr), ==, "2.2.2.2");
+ label = nm_ip_address_get_attribute (addr, "label");
+ g_assert (label != NULL);
+ g_assert_cmpstr (g_variant_get_string (label, NULL), ==, "eth0:1");
- /* Setting labels now will leave addresses untouched */
- g_object_set (G_OBJECT (s_ip4),
- "address-labels", labels,
- NULL);
- g_strfreev (labels);
- nm_setting_verify (NM_SETTING (s_ip4), NULL, &error);
+ addr = nm_setting_ip_config_get_address (s_ip4, 1);
+ g_assert_cmpstr (nm_ip_address_get_address (addr), ==, "3.3.3.3");
+ label = nm_ip_address_get_attribute (addr, "label");
+ g_assert (label == NULL);
+
+ g_object_unref (conn);
+
+ NMTST_VARIANT_EDITOR (dict2,
+ NMTST_VARIANT_DROP_PROPERTY (NM_SETTING_IP4_CONFIG_SETTING_NAME,
+ "address-labels");
+ );
+ conn = nm_simple_connection_new_from_dbus (dict2, &error);
g_assert_no_error (error);
- g_assert_cmpint (nm_setting_ip4_config_get_num_addresses (s_ip4), ==, 2);
+ g_variant_unref (dict2);
- addr = nm_setting_ip4_config_get_address (s_ip4, 0);
- g_assert_cmpint (nm_ip4_address_get_address (addr), ==, 0x02020202);
- label = _nm_setting_ip4_config_get_address_label (s_ip4, 0);
- g_assert_cmpstr (label, ==, "eth0:1");
+ s_ip4 = nm_connection_get_setting_ip4_config (conn);
- addr = nm_setting_ip4_config_get_address (s_ip4, 1);
- g_assert_cmpint (nm_ip4_address_get_address (addr), ==, 0x03030303);
- label = _nm_setting_ip4_config_get_address_label (s_ip4, 1);
- g_assert_cmpstr (label, ==, "");
+ addr = nm_setting_ip_config_get_address (s_ip4, 0);
+ g_assert_cmpstr (nm_ip_address_get_address (addr), ==, "2.2.2.2");
+ label = nm_ip_address_get_attribute (addr, "label");
+ g_assert_cmpstr (g_variant_get_string (label, NULL), ==, "eth0:1");
- /* Setting labels to a value that's too short or too long will result in
- * the setting not verifying.
- */
- labels = g_strsplit ("eth0:2", ",", -1);
- g_object_set (G_OBJECT (s_ip4),
- "address-labels", labels,
+ addr = nm_setting_ip_config_get_address (s_ip4, 1);
+ g_assert_cmpstr (nm_ip_address_get_address (addr), ==, "3.3.3.3");
+ label = nm_ip_address_get_attribute (addr, "label");
+ g_assert (label == NULL);
+
+ /* Test explicit property assignment */
+ g_object_get (G_OBJECT (s_ip4),
+ NM_SETTING_IP_CONFIG_ADDRESSES, &addrs,
NULL);
- g_strfreev (labels);
- nm_setting_verify (NM_SETTING (s_ip4), NULL, &error);
- g_assert_error (error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_INVALID_PROPERTY);
- g_assert (g_str_has_prefix (error->message, "ipv4.address-labels:"));
- g_clear_error (&error);
+ nm_setting_ip_config_clear_addresses (s_ip4);
+ g_assert_cmpint (nm_setting_ip_config_get_num_addresses (s_ip4), ==, 0);
- labels = g_strsplit ("eth0:2,eth0:3", ",", -1);
g_object_set (G_OBJECT (s_ip4),
- "address-labels", labels,
+ NM_SETTING_IP_CONFIG_ADDRESSES, addrs,
NULL);
- g_strfreev (labels);
+ g_ptr_array_unref (addrs);
nm_setting_verify (NM_SETTING (s_ip4), NULL, &error);
g_assert_no_error (error);
+ g_assert_cmpint (nm_setting_ip_config_get_num_addresses (s_ip4), ==, 2);
- labels = g_strsplit ("eth0:2,eth0:3,eth0:4", ",", -1);
- g_object_set (G_OBJECT (s_ip4),
- "address-labels", labels,
- NULL);
- g_strfreev (labels);
- nm_setting_verify (NM_SETTING (s_ip4), NULL, &error);
- g_assert_error (error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_INVALID_PROPERTY);
- g_assert (g_str_has_prefix (error->message, "ipv4.address-labels:"));
- g_clear_error (&error);
+ addr = nm_setting_ip_config_get_address (s_ip4, 0);
+ g_assert_cmpstr (nm_ip_address_get_address (addr), ==, "2.2.2.2");
+ label = nm_ip_address_get_attribute (addr, "label");
+ g_assert (label != NULL);
+ g_assert_cmpstr (g_variant_get_string (label, NULL), ==, "eth0:1");
- g_object_unref (s_ip4);
+ addr = nm_setting_ip_config_get_address (s_ip4, 1);
+ g_assert_cmpstr (nm_ip_address_get_address (addr), ==, "3.3.3.3");
+ label = nm_ip_address_get_attribute (addr, "label");
+ g_assert (label == NULL);
+
+ g_object_unref (conn);
}
static void
@@ -1005,8 +1061,8 @@ new_test_connection (void)
setting = nm_setting_ip4_config_new ();
g_object_set (G_OBJECT (setting),
- NM_SETTING_IP4_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_AUTO,
- NM_SETTING_IP4_CONFIG_DHCP_HOSTNAME, "eyeofthetiger",
+ NM_SETTING_IP_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_AUTO,
+ NM_SETTING_IP_CONFIG_DHCP_HOSTNAME, "eyeofthetiger",
NULL);
nm_connection_add_setting (connection, setting);
@@ -1054,7 +1110,7 @@ new_connection_dict (char **out_uuid,
/* IP6 */
g_variant_builder_init (&setting_builder, NM_VARIANT_TYPE_SETTING);
g_variant_builder_add (&setting_builder, "{sv}",
- NM_SETTING_IP6_CONFIG_METHOD,
+ NM_SETTING_IP_CONFIG_METHOD,
g_variant_new_string (*out_expected_ip6_method));
g_variant_builder_add (&conn_builder, "{sa{sv}}",
NM_SETTING_IP6_CONFIG_SETTING_NAME,
@@ -1071,7 +1127,7 @@ test_connection_replace_settings (void)
GError *error = NULL;
gboolean success;
NMSettingConnection *s_con;
- NMSettingIP6Config *s_ip6;
+ NMSettingIPConfig *s_ip6;
char *uuid = NULL;
const char *expected_id = NULL, *expected_method = NULL;
@@ -1095,7 +1151,7 @@ test_connection_replace_settings (void)
s_ip6 = nm_connection_get_setting_ip6_config (connection);
g_assert (s_ip6);
- g_assert_cmpstr (nm_setting_ip6_config_get_method (s_ip6), ==, expected_method);
+ g_assert_cmpstr (nm_setting_ip_config_get_method (s_ip6), ==, expected_method);
g_free (uuid);
g_variant_unref (new_settings);
@@ -1226,7 +1282,7 @@ test_connection_new_from_dbus (void)
GVariant *new_settings;
GError *error = NULL;
NMSettingConnection *s_con;
- NMSettingIP6Config *s_ip6;
+ NMSettingIPConfig *s_ip6;
char *uuid = NULL;
const char *expected_id = NULL, *expected_method = NULL;
@@ -1248,7 +1304,7 @@ test_connection_new_from_dbus (void)
s_ip6 = nm_connection_get_setting_ip6_config (connection);
g_assert (s_ip6);
- g_assert_cmpstr (nm_setting_ip6_config_get_method (s_ip6), ==, expected_method);
+ g_assert_cmpstr (nm_setting_ip_config_get_method (s_ip6), ==, expected_method);
g_free (uuid);
g_variant_unref (new_settings);
@@ -1639,19 +1695,20 @@ test_connection_diff_a_only (void)
{ NULL, NM_SETTING_DIFF_RESULT_UNKNOWN },
} },
{ NM_SETTING_IP4_CONFIG_SETTING_NAME, {
- { NM_SETTING_IP4_CONFIG_METHOD, NM_SETTING_DIFF_RESULT_IN_A },
- { NM_SETTING_IP4_CONFIG_DNS, NM_SETTING_DIFF_RESULT_IN_A },
- { NM_SETTING_IP4_CONFIG_DNS_SEARCH, NM_SETTING_DIFF_RESULT_IN_A },
- { NM_SETTING_IP4_CONFIG_ADDRESSES, NM_SETTING_DIFF_RESULT_IN_A },
- { "address-labels", NM_SETTING_DIFF_RESULT_IN_A },
- { NM_SETTING_IP4_CONFIG_ROUTES, NM_SETTING_DIFF_RESULT_IN_A },
- { NM_SETTING_IP4_CONFIG_IGNORE_AUTO_ROUTES, NM_SETTING_DIFF_RESULT_IN_A },
- { NM_SETTING_IP4_CONFIG_IGNORE_AUTO_DNS, NM_SETTING_DIFF_RESULT_IN_A },
- { NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID, NM_SETTING_DIFF_RESULT_IN_A },
- { NM_SETTING_IP4_CONFIG_DHCP_SEND_HOSTNAME, NM_SETTING_DIFF_RESULT_IN_A },
- { NM_SETTING_IP4_CONFIG_DHCP_HOSTNAME, NM_SETTING_DIFF_RESULT_IN_A },
- { NM_SETTING_IP4_CONFIG_NEVER_DEFAULT, NM_SETTING_DIFF_RESULT_IN_A },
- { NM_SETTING_IP4_CONFIG_MAY_FAIL, NM_SETTING_DIFF_RESULT_IN_A },
+ { NM_SETTING_IP_CONFIG_METHOD, NM_SETTING_DIFF_RESULT_IN_A },
+ { NM_SETTING_IP_CONFIG_DNS, NM_SETTING_DIFF_RESULT_IN_A },
+ { NM_SETTING_IP_CONFIG_DNS_SEARCH, NM_SETTING_DIFF_RESULT_IN_A },
+ { NM_SETTING_IP_CONFIG_ADDRESSES, NM_SETTING_DIFF_RESULT_IN_A },
+ { NM_SETTING_IP_CONFIG_GATEWAY, NM_SETTING_DIFF_RESULT_IN_A },
+ { NM_SETTING_IP_CONFIG_ROUTES, NM_SETTING_DIFF_RESULT_IN_A },
+ { NM_SETTING_IP_CONFIG_ROUTE_METRIC, NM_SETTING_DIFF_RESULT_IN_A },
+ { NM_SETTING_IP_CONFIG_IGNORE_AUTO_ROUTES, NM_SETTING_DIFF_RESULT_IN_A },
+ { NM_SETTING_IP_CONFIG_IGNORE_AUTO_DNS, NM_SETTING_DIFF_RESULT_IN_A },
+ { NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID, NM_SETTING_DIFF_RESULT_IN_A },
+ { NM_SETTING_IP_CONFIG_DHCP_SEND_HOSTNAME, NM_SETTING_DIFF_RESULT_IN_A },
+ { NM_SETTING_IP_CONFIG_DHCP_HOSTNAME, NM_SETTING_DIFF_RESULT_IN_A },
+ { NM_SETTING_IP_CONFIG_NEVER_DEFAULT, NM_SETTING_DIFF_RESULT_IN_A },
+ { NM_SETTING_IP_CONFIG_MAY_FAIL, NM_SETTING_DIFF_RESULT_IN_A },
{ NULL, NM_SETTING_DIFF_RESULT_UNKNOWN },
} },
};
@@ -1691,11 +1748,11 @@ test_connection_diff_different (void)
{
NMConnection *a, *b;
GHashTable *out_diffs = NULL;
- NMSettingIP4Config *s_ip4;
+ NMSettingIPConfig *s_ip4;
gboolean same;
const DiffSetting settings[] = {
{ NM_SETTING_IP4_CONFIG_SETTING_NAME, {
- { NM_SETTING_IP4_CONFIG_METHOD, NM_SETTING_DIFF_RESULT_IN_A | NM_SETTING_DIFF_RESULT_IN_B },
+ { NM_SETTING_IP_CONFIG_METHOD, NM_SETTING_DIFF_RESULT_IN_A | NM_SETTING_DIFF_RESULT_IN_B },
{ NULL, NM_SETTING_DIFF_RESULT_UNKNOWN },
} },
};
@@ -1705,7 +1762,7 @@ test_connection_diff_different (void)
s_ip4 = nm_connection_get_setting_ip4_config (a);
g_assert (s_ip4);
g_object_set (G_OBJECT (s_ip4),
- NM_SETTING_IP4_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_MANUAL,
+ NM_SETTING_IP_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_MANUAL,
NULL);
same = nm_connection_diff (a, b, NM_SETTING_COMPARE_FLAG_EXACT, &out_diffs);
@@ -1776,7 +1833,7 @@ test_connection_diff_inferrable (void)
gboolean same;
NMSettingConnection *s_con;
NMSettingWired *s_wired;
- NMSettingIP4Config *s_ip4;
+ NMSettingIPConfig *s_ip4;
char *uuid;
const DiffSetting settings[] = {
{ NM_SETTING_CONNECTION_SETTING_NAME, {
@@ -1804,7 +1861,7 @@ test_connection_diff_inferrable (void)
s_ip4 = nm_connection_get_setting_ip4_config (a);
g_assert (s_ip4);
- g_object_set (G_OBJECT (s_ip4), NM_SETTING_IP4_CONFIG_IGNORE_AUTO_DNS, TRUE, NULL);
+ g_object_set (G_OBJECT (s_ip4), NM_SETTING_IP_CONFIG_IGNORE_AUTO_DNS, TRUE, NULL);
/* Make sure the diff returns no results as secrets are ignored */
same = nm_connection_diff (a, b, NM_SETTING_COMPARE_FLAG_INFERRABLE, &out_diffs);
@@ -1846,11 +1903,11 @@ add_generic_settings (NMConnection *connection, const char *ctype)
g_free (uuid);
setting = nm_setting_ip4_config_new ();
- g_object_set (setting, NM_SETTING_IP4_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_AUTO, NULL);
+ g_object_set (setting, NM_SETTING_IP_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_AUTO, NULL);
nm_connection_add_setting (connection, setting);
setting = nm_setting_ip6_config_new ();
- g_object_set (setting, NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_AUTO, NULL);
+ g_object_set (setting, NM_SETTING_IP_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_AUTO, NULL);
nm_connection_add_setting (connection, setting);
}
@@ -2456,9 +2513,10 @@ test_setting_ip4_changed_signal (void)
{
NMConnection *connection;
gboolean changed = FALSE;
- NMSettingIP4Config *s_ip4;
- NMIP4Address *addr;
- NMIP4Route *route;
+ NMSettingIPConfig *s_ip4;
+ NMIPAddress *addr;
+ NMIPRoute *route;
+ GError *error = NULL;
connection = nm_simple_connection_new ();
g_signal_connect (connection,
@@ -2466,58 +2524,56 @@ test_setting_ip4_changed_signal (void)
(GCallback) test_connection_changed_cb,
&changed);
- s_ip4 = (NMSettingIP4Config *) nm_setting_ip4_config_new ();
+ s_ip4 = (NMSettingIPConfig *) nm_setting_ip4_config_new ();
nm_connection_add_setting (connection, NM_SETTING (s_ip4));
- ASSERT_CHANGED (nm_setting_ip4_config_add_dns (s_ip4, "11.22.0.0"));
- ASSERT_CHANGED (nm_setting_ip4_config_remove_dns (s_ip4, 0));
+ ASSERT_CHANGED (nm_setting_ip_config_add_dns (s_ip4, "11.22.0.0"));
+ ASSERT_CHANGED (nm_setting_ip_config_remove_dns (s_ip4, 0));
- g_test_expect_message ("libnm", G_LOG_LEVEL_CRITICAL, "*elt != NULL*");
- ASSERT_UNCHANGED (nm_setting_ip4_config_remove_dns (s_ip4, 1));
+ g_test_expect_message ("libnm", G_LOG_LEVEL_CRITICAL, "*i < priv->dns->len*");
+ ASSERT_UNCHANGED (nm_setting_ip_config_remove_dns (s_ip4, 1));
g_test_assert_expected_messages ();
- nm_setting_ip4_config_add_dns (s_ip4, "33.44.0.0");
- ASSERT_CHANGED (nm_setting_ip4_config_clear_dns (s_ip4));
+ nm_setting_ip_config_add_dns (s_ip4, "33.44.0.0");
+ ASSERT_CHANGED (nm_setting_ip_config_clear_dns (s_ip4));
- ASSERT_CHANGED (nm_setting_ip4_config_add_dns_search (s_ip4, "foobar.com"));
- ASSERT_CHANGED (nm_setting_ip4_config_remove_dns_search (s_ip4, 0));
+ ASSERT_CHANGED (nm_setting_ip_config_add_dns_search (s_ip4, "foobar.com"));
+ ASSERT_CHANGED (nm_setting_ip_config_remove_dns_search (s_ip4, 0));
- g_test_expect_message ("libnm", G_LOG_LEVEL_CRITICAL, "*elt != NULL*");
- ASSERT_UNCHANGED (nm_setting_ip4_config_remove_dns_search (s_ip4, 1));
+ g_test_expect_message ("libnm", G_LOG_LEVEL_CRITICAL, "*i < priv->dns_search->len*");
+ ASSERT_UNCHANGED (nm_setting_ip_config_remove_dns_search (s_ip4, 1));
g_test_assert_expected_messages ();
- ASSERT_CHANGED (nm_setting_ip4_config_add_dns_search (s_ip4, "foobar.com"));
- ASSERT_CHANGED (nm_setting_ip4_config_clear_dns_searches (s_ip4));
+ ASSERT_CHANGED (nm_setting_ip_config_add_dns_search (s_ip4, "foobar.com"));
+ ASSERT_CHANGED (nm_setting_ip_config_clear_dns_searches (s_ip4));
- addr = nm_ip4_address_new ();
- nm_ip4_address_set_address (addr, 0x2233);
- nm_ip4_address_set_prefix (addr, 24);
- ASSERT_CHANGED (nm_setting_ip4_config_add_address (s_ip4, addr));
- ASSERT_CHANGED (nm_setting_ip4_config_remove_address (s_ip4, 0));
+ addr = nm_ip_address_new (AF_INET, "22.33.0.0", 24, &error);
+ g_assert_no_error (error);
+ ASSERT_CHANGED (nm_setting_ip_config_add_address (s_ip4, addr));
+ ASSERT_CHANGED (nm_setting_ip_config_remove_address (s_ip4, 0));
- g_test_expect_message ("libnm", G_LOG_LEVEL_CRITICAL, "*addr != NULL && label != NULL*");
- ASSERT_UNCHANGED (nm_setting_ip4_config_remove_address (s_ip4, 1));
+ g_test_expect_message ("libnm", G_LOG_LEVEL_CRITICAL, "*i < priv->addresses->len*");
+ ASSERT_UNCHANGED (nm_setting_ip_config_remove_address (s_ip4, 1));
g_test_assert_expected_messages ();
- nm_setting_ip4_config_add_address (s_ip4, addr);
- ASSERT_CHANGED (nm_setting_ip4_config_clear_addresses (s_ip4));
+ nm_setting_ip_config_add_address (s_ip4, addr);
+ ASSERT_CHANGED (nm_setting_ip_config_clear_addresses (s_ip4));
- route = nm_ip4_route_new ();
- nm_ip4_route_set_dest (route, 0x2233);
- nm_ip4_route_set_prefix (route, 24);
+ route = nm_ip_route_new (AF_INET, "22.33.0.0", 24, NULL, 0, &error);
+ g_assert_no_error (error);
- ASSERT_CHANGED (nm_setting_ip4_config_add_route (s_ip4, route));
- ASSERT_CHANGED (nm_setting_ip4_config_remove_route (s_ip4, 0));
+ ASSERT_CHANGED (nm_setting_ip_config_add_route (s_ip4, route));
+ ASSERT_CHANGED (nm_setting_ip_config_remove_route (s_ip4, 0));
- g_test_expect_message ("libnm", G_LOG_LEVEL_CRITICAL, "*elt != NULL*");
- ASSERT_UNCHANGED (nm_setting_ip4_config_remove_route (s_ip4, 1));
+ g_test_expect_message ("libnm", G_LOG_LEVEL_CRITICAL, "*i < priv->routes->len*");
+ ASSERT_UNCHANGED (nm_setting_ip_config_remove_route (s_ip4, 1));
g_test_assert_expected_messages ();
- nm_setting_ip4_config_add_route (s_ip4, route);
- ASSERT_CHANGED (nm_setting_ip4_config_clear_routes (s_ip4));
+ nm_setting_ip_config_add_route (s_ip4, route);
+ ASSERT_CHANGED (nm_setting_ip_config_clear_routes (s_ip4));
- nm_ip4_address_unref (addr);
- nm_ip4_route_unref (route);
+ nm_ip_address_unref (addr);
+ nm_ip_route_unref (route);
g_object_unref (connection);
}
@@ -2526,10 +2582,10 @@ test_setting_ip6_changed_signal (void)
{
NMConnection *connection;
gboolean changed = FALSE;
- NMSettingIP6Config *s_ip6;
- NMIP6Address *addr;
- NMIP6Route *route;
- const struct in6_addr t = { { { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 } } };
+ NMSettingIPConfig *s_ip6;
+ NMIPAddress *addr;
+ NMIPRoute *route;
+ GError *error = NULL;
connection = nm_simple_connection_new ();
g_signal_connect (connection,
@@ -2537,59 +2593,57 @@ test_setting_ip6_changed_signal (void)
(GCallback) test_connection_changed_cb,
&changed);
- s_ip6 = (NMSettingIP6Config *) nm_setting_ip6_config_new ();
+ s_ip6 = (NMSettingIPConfig *) nm_setting_ip6_config_new ();
nm_connection_add_setting (connection, NM_SETTING (s_ip6));
- ASSERT_CHANGED (nm_setting_ip6_config_add_dns (s_ip6, "1:2:3::4:5:6"));
- ASSERT_CHANGED (nm_setting_ip6_config_remove_dns (s_ip6, 0));
+ ASSERT_CHANGED (nm_setting_ip_config_add_dns (s_ip6, "1:2:3::4:5:6"));
+ ASSERT_CHANGED (nm_setting_ip_config_remove_dns (s_ip6, 0));
- g_test_expect_message ("libnm", G_LOG_LEVEL_CRITICAL, "*elt != NULL*");
- ASSERT_UNCHANGED (nm_setting_ip6_config_remove_dns (s_ip6, 1));
+ g_test_expect_message ("libnm", G_LOG_LEVEL_CRITICAL, "*i < priv->dns->len*");
+ ASSERT_UNCHANGED (nm_setting_ip_config_remove_dns (s_ip6, 1));
g_test_assert_expected_messages ();
- nm_setting_ip6_config_add_dns (s_ip6, "1:2:3::4:5:6");
- ASSERT_CHANGED (nm_setting_ip6_config_clear_dns (s_ip6));
+ nm_setting_ip_config_add_dns (s_ip6, "1:2:3::4:5:6");
+ ASSERT_CHANGED (nm_setting_ip_config_clear_dns (s_ip6));
- ASSERT_CHANGED (nm_setting_ip6_config_add_dns_search (s_ip6, "foobar.com"));
- ASSERT_CHANGED (nm_setting_ip6_config_remove_dns_search (s_ip6, 0));
+ ASSERT_CHANGED (nm_setting_ip_config_add_dns_search (s_ip6, "foobar.com"));
+ ASSERT_CHANGED (nm_setting_ip_config_remove_dns_search (s_ip6, 0));
- g_test_expect_message ("libnm", G_LOG_LEVEL_CRITICAL, "*elt != NULL*");
- ASSERT_UNCHANGED (nm_setting_ip6_config_remove_dns_search (s_ip6, 1));
+ g_test_expect_message ("libnm", G_LOG_LEVEL_CRITICAL, "*i < priv->dns_search->len*");
+ ASSERT_UNCHANGED (nm_setting_ip_config_remove_dns_search (s_ip6, 1));
g_test_assert_expected_messages ();
- nm_setting_ip6_config_add_dns_search (s_ip6, "foobar.com");
- ASSERT_CHANGED (nm_setting_ip6_config_clear_dns_searches (s_ip6));
+ nm_setting_ip_config_add_dns_search (s_ip6, "foobar.com");
+ ASSERT_CHANGED (nm_setting_ip_config_clear_dns_searches (s_ip6));
- addr = nm_ip6_address_new ();
- nm_ip6_address_set_address (addr, &t);
- nm_ip6_address_set_prefix (addr, 64);
+ addr = nm_ip_address_new (AF_INET6, "1:2:3::4:5:6", 64, &error);
+ g_assert_no_error (error);
- ASSERT_CHANGED (nm_setting_ip6_config_add_address (s_ip6, addr));
- ASSERT_CHANGED (nm_setting_ip6_config_remove_address (s_ip6, 0));
+ ASSERT_CHANGED (nm_setting_ip_config_add_address (s_ip6, addr));
+ ASSERT_CHANGED (nm_setting_ip_config_remove_address (s_ip6, 0));
- g_test_expect_message ("libnm", G_LOG_LEVEL_CRITICAL, "*elt != NULL*");
- ASSERT_UNCHANGED (nm_setting_ip6_config_remove_address (s_ip6, 1));
+ g_test_expect_message ("libnm", G_LOG_LEVEL_CRITICAL, "*i < priv->addresses->len*");
+ ASSERT_UNCHANGED (nm_setting_ip_config_remove_address (s_ip6, 1));
g_test_assert_expected_messages ();
- nm_setting_ip6_config_add_address (s_ip6, addr);
- ASSERT_CHANGED (nm_setting_ip6_config_clear_addresses (s_ip6));
+ nm_setting_ip_config_add_address (s_ip6, addr);
+ ASSERT_CHANGED (nm_setting_ip_config_clear_addresses (s_ip6));
- route = nm_ip6_route_new ();
- nm_ip6_route_set_dest (route, &t);
- nm_ip6_route_set_prefix (route, 128);
+ route = nm_ip_route_new (AF_INET6, "1:2:3::4:5:6", 128, NULL, 0, &error);
+ g_assert_no_error (error);
- ASSERT_CHANGED (nm_setting_ip6_config_add_route (s_ip6, route));
- ASSERT_CHANGED (nm_setting_ip6_config_remove_route (s_ip6, 0));
+ ASSERT_CHANGED (nm_setting_ip_config_add_route (s_ip6, route));
+ ASSERT_CHANGED (nm_setting_ip_config_remove_route (s_ip6, 0));
- g_test_expect_message ("libnm", G_LOG_LEVEL_CRITICAL, "*elt != NULL*");
- ASSERT_UNCHANGED (nm_setting_ip6_config_remove_route (s_ip6, 1));
+ g_test_expect_message ("libnm", G_LOG_LEVEL_CRITICAL, "*i < priv->routes->len*");
+ ASSERT_UNCHANGED (nm_setting_ip_config_remove_route (s_ip6, 1));
g_test_assert_expected_messages ();
- nm_setting_ip6_config_add_route (s_ip6, route);
- ASSERT_CHANGED (nm_setting_ip6_config_clear_routes (s_ip6));
+ nm_setting_ip_config_add_route (s_ip6, route);
+ ASSERT_CHANGED (nm_setting_ip_config_clear_routes (s_ip6));
- nm_ip6_address_unref (addr);
- nm_ip6_route_unref (route);
+ nm_ip_address_unref (addr);
+ nm_ip_route_unref (route);
g_object_unref (connection);
}
@@ -2847,12 +2901,12 @@ test_connection_normalize_virtual_iface_name (void)
nm_connection_add_setting (con,
g_object_new (NM_TYPE_SETTING_IP4_CONFIG,
- NM_SETTING_IP4_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_AUTO,
+ NM_SETTING_IP_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_AUTO,
NULL));
nm_connection_add_setting (con,
g_object_new (NM_TYPE_SETTING_IP6_CONFIG,
- NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_AUTO,
+ NM_SETTING_IP_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_AUTO,
NULL));
s_vlan = nm_connection_get_setting_vlan (con);
@@ -3349,6 +3403,188 @@ test_connection_normalize_infiniband_mtu (void)
g_assert_cmpint (65520, ==, nm_setting_infiniband_get_mtu (s_infini));
}
+static void
+test_setting_ip4_gateway (void)
+{
+ NMConnection *conn;
+ NMSettingIPConfig *s_ip4;
+ NMIPAddress *addr;
+ GVariant *conn_dict, *ip4_dict, *value;
+ GVariantIter iter;
+ GVariant *addr_var;
+ GError *error = NULL;
+
+ /* When serializing, ipv4.gateway is copied to the first entry of ipv4.addresses */
+ conn = nmtst_create_minimal_connection ("test_setting_ip4_gateway", NULL,
+ NM_SETTING_WIRED_SETTING_NAME, NULL);
+ s_ip4 = (NMSettingIPConfig *) nm_setting_ip4_config_new ();
+ g_object_set (s_ip4,
+ NM_SETTING_IP_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_MANUAL,
+ NM_SETTING_IP_CONFIG_GATEWAY, "192.168.1.1",
+ NULL);
+ nm_connection_add_setting (conn, NM_SETTING (s_ip4));
+
+ addr = nm_ip_address_new (AF_INET, "192.168.1.10", 24, &error);
+ g_assert_no_error (error);
+ nm_setting_ip_config_add_address (s_ip4, addr);
+ nm_ip_address_unref (addr);
+
+ conn_dict = nm_connection_to_dbus (conn, NM_CONNECTION_SERIALIZE_ALL);
+ g_object_unref (conn);
+
+ ip4_dict = g_variant_lookup_value (conn_dict, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_VARIANT_TYPE_SETTING);
+ g_assert (ip4_dict != NULL);
+
+ value = g_variant_lookup_value (ip4_dict, NM_SETTING_IP_CONFIG_GATEWAY, G_VARIANT_TYPE_STRING);
+ g_assert (value != NULL);
+ g_assert_cmpstr (g_variant_get_string (value, NULL), ==, "192.168.1.1");
+ g_variant_unref (value);
+
+ value = g_variant_lookup_value (ip4_dict, NM_SETTING_IP_CONFIG_ADDRESSES, G_VARIANT_TYPE ("aau"));
+ g_assert (value != NULL);
+
+ g_variant_iter_init (&iter, value);
+ while (g_variant_iter_next (&iter, "@au", &addr_var)) {
+ const guint32 *addr_array;
+ gsize length;
+
+ addr_array = g_variant_get_fixed_array (addr_var, &length, sizeof (guint32));
+ g_assert_cmpint (length, ==, 3);
+ g_assert_cmpstr (nm_utils_inet4_ntop (addr_array[2], NULL), ==, "192.168.1.1");
+ g_variant_unref (addr_var);
+ }
+ g_variant_unref (value);
+
+ g_variant_unref (ip4_dict);
+
+ /* When deserializing an old-style connection, the gateway from the first address
+ * is copied to :gateway.
+ */
+ NMTST_VARIANT_EDITOR (conn_dict,
+ NMTST_VARIANT_DROP_PROPERTY (NM_SETTING_IP4_CONFIG_SETTING_NAME,
+ NM_SETTING_IP_CONFIG_GATEWAY);
+ NMTST_VARIANT_DROP_PROPERTY (NM_SETTING_IP4_CONFIG_SETTING_NAME,
+ "address-data");
+ );
+
+ conn = nm_simple_connection_new_from_dbus (conn_dict, &error);
+ g_variant_unref (conn_dict);
+ g_assert_no_error (error);
+
+ s_ip4 = (NMSettingIPConfig *) nm_connection_get_setting_ip4_config (conn);
+ g_assert_cmpstr (nm_setting_ip_config_get_gateway (s_ip4), ==, "192.168.1.1");
+
+ g_object_unref (conn);
+}
+
+static void
+test_setting_ip6_gateway (void)
+{
+ NMConnection *conn;
+ NMSettingIPConfig *s_ip6;
+ NMIPAddress *addr;
+ GVariant *conn_dict, *ip6_dict, *value;
+ GVariantIter iter;
+ GVariant *gateway_var;
+ GError *error = NULL;
+
+ /* When serializing, ipv6.gateway is copied to the first entry of ipv6.addresses */
+ conn = nmtst_create_minimal_connection ("test_setting_ip6_gateway", NULL,
+ NM_SETTING_WIRED_SETTING_NAME, NULL);
+ s_ip6 = (NMSettingIPConfig *) nm_setting_ip6_config_new ();
+ g_object_set (s_ip6,
+ NM_SETTING_IP_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_MANUAL,
+ NM_SETTING_IP_CONFIG_GATEWAY, "abcd::1",
+ NULL);
+ nm_connection_add_setting (conn, NM_SETTING (s_ip6));
+
+ addr = nm_ip_address_new (AF_INET6, "abcd::10", 64, &error);
+ g_assert_no_error (error);
+ nm_setting_ip_config_add_address (s_ip6, addr);
+ nm_ip_address_unref (addr);
+
+ conn_dict = nm_connection_to_dbus (conn, NM_CONNECTION_SERIALIZE_ALL);
+ g_object_unref (conn);
+
+ ip6_dict = g_variant_lookup_value (conn_dict, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_VARIANT_TYPE_SETTING);
+ g_assert (ip6_dict != NULL);
+
+ value = g_variant_lookup_value (ip6_dict, NM_SETTING_IP_CONFIG_GATEWAY, G_VARIANT_TYPE_STRING);
+ g_assert (value != NULL);
+ g_assert_cmpstr (g_variant_get_string (value, NULL), ==, "abcd::1");
+
+ value = g_variant_lookup_value (ip6_dict, NM_SETTING_IP_CONFIG_ADDRESSES, G_VARIANT_TYPE ("a(ayuay)"));
+ g_assert (value != NULL);
+
+ g_variant_iter_init (&iter, value);
+ while (g_variant_iter_next (&iter, "(@ayu@ay)", NULL, NULL, &gateway_var)) {
+ const guint8 *gateway_bytes;
+ gsize length;
+
+ gateway_bytes = g_variant_get_fixed_array (gateway_var, &length, 1);
+ g_assert_cmpint (length, ==, 16);
+ g_assert_cmpstr (nm_utils_inet6_ntop ((struct in6_addr *) gateway_bytes, NULL), ==, "abcd::1");
+ g_variant_unref (gateway_var);
+ }
+ g_variant_unref (value);
+
+ g_variant_unref (ip6_dict);
+
+ /* When deserializing an old-style connection, the gateway from the first address
+ * is copied to :gateway.
+ */
+ NMTST_VARIANT_EDITOR (conn_dict,
+ NMTST_VARIANT_DROP_PROPERTY (NM_SETTING_IP6_CONFIG_SETTING_NAME,
+ NM_SETTING_IP_CONFIG_GATEWAY);
+ NMTST_VARIANT_DROP_PROPERTY (NM_SETTING_IP6_CONFIG_SETTING_NAME,
+ "address-data");
+ );
+
+ conn = nm_simple_connection_new_from_dbus (conn_dict, &error);
+ g_variant_unref (conn_dict);
+ g_assert_no_error (error);
+
+ s_ip6 = (NMSettingIPConfig *) nm_connection_get_setting_ip6_config (conn);
+ g_assert_cmpstr (nm_setting_ip_config_get_gateway (s_ip6), ==, "abcd::1");
+
+ g_object_unref (conn);
+}
+
+typedef struct {
+ const char *str;
+ const guint8 expected[20];
+ const guint expected_len;
+} HexItem;
+
+static void
+test_hexstr2bin (void)
+{
+ static const HexItem items[] = {
+ { "aaBBCCddDD10496a", { 0xaa, 0xbb, 0xcc, 0xdd, 0xdd, 0x10, 0x49, 0x6a }, 8 },
+ { "aa:bb:cc:dd:10:49:6a", { 0xaa, 0xbb, 0xcc, 0xdd, 0x10, 0x49, 0x6a }, 7 },
+ { "0xccddeeff", { 0xcc, 0xdd, 0xee, 0xff }, 4 },
+ { "1:2:66:77:80", { 0x01, 0x02, 0x66, 0x77, 0x80 }, 5 },
+ { "e", { 0x0e }, 1 },
+ { "aabb1199:" },
+ { ":aabb1199" },
+ { "aabb$$dd" },
+ { "aab:ccc:ddd" },
+ { "aab::ccc:ddd" },
+ };
+ GBytes *b;
+ guint i;
+
+ for (i = 0; i < G_N_ELEMENTS (items); i++) {
+ b = nm_utils_hexstr2bin (items[i].str);
+ if (items[i].expected_len) {
+ g_assert (b);
+ g_assert_cmpint (g_bytes_get_size (b), ==, items[i].expected_len);
+ g_assert (memcmp (g_bytes_get_data (b, NULL), items[i].expected, g_bytes_get_size (b)) == 0);
+ } else
+ g_assert (b == NULL);
+ }
+}
+
NMTST_DEFINE ();
int main (int argc, char **argv)
@@ -3437,6 +3673,10 @@ int main (int argc, char **argv)
g_test_add_func ("/core/general/test_setting_wireless_changed_signal", test_setting_wireless_changed_signal);
g_test_add_func ("/core/general/test_setting_wireless_security_changed_signal", test_setting_wireless_security_changed_signal);
g_test_add_func ("/core/general/test_setting_802_1x_changed_signal", test_setting_802_1x_changed_signal);
+ g_test_add_func ("/core/general/test_setting_ip4_gateway", test_setting_ip4_gateway);
+ g_test_add_func ("/core/general/test_setting_ip6_gateway", test_setting_ip6_gateway);
+
+ g_test_add_func ("/core/general/hexstr2bin", test_hexstr2bin);
return g_test_run ();
}