summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2023-11-23 16:44:38 +0100
committerThomas Haller <thaller@redhat.com>2023-11-23 17:17:51 +0100
commit405a2fa166f77d273b87dae8c855a1360764cfb2 (patch)
tree64571e41147ec57bdc6a5b787ae845bb1cb97eb4
parent9f1d4b650c46e99eb8ad4d36788595d26d3840e0 (diff)
libnm/tests: add more tests about dns-options in NMSettingIPConfig
-rw-r--r--src/libnm-core-impl/tests/test-general.c60
1 files changed, 60 insertions, 0 deletions
diff --git a/src/libnm-core-impl/tests/test-general.c b/src/libnm-core-impl/tests/test-general.c
index c8952bf3ed..d4ee8616eb 100644
--- a/src/libnm-core-impl/tests/test-general.c
+++ b/src/libnm-core-impl/tests/test-general.c
@@ -5311,6 +5311,7 @@ test_setting_ip4_changed_signal(void)
NMIPAddress *addr;
NMIPRoute *route;
GError *error = NULL;
+ gs_strfreev char **strv = NULL;
connection = nm_simple_connection_new();
g_signal_connect(connection,
@@ -5368,9 +5369,55 @@ test_setting_ip4_changed_signal(void)
nm_setting_ip_config_add_route(s_ip4, route);
ASSERT_CHANGED(nm_setting_ip_config_clear_routes(s_ip4));
+ g_assert(!nm_setting_ip_config_has_dns_options(s_ip4));
+ g_assert_cmpint(nm_setting_ip_config_get_num_dns_options(s_ip4), ==, 0);
+
+ g_object_get(s_ip4, NM_SETTING_IP_CONFIG_DNS_OPTIONS, &strv, NULL);
+ g_assert_null(strv);
+
+ NMTST_EXPECT_LIBNM_CRITICAL(NMTST_G_RETURN_MSG(priv->dns_options));
+ g_assert_null(nm_setting_ip_config_get_dns_option(s_ip4, 0));
+ g_test_assert_expected_messages();
+ NMTST_EXPECT_LIBNM_CRITICAL(NMTST_G_RETURN_MSG(priv->dns_options));
+ g_assert_null(nm_setting_ip_config_get_dns_option(s_ip4, 1));
+ g_test_assert_expected_messages();
+
ASSERT_CHANGED(nm_setting_ip_config_add_dns_option(s_ip4, "debug"));
+
+ g_assert(nm_setting_ip_config_has_dns_options(s_ip4));
+ g_assert_cmpint(nm_setting_ip_config_get_num_dns_options(s_ip4), ==, 1);
+
+ g_object_get(s_ip4, NM_SETTING_IP_CONFIG_DNS_OPTIONS, &strv, NULL);
+ g_assert_nonnull(strv);
+ g_assert_cmpstr(strv[0], ==, "debug");
+ g_assert_cmpstr(strv[1], ==, NULL);
+ nm_clear_pointer(&strv, g_strfreev);
+
+ g_assert_cmpstr(nm_setting_ip_config_get_dns_option(s_ip4, 0), ==, "debug");
+ NMTST_EXPECT_LIBNM_CRITICAL(NMTST_G_RETURN_MSG(idx < priv->dns_options->len));
+ g_assert_null(nm_setting_ip_config_get_dns_option(s_ip4, 1));
+ g_test_assert_expected_messages();
+ NMTST_EXPECT_LIBNM_CRITICAL(NMTST_G_RETURN_MSG(idx < priv->dns_options->len));
+ g_assert_null(nm_setting_ip_config_get_dns_option(s_ip4, 2));
+ g_test_assert_expected_messages();
+
ASSERT_CHANGED(nm_setting_ip_config_remove_dns_option(s_ip4, 0));
+ g_assert(nm_setting_ip_config_has_dns_options(s_ip4));
+ g_assert_cmpint(nm_setting_ip_config_get_num_dns_options(s_ip4), ==, 0);
+
+ g_object_get(s_ip4, NM_SETTING_IP_CONFIG_DNS_OPTIONS, &strv, NULL);
+ g_assert_nonnull(strv);
+ g_assert_cmpstr(strv[0], ==, NULL);
+ nm_clear_pointer(&strv, g_strfreev);
+
+ NMTST_EXPECT_LIBNM_CRITICAL(NMTST_G_RETURN_MSG(idx < priv->dns_options->len));
+ g_assert_null(nm_setting_ip_config_get_dns_option(s_ip4, 0));
+ g_test_assert_expected_messages();
+ NMTST_EXPECT_LIBNM_CRITICAL(NMTST_G_RETURN_MSG(idx < priv->dns_options->len));
+ g_assert_null(nm_setting_ip_config_get_dns_option(s_ip4, 1));
+ g_test_assert_expected_messages();
+
NMTST_EXPECT_LIBNM_CRITICAL(NMTST_G_RETURN_MSG(idx >= 0 && idx < priv->dns_options->len));
ASSERT_UNCHANGED(nm_setting_ip_config_remove_dns_option(s_ip4, 1));
g_test_assert_expected_messages();
@@ -5383,6 +5430,7 @@ test_setting_ip4_changed_signal(void)
static void
test_setting_ip6_changed_signal(void)
{
+ gs_strfreev char **strv = NULL;
NMConnection *connection;
gboolean changed = FALSE;
NMSettingIPConfig *s_ip6;
@@ -5410,8 +5458,17 @@ test_setting_ip6_changed_signal(void)
nm_setting_ip_config_add_dns(s_ip6, "1:2:3::4:5:6");
ASSERT_CHANGED(nm_setting_ip_config_clear_dns(s_ip6));
+ g_object_get(s_ip6, NM_SETTING_IP_CONFIG_DNS_SEARCH, &strv, NULL);
+ g_assert_null(strv);
+
ASSERT_CHANGED(nm_setting_ip_config_add_dns_search(s_ip6, "foobar.com"));
+ g_object_get(s_ip6, NM_SETTING_IP_CONFIG_DNS_SEARCH, &strv, NULL);
+ g_assert_nonnull(strv);
+ g_assert_cmpstr(strv[0], ==, "foobar.com");
+ g_assert_cmpstr(strv[1], ==, NULL);
+ nm_clear_pointer(&strv, g_strfreev);
+
g_assert_cmpstr(nm_setting_ip_config_get_dns_search(s_ip6, 0), ==, "foobar.com");
g_assert_cmpstr(nm_setting_ip_config_get_dns_search(s_ip6, 1), ==, NULL);
@@ -5425,6 +5482,9 @@ test_setting_ip6_changed_signal(void)
ASSERT_CHANGED(nm_setting_ip_config_remove_dns_search(s_ip6, 0));
+ g_object_get(s_ip6, NM_SETTING_IP_CONFIG_DNS_SEARCH, &strv, NULL);
+ g_assert_null(strv);
+
NMTST_EXPECT_LIBNM_CRITICAL(
NMTST_G_RETURN_MSG(idx >= 0 && idx < nm_g_array_len(priv->dns_search.arr)));
ASSERT_UNCHANGED(nm_setting_ip_config_remove_dns_search(s_ip6, 1));