tests: Add test for release_is_new()
Also refactor the function so we pass it the current version and don't rely on the define inside of it. This function only allows version format in the style of "x.y.z".
This commit is contained in:
@@ -936,6 +936,42 @@ get_mentions_tests(void** state)
|
||||
g_slist_free(expected); expected = NULL;
|
||||
}
|
||||
|
||||
void
|
||||
release_is_new_tests(void** state)
|
||||
{
|
||||
// Higher major version
|
||||
assert_true(release_is_new("0.16.0", "1.0.0"));
|
||||
// Higher minor version
|
||||
assert_true(release_is_new("0.16.0", "0.17.0"));
|
||||
// Higher patch version
|
||||
assert_true(release_is_new("0.16.0", "0.16.1"));
|
||||
|
||||
// Same version
|
||||
assert_false(release_is_new("0.16.0", "0.16.0"));
|
||||
|
||||
// Lower major version
|
||||
assert_false(release_is_new("0.16.0", "0.15.9"));
|
||||
// Lower minor version
|
||||
assert_false(release_is_new("0.16.0", "0.15.0"));
|
||||
// Lower patch version
|
||||
assert_false(release_is_new("0.16.1", "0.16.0"));
|
||||
|
||||
// Higher version but with different current versions
|
||||
assert_true(release_is_new("1.2.3", "1.2.4"));
|
||||
assert_true(release_is_new("1.2.3", "1.3.0"));
|
||||
assert_true(release_is_new("1.2.3", "2.0.0"));
|
||||
|
||||
// Malformed version strings
|
||||
assert_false(release_is_new("0.16.0", "0.16")); // Missing patch in found
|
||||
assert_false(release_is_new("0.16", "0.16.0")); // Missing patch in curr
|
||||
assert_false(release_is_new("0.16.0", "0.16.0.1")); // Extra part
|
||||
|
||||
assert_false(release_is_new("0.16.0", "abc.def.ghi"));
|
||||
assert_false(release_is_new("0.16.0", ""));
|
||||
assert_false(release_is_new(NULL, "1.0.0"));
|
||||
assert_false(release_is_new("1.0.0", NULL));
|
||||
}
|
||||
|
||||
void
|
||||
prof_whole_occurrences_tests(void** state)
|
||||
{
|
||||
|
||||
@@ -44,3 +44,4 @@ void test_strtoi_range_null_err_msg(void** state);
|
||||
void test_string_matches_one_of_edge_cases(void** state);
|
||||
void test_valid_tls_policy_option(void** state);
|
||||
void get_mentions_tests(void** state);
|
||||
void release_is_new_tests(void** state);
|
||||
|
||||
@@ -635,6 +635,7 @@ main(int argc, char* argv[])
|
||||
cmocka_unit_test(prof_whole_occurrences_tests),
|
||||
cmocka_unit_test(prof_occurrences_of_large_message_tests),
|
||||
cmocka_unit_test(get_mentions_tests),
|
||||
cmocka_unit_test(release_is_new_tests),
|
||||
|
||||
cmocka_unit_test_setup_teardown(returns_no_commands,
|
||||
load_preferences,
|
||||
|
||||
Reference in New Issue
Block a user