From 7a7126d509ee2754d8ac5b6dd3e508c2b599e9cf Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Tue, 5 May 2026 15:30:43 +0200 Subject: [PATCH] run test all at once --- tests/CMakeLists.txt | 36 +++++++++--------------------------- tests/break_tests.c | 6 +++--- tests/tests.c | 25 +++++++++++++++++++++++++ tests/time_format_tests.c | 6 +++--- tests/validate_tests.c | 6 +++--- tests/worktime_tests.c | 6 +++--- 6 files changed, 46 insertions(+), 39 deletions(-) create mode 100644 tests/tests.c diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 0beffe8..d48068a 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -13,40 +13,22 @@ message(STATUS "CPPCHECK_VERSION: ${CPPCHECK_VERSION}") 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 diff --git a/tests/break_tests.c b/tests/break_tests.c index 1d6efb0..4a793da 100644 --- a/tests/break_tests.c +++ b/tests/break_tests.c @@ -141,9 +141,9 @@ void six_hours_and_fouty_six_minute_hours_minutes_fourty_five_minute_break_test( 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), @@ -161,5 +161,5 @@ int main() 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 diff --git a/tests/tests.c b/tests/tests.c new file mode 100644 index 0000000..8f6442d --- /dev/null +++ b/tests/tests.c @@ -0,0 +1,25 @@ +#include +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 diff --git a/tests/time_format_tests.c b/tests/time_format_tests.c index ccbe3ba..a0e65a7 100644 --- a/tests/time_format_tests.c +++ b/tests/time_format_tests.c @@ -249,9 +249,9 @@ void get_time_str_from_twenty_three_fity_nine_test(void** timestr) 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), @@ -284,5 +284,5 @@ int main() 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 diff --git a/tests/validate_tests.c b/tests/validate_tests.c index edecde4..a2e4bdf 100644 --- a/tests/validate_tests.c +++ b/tests/validate_tests.c @@ -130,9 +130,9 @@ void validate_invalid_minutes_string_tests() 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), @@ -141,5 +141,5 @@ int main() 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 diff --git a/tests/worktime_tests.c b/tests/worktime_tests.c index f3895ad..d78c4ea 100644 --- a/tests/worktime_tests.c +++ b/tests/worktime_tests.c @@ -84,9 +84,9 @@ void get_diff_to_end_ten_hour_end_test() 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), @@ -97,5 +97,5 @@ int main() 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 -- 2.47.3