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;
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[] = {
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);