]> gitweb.hhaalo.de Git - feierabend.git/commitdiff
add method validate minutes
authorBastian Dehn <hhaalo@arcor.de>
Wed, 12 Nov 2025 14:51:59 +0000 (15:51 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Wed, 12 Nov 2025 14:51:59 +0000 (15:51 +0100)
src/time_format.c
src/time_format.h
tests/time_format_tests.c

index 43c0372a17caee9ee6aa91f472dcb6a46b5efa17..72c9d0581c005eeb3431a5e7cd56557cc68da79c 100644 (file)
@@ -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
index ad332725023a285d438a0b5eb2429400818f03d7..6dc643e8cf1c27bc403d91a0dbaa707ce77b544c 100644 (file)
@@ -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
index ae4b1116858053f1dc58807cbcf51c6a0c11ed9b..78fd7437083b209afa180d4eb33edd19fa23eb7e 100644 (file)
@@ -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);