diff options
author | Beniamino Galvani <bgalvani@redhat.com> | 2015-04-01 11:47:42 +0200 |
---|---|---|
committer | Beniamino Galvani <bgalvani@redhat.com> | 2015-05-13 17:15:34 +0200 |
commit | 262c27935d0a1d8f24caa586cadd44293a9dc011 (patch) | |
tree | ec4cdbfe6fc196de35fd1e395c101033ce0c0c1f | |
parent | 019943bb5d9efea52392610b207dececafa6fdb3 (diff) | |
download | NetworkManager-262c27935d0a1d8f24caa586cadd44293a9dc011.tar.gz |
libnm-core/test: add tests for DNS option utilities
-rw-r--r-- | libnm-core/tests/test-general.c | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/libnm-core/tests/test-general.c b/libnm-core/tests/test-general.c index f56a95c697..b373f65322 100644 --- a/libnm-core/tests/test-general.c +++ b/libnm-core/tests/test-general.c @@ -29,6 +29,7 @@ #include "nm-setting-private.h" #include "nm-utils.h" +#include "nm-utils-private.h" #include "nm-core-internal.h" #include "nm-setting-8021x.h" @@ -4226,6 +4227,90 @@ test_nm_utils_ascii_str_to_int64 (void) /******************************************************************************/ +static void +test_nm_utils_dns_option_validate_do (char *option, gboolean ipv6, const DNSOptionDesc *descs, + gboolean exp_result, char *exp_name, gboolean exp_value) +{ + char *name; + long value = 0; + gboolean result; + + result = _nm_utils_dns_option_validate (option, &name, &value, ipv6, descs); + + g_assert (result == exp_result); + g_assert_cmpstr (name, ==, exp_name); + g_assert (value == exp_value); + + g_free (name); +} + +static const DNSOptionDesc opt_descs[] = { + /* name num ipv6 */ + { "opt1", FALSE, FALSE }, + { "opt2", TRUE, FALSE }, + { "opt3", FALSE, TRUE }, + { "opt4", TRUE, TRUE }, + { NULL, FALSE, FALSE } +}; + +static void +test_nm_utils_dns_option_validate (void) +{ + /* opt ipv6 descs result name value */ + test_nm_utils_dns_option_validate_do ("", FALSE, NULL, FALSE, NULL, -1); + test_nm_utils_dns_option_validate_do (":", FALSE, NULL, FALSE, NULL, -1); + test_nm_utils_dns_option_validate_do (":1", FALSE, NULL, FALSE, NULL, -1); + test_nm_utils_dns_option_validate_do (":val", FALSE, NULL, FALSE, NULL, -1); + test_nm_utils_dns_option_validate_do ("opt", FALSE, NULL, TRUE, "opt", -1); + test_nm_utils_dns_option_validate_do ("opt:", FALSE, NULL, FALSE, NULL, -1); + test_nm_utils_dns_option_validate_do ("opt:12", FALSE, NULL, TRUE, "opt", 12); + test_nm_utils_dns_option_validate_do ("opt:12 ", FALSE, NULL, FALSE, NULL, -1); + test_nm_utils_dns_option_validate_do ("opt:val", FALSE, NULL, FALSE, NULL, -1); + test_nm_utils_dns_option_validate_do ("opt:2val", FALSE, NULL, FALSE, NULL, -1); + test_nm_utils_dns_option_validate_do ("opt:2:3", FALSE, NULL, FALSE, NULL, -1); + test_nm_utils_dns_option_validate_do ("opt-6", FALSE, NULL, TRUE, "opt-6", -1); + + test_nm_utils_dns_option_validate_do ("opt1", FALSE, opt_descs, TRUE, "opt1", -1); + test_nm_utils_dns_option_validate_do ("opt1", TRUE, opt_descs, TRUE, "opt1", -1); + test_nm_utils_dns_option_validate_do ("opt1:3", FALSE, opt_descs, FALSE, NULL, -1); + + test_nm_utils_dns_option_validate_do ("opt2", FALSE, opt_descs, FALSE, NULL, -1); + test_nm_utils_dns_option_validate_do ("opt2:5", FALSE, opt_descs, TRUE, "opt2", 5); + + test_nm_utils_dns_option_validate_do ("opt3", FALSE, opt_descs, FALSE, NULL, -1); + test_nm_utils_dns_option_validate_do ("opt3", TRUE, opt_descs, TRUE, "opt3", -1); + + test_nm_utils_dns_option_validate_do ("opt4", FALSE, opt_descs, FALSE, NULL, -1); + test_nm_utils_dns_option_validate_do ("opt4", TRUE, opt_descs, FALSE, NULL, -1); + test_nm_utils_dns_option_validate_do ("opt4:40", FALSE, opt_descs, FALSE, NULL, -1); + test_nm_utils_dns_option_validate_do ("opt4:40", TRUE, opt_descs, TRUE, "opt4", 40); +} + +static void +test_nm_utils_dns_option_find_idx (void) +{ + GPtrArray *options; + + options = g_ptr_array_new (); + + g_ptr_array_add (options, "debug"); + g_ptr_array_add (options, "timeout:5"); + g_ptr_array_add (options, "edns0"); + + g_assert_cmpint (_nm_utils_dns_option_find_idx (options, "debug"), ==, 0); + g_assert_cmpint (_nm_utils_dns_option_find_idx (options, "debug:1"), ==, 0); + g_assert_cmpint (_nm_utils_dns_option_find_idx (options, "timeout"), ==, 1); + g_assert_cmpint (_nm_utils_dns_option_find_idx (options, "timeout:5"), ==, 1); + g_assert_cmpint (_nm_utils_dns_option_find_idx (options, "timeout:2"), ==, 1); + g_assert_cmpint (_nm_utils_dns_option_find_idx (options, "edns0"), ==, 2); + g_assert_cmpint (_nm_utils_dns_option_find_idx (options, "rotate"), ==, -1); + g_assert_cmpint (_nm_utils_dns_option_find_idx (options, ""), ==, -1); + + g_ptr_array_free (options, TRUE); +} + +/******************************************************************************/ + NMTST_DEFINE (); int main (int argc, char **argv) @@ -4327,6 +4412,9 @@ int main (int argc, char **argv) g_test_add_func ("/core/general/_nm_utils_ascii_str_to_int64", test_nm_utils_ascii_str_to_int64); + g_test_add_func ("/core/general/_nm_utils_dns_option_validate", test_nm_utils_dns_option_validate); + g_test_add_func ("/core/general/_nm_utils_dns_option_find_idx", test_nm_utils_dns_option_find_idx); + return g_test_run (); } |