diff options
Diffstat (limited to 'libappstream-glib/as-self-test.c')
-rw-r--r-- | libappstream-glib/as-self-test.c | 63 |
1 files changed, 45 insertions, 18 deletions
diff --git a/libappstream-glib/as-self-test.c b/libappstream-glib/as-self-test.c index 467c828..920cc12 100644 --- a/libappstream-glib/as-self-test.c +++ b/libappstream-glib/as-self-test.c @@ -378,7 +378,7 @@ as_test_release_func (void) /* verify converting hex prefix */ as_release_set_version (release, "0x600100"); - g_assert_cmpstr (as_release_get_version (release), ==, "6291712"); + g_assert_cmpstr (as_release_get_version (release), ==, "96.1.0"); } static void @@ -3519,23 +3519,49 @@ as_test_utils_func (void) g_assert_cmpstr (tokens[1], ==, "stupid"); g_assert_cmpstr (tokens[2], ==, NULL); g_strfreev (tokens); +} + +static void +as_test_utils_version_func (void) +{ + guint i; + struct { + guint32 val; + const gchar *ver; + } version_from_uint32[] = { + { 0x0, "0" }, + { 0xff, "255" }, + { 0xff01, "255.1" }, + { 0xff0001, "255.0.1" }, + { 0xff000100, "255.0.1.0" }, + { NULL, NULL } + }; + struct { + const gchar *old; + const gchar *new; + } version_parse[] = { + { "0", "0" }, + { "257", "1.1" }, + { "1.2.3", "1.2.3" }, + { "0xff0001", "255.0.1" }, + { "16711681", "255.0.1" }, + { "dave", "dave" }, + { NULL, NULL } + }; /* check version conversion */ - tmp = as_utils_int_to_dotted_decimal (0x0); - g_assert_cmpstr (tmp, ==, "0"); - g_free (tmp); - tmp = as_utils_int_to_dotted_decimal (0xff); - g_assert_cmpstr (tmp, ==, "255"); - g_free (tmp); - tmp = as_utils_int_to_dotted_decimal (0xff01); - g_assert_cmpstr (tmp, ==, "255.1"); - g_free (tmp); - tmp = as_utils_int_to_dotted_decimal (0xff0001); - g_assert_cmpstr (tmp, ==, "255.0.1"); - g_free (tmp); - tmp = as_utils_int_to_dotted_decimal (0xff000100); - g_assert_cmpstr (tmp, ==, "255.0.1.0"); - g_free (tmp); + for (i = 0; version_from_uint32[i].ver != NULL; i++) { + g_autofree gchar *ver = NULL; + ver = as_utils_version_from_uint32 (version_from_uint32[i].val); + g_assert_cmpstr (ver, ==, version_from_uint32[i].ver); + } + + /* check version parsing */ + for (i = 0; version_parse[i].old != NULL; i++) { + g_autofree gchar *ver = NULL; + ver = as_utils_version_parse (version_parse[i].old); + g_assert_cmpstr (ver, ==, version_parse[i].new); + } } static void @@ -3837,8 +3863,8 @@ as_test_utils_vercmp_func (void) g_assert_cmpint (as_utils_vercmp ("1.2.3", "1.2.3"), ==, 0); /* same, not dotted decimal */ - g_assert_cmpint (as_utils_vercmp ("1.2.3", "10203"), ==, 0); - g_assert_cmpint (as_utils_vercmp ("10203", "10203"), ==, 0); + g_assert_cmpint (as_utils_vercmp ("1.2.3", "0x10203"), ==, 0); + g_assert_cmpint (as_utils_vercmp ("0x10203", "0x10203"), ==, 0); /* upgrade and downgrade */ g_assert_cmpint (as_utils_vercmp ("1.2.3", "1.2.4"), <, 0); @@ -4274,6 +4300,7 @@ main (int argc, char **argv) g_test_add_func ("/AppStream/node{intltool}", as_test_node_intltool_func); g_test_add_func ("/AppStream/node{sort}", as_test_node_sort_func); g_test_add_func ("/AppStream/utils", as_test_utils_func); + g_test_add_func ("/AppStream/utils{version}", as_test_utils_version_func); g_test_add_func ("/AppStream/utils{guid}", as_test_utils_guid_func); g_test_add_func ("/AppStream/utils{icons}", as_test_utils_icons_func); g_test_add_func ("/AppStream/utils{spdx-token}", as_test_utils_spdx_token_func); |