From: Bastian Dehn Date: Sun, 23 Jun 2024 12:25:22 +0000 (+0200) Subject: add test for correct saldo seconds X-Git-Tag: 1.2.0^2~16^2~1 X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=5ef8ff19ae391625a3cdaf79dab5d295c653ddbe;p=feierabend.git add test for correct saldo seconds --- diff --git a/src/time_format.c b/src/time_format.c index eec05ed..66f74d3 100644 --- a/src/time_format.c +++ b/src/time_format.c @@ -45,11 +45,20 @@ void get_seconds_from_string(const char* timestr, time_t* seconds) memset(str, 0, 7); strncpy(str, timestr, 7); first_str_pos = str; + int minus = 0; + + if (str[0] == '-') + minus = 1; str = strtok(str, ":"); *seconds = atol(str) * ONE_HOUR; str = strtok(NULL, ":"); - *seconds += atol(str) * 60; + + if (minus) + *seconds += atol(str) * 60 * -1; + else + *seconds += atol(str) * 60; + free(first_str_pos); first_str_pos = NULL; diff --git a/tests/time_format_tests.c b/tests/time_format_tests.c index 011df3b..ee159e8 100644 --- a/tests/time_format_tests.c +++ b/tests/time_format_tests.c @@ -290,6 +290,16 @@ void get_seconds_from_str() assert_int_equal(seconds, 15300); } +void get_seconds_from_str_minus() +{ + const char* timestr = "-04:15"; + time_t seconds = 0; + + get_seconds_from_string(timestr, &seconds); + + assert_int_equal(seconds, -15300); +} + int main() { const struct CMUnitTest tests[] = { @@ -314,7 +324,8 @@ int main() cmocka_unit_test(get_short_thursday), cmocka_unit_test(get_short_friday), cmocka_unit_test(get_short_saturday), - cmocka_unit_test(get_seconds_from_str) + cmocka_unit_test(get_seconds_from_str), + cmocka_unit_test(get_seconds_from_str_minus) }; return cmocka_run_group_tests(tests, NULL, NULL);