diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 7551094..2d1d056 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -2,9 +2,13 @@ file(GLOB TEST_SOURCE_FILES test_*.c) if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") include_directories("/opt/homebrew/include") + link_directories("/opt/homebrew/lib") + list(REMOVE_ITEM TEST_SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/test_ringbuf.c) +else() + target_link_libraries(rt) endif() add_executable(test_runner ${TEST_SOURCE_FILES}) -target_link_libraries(test_runner check ucore rt) +target_link_libraries(test_runner check ucore) add_custom_target(runtest COMMAND test_runner DEPENDS test_runner diff --git a/test/a.out b/test/a.out new file mode 100755 index 0000000..32656cf Binary files /dev/null and b/test/a.out differ diff --git a/test/test_runner.c b/test/test_runner.c index fab2441..86aeba1 100644 --- a/test/test_runner.c +++ b/test/test_runner.c @@ -66,7 +66,9 @@ static suite_func suites[] = { iomux_suite, iomux_signal_suite, string_suite, +#ifndef __APPLE__ ringbuf_suite +#endif }; diff --git a/test/test_string.c b/test/test_string.c index 4307be1..6402681 100644 --- a/test/test_string.c +++ b/test/test_string.c @@ -7,91 +7,92 @@ START_TEST (test_getfields) - +{ char str[] = "a;b;c"; - char *letters[5] = {NULL}; + char *letters[5] = {NULL}; int rc = uc_getfields(str, letters, 5, 0, ";"); ck_assert_int_eq(rc, 3); - + ck_assert_str_eq("a", letters[0]); ck_assert_str_eq("b", letters[1]); ck_assert_str_eq("c", letters[2]); - +} END_TEST START_TEST (test_getfields_consecutive) - +{ char str[] = "a;;b;c;;;"; - char *letters[7] = {NULL}; + char *letters[7] = {NULL}; int rc = uc_getfields(str, letters, 5, 0, ";"); ck_assert_int_eq(rc, 5); - // This result is rather silly, but it's + // This result is rather silly, but it's // how getfields works with mflag=0 ck_assert_str_eq("a", letters[0]); ck_assert_str_eq("", letters[1]); ck_assert_str_eq("b", letters[2]); ck_assert_str_eq("c", letters[3]); ck_assert_str_eq(";;", letters[4]); - +} END_TEST START_TEST (test_getfields_mflag) +{ char str[] = "a;b;c"; - char *letters[5] = {NULL}; + char *letters[5] = {NULL}; int rc = uc_getfields(str, letters, 5, 1, ";"); ck_assert_int_eq(rc, 3); - + ck_assert_str_eq("a", letters[0]); ck_assert_str_eq("b", letters[1]); ck_assert_str_eq("c", letters[2]); - +} END_TEST START_TEST (test_getfields_consecutive_mflag) - +{ char str[] = "a;;b;c;;;"; - char *letters[7] = {NULL}; + char *letters[7] = {NULL}; int rc = uc_getfields(str, letters, 7, 1, ";"); ck_assert_int_eq(rc, 3); - // This result is rather silly, but it's + // This result is rather silly, but it's // how getfields works with mflag=0 ck_assert_str_eq("a", letters[0]); ck_assert_str_eq("b", letters[1]); ck_assert_str_eq("c", letters[2]); - +} END_TEST START_TEST (test_getfields_too_many) - +{ char str[] = "a\r\nb\r\nc\r\nd\r\ne"; - char *letters[4] = {NULL}; + char *letters[4] = {NULL}; int rc = uc_getfields(str, letters, 4, 0, "\r\n"); ck_assert_int_eq(rc, 4); - // This result is rather silly, but it's + // This result is rather silly, but it's // how getfields works with mflag=0 ck_assert_str_eq("a", letters[0]); ck_assert_str_eq("", letters[1]); ck_assert_str_eq("b", letters[2]); ck_assert_str_eq("\nc\r\nd\r\ne", letters[3]); - +} END_TEST START_TEST (test_getfields_too_many_mflag) - +{ char str[] = "a\r\nb\r\nc\r\nd\r\ne"; - char *letters[4] = {NULL}; + char *letters[4] = {NULL}; int rc = uc_getfields(str, letters, 4, 1, "\r\n"); ck_assert_int_eq(rc, 4); @@ -100,13 +101,13 @@ START_TEST (test_getfields_too_many_mflag) ck_assert_str_eq("b", letters[1]); ck_assert_str_eq("c", letters[2]); ck_assert_str_eq("d\r\ne", letters[3]); - +} END_TEST START_TEST (test_getfields_empty) - +{ char str[] = ""; - char *letters[4] = {NULL}; + char *letters[4] = {NULL}; int rc = uc_getfields(str, letters, 4, 0, ";\r\n"); ck_assert_int_eq(rc, 1); @@ -115,53 +116,53 @@ START_TEST (test_getfields_empty) rc = uc_getfields(str, letters, 4, 1, ";\r\n"); ck_assert_int_eq(rc, 0); - +} END_TEST START_TEST (test_gettokens) - +{ char str[] = "a;b;c"; - char *letters[5] = {NULL}; + char *letters[5] = {NULL}; int rc = uc_gettokens(str, letters, 5,";"); ck_assert_int_eq(rc, 3); - + ck_assert_str_eq("a", letters[0]); ck_assert_str_eq("b", letters[1]); ck_assert_str_eq("c", letters[2]); - +} END_TEST START_TEST (test_gettokens_consecutive) - +{ char str[] = "a;;;b;;c;"; - char *letters[5] = {NULL}; + char *letters[5] = {NULL}; int rc = uc_gettokens(str, letters, 5,";"); ck_assert_int_eq(rc, 3); - + ck_assert_str_eq("a", letters[0]); ck_assert_str_eq("b", letters[1]); ck_assert_str_eq("c", letters[2]); - +} END_TEST START_TEST (test_gettokens_empty) - +{ char str[] = ""; - char *letters[5] = {NULL}; + char *letters[5] = {NULL}; int rc = uc_gettokens(str, letters, 5,";"); ck_assert_int_eq(rc, 0); - +} END_TEST START_TEST (test_gettokens_quotes) - +{ char str[] = "\"abc\";d;\"e \""; - char *letters[5] = {NULL}; + char *letters[5] = {NULL}; int rc = uc_gettokens(str, letters, 5,";"); ck_assert_int_eq(rc, 3); @@ -169,13 +170,13 @@ START_TEST (test_gettokens_quotes) ck_assert_str_eq("abc", letters[0]); ck_assert_str_eq("d", letters[1]); ck_assert_str_eq("e ", letters[2]); - +} END_TEST START_TEST (test_gettokens_double_quotes) - +{ char str[] = "\"\"abc\"\";d;\"e\"\"f\"\"\""; - char *letters[5] = {NULL}; + char *letters[5] = {NULL}; int rc = uc_gettokens(str, letters, 5,";"); ck_assert_int_eq(rc, 3); @@ -183,7 +184,7 @@ START_TEST (test_gettokens_double_quotes) ck_assert_str_eq("abc", letters[0]); ck_assert_str_eq("d", letters[1]); ck_assert_str_eq("e\"f\"", letters[2]); - +} END_TEST Suite *string_suite(void) diff --git a/test/test_strv.c b/test/test_strv.c index 44a9976..8e53902 100644 --- a/test/test_strv.c +++ b/test/test_strv.c @@ -136,6 +136,7 @@ START_TEST (test_strv_append_all_nocopy) END_TEST START_TEST (test_strv_reverse) +{ struct UCStrv strv; uc_strv_init(&strv); @@ -170,8 +171,7 @@ START_TEST (test_strv_reverse) ck_assert_str_eq("string1", strv.strings[2]); uc_strv_destroy(&strv); - - +} END_TEST Suite *strv_suite(void)