From: Bastian Dehn Date: Wed, 12 Nov 2025 14:51:59 +0000 (+0100) Subject: add method validate minutes X-Git-Tag: 1.3.8^2~3 X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=83ee7909ea4633629c7a789cba065a7bbfe77368;p=feierabend.git add method validate minutes --- diff --git a/src/time_format.c b/src/time_format.c index 43c0372..72c9d05 100644 --- a/src/time_format.c +++ b/src/time_format.c @@ -12,6 +12,7 @@ #define DATE_REGEX "^[0-9]{4}-([0][1-9]|1[0-2])-([0-2][1-9]|[1-3]0|3[01])$" #define HOUR_REGEX "^([0-9]|1[0-9]|2[0-3])$" +#define MINUTE_REGEX "^([0-9]|[1-5][0-9])$" void get_time_str(time_t timediff, char* timestr) { @@ -223,4 +224,9 @@ bool validate_datestring(const char* date) bool validate_hourstring(const char* hour) { return validate_string(hour, HOUR_REGEX); +} + +bool validate_minutestring(const char* hour) +{ + return validate_string(hour, MINUTE_REGEX); } \ No newline at end of file diff --git a/src/time_format.h b/src/time_format.h index ad33272..6dc643e 100644 --- a/src/time_format.h +++ b/src/time_format.h @@ -13,5 +13,6 @@ int get_month_from_str(const char* date); int get_day_from_str(const char* date); bool validate_datestring(const char* date); bool validate_hourstring(const char* hour); +bool validate_minutestring(const char* hour); #endif \ No newline at end of file diff --git a/tests/time_format_tests.c b/tests/time_format_tests.c index ae4b111..78fd743 100644 --- a/tests/time_format_tests.c +++ b/tests/time_format_tests.c @@ -405,6 +405,45 @@ void validate_invalid_hour_string_test() validate_invaild_hour_string("100"); } +void validate_vaild_minutes_string(const char* minutes) +{ + bool valid = validate_minutestring(minutes); + + assert_true(valid); +} + +void validate_valid_minutes_string_test() +{ + char* minutes = malloc(sizeof(char) * 3); + if (minutes == NULL) + return; + + for (int i = 0; i < 60; i++) { + memset(minutes, 0, 3); + sprintf(minutes, "%d", i); + validate_vaild_minutes_string(minutes); + } + + free(minutes); + minutes = NULL; +} + +void validate_invaild_minutes_string(const char* minutes) +{ + bool valid = validate_minutestring(minutes); + + assert_false(valid); +} + +void validate_invalid_minutes_string_test() +{ + validate_invaild_minutes_string("text"); + validate_invaild_minutes_string("-1"); + validate_invaild_minutes_string("01"); + validate_invaild_minutes_string("60"); + validate_invaild_minutes_string("100"); +} + int main() { const struct CMUnitTest tests[] = { @@ -437,7 +476,9 @@ int main() cmocka_unit_test(validate_valid_date_string_tests), cmocka_unit_test(validate_invalid_date_string_tests), cmocka_unit_test(validate_valid_hour_string_test), - cmocka_unit_test(validate_invalid_hour_string_test) + cmocka_unit_test(validate_invalid_hour_string_test), + cmocka_unit_test(validate_valid_minutes_string_test), + cmocka_unit_test(validate_invalid_minutes_string_test) }; return cmocka_run_group_tests(tests, NULL, NULL);