include_directories(${CMAKE_BINARY_DIR}/src)
-add_executable(break_tests
+add_executable(tests
+ tests.c
break_tests.c
- ../src/break.c)
-target_link_libraries(break_tests
- ${CMOCKA})
-
-add_executable(worktime_tests
worktime_tests.c
- ../src/worktime.c
- ../src/break.c)
-target_link_libraries(worktime_tests
- ${CMOCKA})
-
-add_executable(time_format_tests
time_format_tests.c
- ../src/time_format.c)
-target_link_libraries(time_format_tests
- ${CMOCKA})
-
-add_executable(validate_tests
validate_tests.c
- ../src/validate.c)
-target_link_libraries(validate_tests
+ ../src/validate.c
+ ../src/time_format.c
+ ../src/worktime.c
+ ../src/break.c)
+target_link_libraries(tests
${CMOCKA})
add_custom_target(run_tests
- ALL ./break_tests
- COMMAND ./worktime_tests
- COMMAND ./time_format_tests
- COMMAND ./validate_tests
- DEPENDS break_tests
- worktime_tests
- time_format_tests
- validate_tests)
+ ALL ./tests
+ DEPENDS tests)
if(CPPCHECK_VERSION VERSION_GREATER 2.10)
add_custom_command(TARGET run_tests
assert_int_equal(breaktime, 2700);
}
-int main()
+int run_break_tests()
{
- const struct CMUnitTest tests[] = {
+ const struct CMUnitTest break_tests[] = {
cmocka_unit_test(two_hours_zero_break_test),
cmocka_unit_test(two_hours_and_one_minutes_one_minute_break_test),
cmocka_unit_test(two_hours_and_two_minutes_two_minute_break_test),
cmocka_unit_test(six_hours_and_fouty_six_minute_hours_minutes_fourty_five_minute_break_test),
};
- return cmocka_run_group_tests(tests, NULL, NULL);
+ return cmocka_run_group_tests(break_tests, NULL, NULL);
}
\ No newline at end of file
--- /dev/null
+#include <stdlib.h>
+typedef int (*testgroupsfn)();
+
+int run_break_tests();
+int run_worktime_tests();
+int run_time_format_tests();
+int run_validate_tests();
+
+int main()
+{
+ testgroupsfn testgroups[] = {
+ run_break_tests,
+ run_worktime_tests,
+ run_time_format_tests,
+ run_validate_tests
+ };
+
+ size_t count = sizeof(testgroups) / sizeof(testgroupsfn);
+ for (size_t i = 0; i < count; i++) {
+ if (testgroups[i]())
+ return 1;
+ }
+
+ return 0;
+}
\ No newline at end of file
assert_string_equal(*timestr, "23:59");
}
-int main()
+int run_time_format_tests()
{
- const struct CMUnitTest tests[] = {
+ const struct CMUnitTest time_format_tests[] = {
cmocka_unit_test_teardown(get_zero_hour_and_fifteen_minutes_test, teardown),
cmocka_unit_test_teardown(get_five_hour_fourty_five_test, teardown),
cmocka_unit_test_teardown(get_minus_five_minutes_test, teardown),
cmocka_unit_test_teardown(get_time_str_from_twenty_three_fity_nine_test, teardown)
};
- return cmocka_run_group_tests(tests, NULL, NULL);
+ return cmocka_run_group_tests(time_format_tests, NULL, NULL);
}
\ No newline at end of file
validate_invalid_minutes_string_test("100");
}
-int main()
+int run_validate_tests()
{
- const struct CMUnitTest tests[] = {
+ const struct CMUnitTest validate_tests[] = {
cmocka_unit_test(validate_valid_date_string_tests),
cmocka_unit_test(validate_invalid_date_string_tests),
cmocka_unit_test(validate_valid_hour_string_tests),
cmocka_unit_test(validate_invalid_minutes_string_tests)
};
- return cmocka_run_group_tests(tests, NULL, NULL);
+ return cmocka_run_group_tests(validate_tests, NULL, NULL);
}
\ No newline at end of file
assert_int_equal(result, 21720);
}
-int main()
+int run_worktime_tests()
{
- const struct CMUnitTest tests[] = {
+ const struct CMUnitTest worktime_tests[] = {
cmocka_unit_test(get_eigth_hour_end_time_test),
cmocka_unit_test(get_ten_hour_end_time_test),
cmocka_unit_test(get_current_worktime_four_hours_thirteen_test),
cmocka_unit_test(get_diff_to_end_ten_hour_end_test),
};
- return cmocka_run_group_tests(tests, NULL, NULL);
+ return cmocka_run_group_tests(worktime_tests, NULL, NULL);
}
\ No newline at end of file