diff options
author | Thomas Haller <thaller@redhat.com> | 2014-11-28 14:26:24 +0100 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2014-12-04 17:02:22 +0100 |
commit | e67425347a09b07f23d95f5dd8f565e5cf8d9774 (patch) | |
tree | ba38d03614664ae43e6568128f3cc1238dbe7efe | |
parent | ea14a0136f1c21e14863b31c9581bc90ed904eb0 (diff) | |
download | NetworkManager-e67425347a09b07f23d95f5dd8f565e5cf8d9774.tar.gz |
libnm/test: add test for nm_utils_uuid_generate_from_string()
-rw-r--r-- | libnm-core/nm-utils.c | 2 | ||||
-rw-r--r-- | libnm-core/tests/test-general.c | 43 | ||||
-rw-r--r-- | libnm-util/nm-utils.c | 2 | ||||
-rw-r--r-- | libnm-util/tests/test-general.c | 44 |
4 files changed, 91 insertions, 0 deletions
diff --git a/libnm-core/nm-utils.c b/libnm-core/nm-utils.c index 7f6cf49a1f..d27a0251b4 100644 --- a/libnm-core/nm-utils.c +++ b/libnm-core/nm-utils.c @@ -1964,6 +1964,8 @@ nm_utils_uuid_generate_from_string (const char *s) uuid_t *uuid; char *buf = NULL; + g_return_val_if_fail (s && *s, NULL); + uuid = g_malloc0 (sizeof (*uuid)); crypto_md5_hash (NULL, 0, s, strlen (s), (char *) uuid, sizeof (*uuid)); diff --git a/libnm-core/tests/test-general.c b/libnm-core/tests/test-general.c index 76d6d0ff80..827585bf37 100644 --- a/libnm-core/tests/test-general.c +++ b/libnm-core/tests/test-general.c @@ -3802,6 +3802,48 @@ test_hexstr2bin (void) } } +/******************************************************************************/ + +static void +_test_uuid (const char *expected_uuid, const char *str) +{ + gs_free char *uuid_test = NULL; + + g_assert (str); + + uuid_test = nm_utils_uuid_generate_from_string (str); + + g_assert (uuid_test); + g_assert (nm_utils_is_uuid (uuid_test)); + + if (strcmp (uuid_test, expected_uuid)) { + g_error ("UUID test failed: text=%s, uuid=%s, expected=%s", + str, uuid_test, expected_uuid); + } +} + +static void +test_nm_utils_uuid_generate_from_string (void) +{ + gs_free char *uuid_test = NULL; + + _test_uuid ("0cc175b9-c0f1-b6a8-31c3-99e269772661", "a"); + _test_uuid ("098f6bcd-4621-d373-cade-4e832627b4f6", "test"); + _test_uuid ("59c0547b-7fe2-1c15-2cce-e328e8bf6742", "/etc/NetworkManager/system-connections/em1"); + + g_test_expect_message ("libnm", G_LOG_LEVEL_CRITICAL, "*char *nm_utils_uuid_generate_from_string(const char *): *s && *s*"); + uuid_test = nm_utils_uuid_generate_from_string (""); + g_assert (uuid_test == NULL); + g_test_assert_expected_messages (); + + g_test_expect_message ("libnm", G_LOG_LEVEL_CRITICAL, "*char *nm_utils_uuid_generate_from_string(const char *): *s && *s*"); + uuid_test = nm_utils_uuid_generate_from_string (NULL); + g_assert (uuid_test == NULL); + g_test_assert_expected_messages (); +} + +/******************************************************************************/ + NMTST_DEFINE (); int main (int argc, char **argv) @@ -3896,6 +3938,7 @@ int main (int argc, char **argv) g_test_add_func ("/core/general/test_setting_ip6_gateway", test_setting_ip6_gateway); g_test_add_func ("/core/general/hexstr2bin", test_hexstr2bin); + g_test_add_func ("/core/general/test_nm_utils_uuid_generate_from_string", test_nm_utils_uuid_generate_from_string); return g_test_run (); } diff --git a/libnm-util/nm-utils.c b/libnm-util/nm-utils.c index 9735394275..2cbac34d3a 100644 --- a/libnm-util/nm-utils.c +++ b/libnm-util/nm-utils.c @@ -1490,6 +1490,8 @@ nm_utils_uuid_generate_from_string (const char *s) uuid_t *uuid; char *buf = NULL; + g_return_val_if_fail (s && *s, NULL); + if (!nm_utils_init (&error)) { g_warning ("error initializing crypto: (%d) %s", error ? error->code : 0, diff --git a/libnm-util/tests/test-general.c b/libnm-util/tests/test-general.c index c0cdb70a12..1d1f84eb43 100644 --- a/libnm-util/tests/test-general.c +++ b/libnm-util/tests/test-general.c @@ -2490,6 +2490,48 @@ test_libnm_linking (void) g_free (err); } +/******************************************************************************/ + +static void +_test_uuid (const char *expected_uuid, const char *str) +{ + gs_free char *uuid_test = NULL; + + g_assert (str); + + uuid_test = nm_utils_uuid_generate_from_string (str); + + g_assert (uuid_test); + g_assert (nm_utils_is_uuid (uuid_test)); + + if (strcmp (uuid_test, expected_uuid)) { + g_error ("UUID test failed: text=%s, uuid=%s, expected=%s", + str, uuid_test, expected_uuid); + } +} + +static void +test_nm_utils_uuid_generate_from_string (void) +{ + gs_free char *uuid_test = NULL; + + _test_uuid ("0cc175b9-c0f1-b6a8-31c3-99e269772661", "a"); + _test_uuid ("098f6bcd-4621-d373-cade-4e832627b4f6", "test"); + _test_uuid ("59c0547b-7fe2-1c15-2cce-e328e8bf6742", "/etc/NetworkManager/system-connections/em1"); + + g_test_expect_message ("libnm-util", G_LOG_LEVEL_CRITICAL, "*char *nm_utils_uuid_generate_from_string(const char *): *s && *s*"); + uuid_test = nm_utils_uuid_generate_from_string (""); + g_assert (uuid_test == NULL); + g_test_assert_expected_messages (); + + g_test_expect_message ("libnm-util", G_LOG_LEVEL_CRITICAL, "*char *nm_utils_uuid_generate_from_string(const char *): *s && *s*"); + uuid_test = nm_utils_uuid_generate_from_string (NULL); + g_assert (uuid_test == NULL); + g_test_assert_expected_messages (); +} + +/******************************************************************************/ + NMTST_DEFINE (); int main (int argc, char **argv) @@ -2567,6 +2609,8 @@ int main (int argc, char **argv) test_libnm_linking (); + test_nm_utils_uuid_generate_from_string (); + base = g_path_get_basename (argv[0]); fprintf (stdout, "%s: SUCCESS\n", base); g_free (base); |