diff --git a/test_util.c b/test_util.c index ae936d9a..d29a139b 100644 --- a/test_util.c +++ b/test_util.c @@ -1,4 +1,5 @@ #include +#include #include #include "util.h" @@ -145,6 +146,64 @@ void replace_when_new_null(void) assert_string_equals("hello", result); } +void trim_when_no_whitespace_returns_same(void) +{ + char *str = malloc((strlen("hi there") + 1) * sizeof(char)); + strcpy(str, "hi there"); + char *result = trim(str); + + assert_string_equals("hi there", result); + free(str); +} + +void trim_when_space_at_start(void) +{ + char *str = malloc((strlen(" hi there") + 1) * sizeof(char)); + strcpy(str, " hi there"); + char *result = trim(str); + + assert_string_equals("hi there", result); + free(str); +} + +void trim_when_space_at_end(void) +{ + char *str = malloc((strlen("hi there ") + 1) * sizeof(char)); + strcpy(str, "hi there "); + char *result = trim(str); + + assert_string_equals("hi there", result); + free(str); +} + +void trim_when_space_at_start_and_end(void) +{ + char *str = malloc((strlen(" hi there ") + 1) * sizeof(char)); + strcpy(str, " hi there "); + char *result = trim(str); + + assert_string_equals("hi there", result); + free(str); +} + +void trim_when_empty(void) +{ + char *str = malloc((strlen("") + 1) * sizeof(char)); + strcpy(str, ""); + char *result = trim(str); + + assert_string_equals("", result); + free(str); +} + +void trim_when_null(void) +{ + char *str = NULL; + trim(str); + + assert_is_null(str); +} + void register_util_tests(void) { TEST_MODULE("util tests"); @@ -161,4 +220,10 @@ void register_util_tests(void) TEST(replace_when_sub_null); TEST(replace_when_new_empty); TEST(replace_when_new_null); + TEST(trim_when_no_whitespace_returns_same); + TEST(trim_when_space_at_start); + TEST(trim_when_space_at_end); + TEST(trim_when_space_at_start_and_end); + TEST(trim_when_empty); + TEST(trim_when_null); } diff --git a/util.c b/util.c index bfe21263..b4c152a4 100644 --- a/util.c +++ b/util.c @@ -38,6 +38,9 @@ void get_time(char *thetime) char *trim(char *str) { + if (str == NULL) + return NULL; + char *end; while (isspace(*str))