X-Git-Url: https://www.tinc-vpn.org/git/browse?a=blobdiff_plain;f=test%2Funit%2Ftest_utils.c;h=6fa543af44b2ca02cf1097a9c626e5c8ed1d0ef7;hb=9235256116574927657a93944ef1b21e255e771b;hp=a66541e78a3928c138500b3204656383141af973;hpb=3d787920d51a35e74e442c7265be3b13b69ad8e4;p=tinc diff --git a/test/unit/test_utils.c b/test/unit/test_utils.c index a66541e7..6fa543af 100644 --- a/test/unit/test_utils.c +++ b/test/unit/test_utils.c @@ -1,49 +1,6 @@ #include "unittest.h" #include "../../src/utils.h" -#define FAKE_PATH "nonexistentreallyfakepath" - -typedef struct { - const char *arg; - const char *want; -} testcase_t; - -static void test_unix_absolute_path_on_absolute_returns_it(void **state) { - (void)state; - - const char *paths[] = {"/", "/foo", "/foo/./../bar"}; - - for(size_t i = 0; i < sizeof(paths) / sizeof(*paths); ++i) { - char *got = absolute_path(paths[i]); - assert_ptr_not_equal(paths[i], got); - assert_string_equal(paths[i], got); - free(got); - } -} - -static void test_unix_absolute_path_on_empty_returns_null(void **state) { - (void)state; - assert_null(absolute_path(NULL)); - assert_null(absolute_path("\0")); -} - -static void test_unix_absolute_path_relative(void **state) { - (void)state; - - testcase_t cases[] = { - {".", "/"}, - {"foo", "/foo"}, - {"./"FAKE_PATH, "/./"FAKE_PATH}, - {"../foo/./../"FAKE_PATH, "/../foo/./../"FAKE_PATH}, - }; - - for(size_t i = 0; i < sizeof(cases) / sizeof(*cases); ++i) { - char *got = absolute_path(cases[i].arg); - assert_string_equal(cases[i].want, got); - free(got); - } -} - static void test_int_to_str(const char *ref, int num) { char *result = int_to_str(num); assert_string_equal(ref, result); @@ -99,17 +56,21 @@ static void test_is_decimal_pass_whitespace_prefix(void **state) { assert_true(is_decimal(" \r\n\t 777")); } -static int setup_path_unix(void **state) { +static void test_string_eq(void **state) { (void)state; - assert_int_equal(0, chdir("/")); - return 0; + + assert_true(string_eq(NULL, NULL)); + assert_true(string_eq("", "")); + assert_true(string_eq("\tfoo 123", "\tfoo 123")); + + assert_false(string_eq(NULL, "")); + assert_false(string_eq("", NULL)); + assert_false(string_eq("foo", "FOO")); + assert_false(string_eq("foo", " foo")); } int main(void) { const struct CMUnitTest tests[] = { - cmocka_unit_test_setup(test_unix_absolute_path_on_absolute_returns_it, setup_path_unix), - cmocka_unit_test_setup(test_unix_absolute_path_on_empty_returns_null, setup_path_unix), - cmocka_unit_test_setup(test_unix_absolute_path_relative, setup_path_unix), cmocka_unit_test(test_int_to_str_return_expected), cmocka_unit_test(test_is_decimal_fail_empty), cmocka_unit_test(test_is_decimal_fail_hex), @@ -117,6 +78,7 @@ int main(void) { cmocka_unit_test(test_is_decimal_pass_simple), cmocka_unit_test(test_is_decimal_pass_signs), cmocka_unit_test(test_is_decimal_pass_whitespace_prefix), + cmocka_unit_test(test_string_eq), }; #ifdef HAVE_WINDOWS