diff --git a/tests/common/test_common_main.c b/tests/common/test_common_main.c index 3ec2ad38..973b46be 100644 --- a/tests/common/test_common_main.c +++ b/tests/common/test_common_main.c @@ -41,25 +41,75 @@ bin_to_hex(const char *input, int length) return result; } +static int +run_suite(const char *test_name) +{ + const char *env = getenv("TEST_NAME"); + return (env == NULL || strcmp(env, test_name) == 0); +} + int main (void) { int number_failed; SRunner *sr; - sr = srunner_create (make_suite_test_dechunker()); - srunner_add_suite(sr, make_suite_test_fifo()); - srunner_add_suite(sr, make_suite_test_list()); - srunner_add_suite(sr, make_suite_test_list16()); - srunner_add_suite(sr, make_suite_test_parse()); - srunner_add_suite(sr, make_suite_test_set_int()); - srunner_add_suite(sr, make_suite_test_string()); - srunner_add_suite(sr, make_suite_test_string_unicode()); - srunner_add_suite(sr, make_suite_test_os_calls()); - srunner_add_suite(sr, make_suite_test_ssl_calls()); - srunner_add_suite(sr, make_suite_test_base64()); - srunner_add_suite(sr, make_suite_test_guid()); - srunner_add_suite(sr, make_suite_test_scancode()); - srunner_add_suite(sr, make_suite_test_timers()); + sr = srunner_create (NULL); + if (run_suite("dechunker")) + { + srunner_add_suite(sr, make_suite_test_dechunker()); + } + if (run_suite("fifo")) + { + srunner_add_suite(sr, make_suite_test_fifo()); + } + if (run_suite("list")) + { + srunner_add_suite(sr, make_suite_test_list()); + } + if (run_suite("list16")) + { + srunner_add_suite(sr, make_suite_test_list16()); + } + if (run_suite("parse")) + { + srunner_add_suite(sr, make_suite_test_parse()); + } + if (run_suite("set_int")) + { + srunner_add_suite(sr, make_suite_test_set_int()); + } + if (run_suite("string")) + { + srunner_add_suite(sr, make_suite_test_string()); + } + if (run_suite("unicode")) + { + srunner_add_suite(sr, make_suite_test_string_unicode()); + } + if (run_suite("os_calls")) + { + srunner_add_suite(sr, make_suite_test_os_calls()); + } + if (run_suite("ssl_calls")) + { + srunner_add_suite(sr, make_suite_test_ssl_calls()); + } + if (run_suite("base64")) + { + srunner_add_suite(sr, make_suite_test_base64()); + } + if (run_suite("guid")) + { + srunner_add_suite(sr, make_suite_test_guid()); + } + if (run_suite("scancode")) + { + srunner_add_suite(sr, make_suite_test_scancode()); + } + if (run_suite("timers")) + { + srunner_add_suite(sr, make_suite_test_timers()); + } srunner_set_tap(sr, "-"); /*