diff --git a/src/os/tests/CMakeLists.txt b/src/os/tests/CMakeLists.txt index 734d03d..469c991 100644 --- a/src/os/tests/CMakeLists.txt +++ b/src/os/tests/CMakeLists.txt @@ -24,7 +24,8 @@ set(sources "stdlib.c" "strtoll.c" "thread.c" - "thread_cleanup.c") + "thread_cleanup.c" + "strcasecmp.c") add_cunit_executable(abstraction ${sources}) target_link_libraries(abstraction OSAPI) diff --git a/src/os/tests/stdlib.c b/src/os/tests/stdlib.c index f482d72..81ae916 100644 --- a/src/os/tests/stdlib.c +++ b/src/os/tests/stdlib.c @@ -303,118 +303,6 @@ CU_Clean(os_stdlib) return 0; } -CU_Test(os_stdlib, strcasecmp) -{ - int res; - char *s1, *s2; - - s1 = "a"; - s2 = "a"; - printf ("Starting os_stdlib_strcasecmp_001\n"); - res = os_strcasecmp (s1,s2); - CU_ASSERT (res == 0); - - printf ("Starting os_stdlib_strcasecmp_002\n"); - s1 = "aa"; - s2 = "a"; - res = os_strcasecmp (s1,s2); - CU_ASSERT (res > 0); - - printf ("Starting os_stdlib_strcasecmp_003\n"); - s1 = "a"; - s2 = "aa"; - res = os_strcasecmp (s1,s2); - CU_ASSERT (res < 0); - - printf ("Starting os_stdlib_strcasecmp_004\n"); - s1 = "a"; - s2 = "A"; - res = os_strcasecmp (s1,s2); - CU_ASSERT (res == 0); - - printf ("Starting os_stdlib_strcasecmp_005\n"); - s1 = "A"; - s2 = "a"; - res = os_strcasecmp (s1,s2); - CU_ASSERT (res == 0); - - printf ("Starting os_stdlib_strcasecmp_006\n"); - s1 = "a"; - s2 = "b"; - res = os_strcasecmp (s1,s2); - CU_ASSERT (res < 0); - - printf ("Starting os_stdlib_strcasecmp_007\n"); - s1 = "b"; - s2 = "a"; - res = os_strcasecmp (s1,s2); - CU_ASSERT (res > 0); - - printf ("Ending os_stdlib_strcasecmp\n"); -} - -CU_Test(os_stdlib, strncasecmp) -{ - int res; - char *s1, *s2; - - s1 = "a"; - s2 = "a"; - printf ("Starting os_stdlib_strncasecmp_001\n"); - res = os_strncasecmp (s1,s2,2); - CU_ASSERT (res == 0); - - s1 = "aa"; - s2 = "a"; - printf ("Starting os_stdlib_strncasecmp_002\n"); - res = os_strncasecmp (s1,s2,2); - CU_ASSERT (res > 0); - - s1 = "a"; - s2 = "aa"; - printf ("Starting os_stdlib_strncasecmp_003\n"); - res = os_strncasecmp (s1,s2,2); - CU_ASSERT (res < 0); - - s1 = "a"; - s2 = "A"; - printf ("Starting os_stdlib_strncasecmp_004\n"); - res = os_strncasecmp (s1,s2,2); - CU_ASSERT (res == 0); - - s1 = "A"; - s2 = "a"; - printf ("Starting os_stdlib_strncasecmp_005\n"); - res = os_strncasecmp (s1,s2,2); - CU_ASSERT (res == 0); - - s1 = "a"; - s2 = "b"; - printf ("Starting os_stdlib_strncasecmp_006\n"); - res = os_strncasecmp (s1,s2,2); - CU_ASSERT (res < 0); - - s1 = "b"; - s2 = "a"; - printf ("Starting os_stdlib_strncasecmp_007\n"); - res = os_strncasecmp (s1,s2,2); - CU_ASSERT (res > 0); - - s1 = "abcdefghijkl"; - s2 = "AbCdEaGhIjKl"; - printf ("Starting os_stdlib_strncasecmp_008\n"); - res = os_strncasecmp (s1,s2,5); - CU_ASSERT (res == 0); - - s1 = "abcdefghijkl"; - s2 = "AbCdEaGhIjKl"; - printf ("Starting os_stdlib_strncasecmp_009\n"); - res = os_strncasecmp (s1,s2,6); - CU_ASSERT (res > 0); - - printf ("Ending os_stdlib_strncasecmp\n"); -} - CU_Test(os_stdlib, gethostname) { int res; diff --git a/src/os/tests/strcasecmp.c b/src/os/tests/strcasecmp.c new file mode 100644 index 0000000..a6f9035 --- /dev/null +++ b/src/os/tests/strcasecmp.c @@ -0,0 +1,56 @@ +#include "os/os.h" +#include "CUnit/Theory.h" + +typedef enum { eq, lt, gt } eq_t; + +CU_TheoryDataPoints(os_strcasecmp, basic) = { + CU_DataPoints(const char *, "a", "aa", "a", "a", "A", "a", "b", "a", "B", "A", "", "a"), + CU_DataPoints(const char *, "a", "a", "aa", "A", "a", "b", "a", "b", "A", "B", "a", ""), + CU_DataPoints(eq_t, eq, gt, lt, eq, eq, lt, gt, lt, gt, lt, lt, gt) +}; + +CU_Theory((const char *s1, const char *s2, eq_t e), os_strcasecmp, basic) +{ + int r = os_strcasecmp(s1, s2); + CU_ASSERT((e == eq && r == 0) || (e == lt && r < 0) || (e == gt && r > 0)); +} + +CU_TheoryDataPoints(os_strncasecmp, basic) = { + CU_DataPoints(const char *, "a", "aa", "a", "A", "a", "b", "a", "B", "A", "", "a"), + CU_DataPoints(const char *, "a", "a", "aa", "a", "A", "a", "b", "A", "B", "a", ""), + CU_DataPoints(size_t, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1), + CU_DataPoints(eq_t, eq, gt, lt, eq, eq, gt, lt, gt, lt, lt, gt) +}; + +CU_Theory((const char *s1, const char *s2, size_t n, eq_t e), os_strncasecmp, basic) +{ + int r = os_strncasecmp(s1, s2, n); + CU_ASSERT((e == eq && r == 0) || (e == lt && r < 0) || (e == gt && r > 0)); +} + +CU_TheoryDataPoints(os_strncasecmp, empty) = { + CU_DataPoints(const char *, "a", "", "a", "", "a", ""), + CU_DataPoints(const char *, "", "a", "", "a", "", "a"), + CU_DataPoints(size_t, 1, 1, 0, 0, 2, 2), + CU_DataPoints(eq_t, gt, lt, eq, eq, gt, lt) +}; + +CU_Theory((const char *s1, const char *s2, size_t n, eq_t e), os_strncasecmp, empty) +{ + int r = os_strncasecmp(s1, s2, n); + CU_ASSERT((e == eq && r == 0) || (e == lt && r < 0) || (e == gt && r > 0)); +} + +CU_TheoryDataPoints(os_strncasecmp, length) = { + CU_DataPoints(const char *, "aBcD", "AbCX", "aBcD", "AbCX", "aBcD"), + CU_DataPoints(const char *, "AbCX", "aBcD", "AbCX", "aBcD", "AbCd"), + CU_DataPoints(size_t, 3, 3, 4, 4, 5, 5), + CU_DataPoints(eq_t, eq, eq, lt, gt, eq, eq) +}; + +CU_Theory((const char *s1, const char *s2, size_t n, eq_t e), os_strncasecmp, length) +{ + int r = os_strncasecmp(s1, s2, n); + CU_ASSERT((e == eq && r == 0) || (e == lt && r < 0) || (e == gt && r > 0)); +} +