From: Michael Tremer Date: Tue, 9 Aug 2022 12:47:39 +0000 (+0000) Subject: tests: Allow running a single test X-Git-Tag: 0.9.28~553 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b0ead88b57b47e8fc2dac6eed4d922d256bbbd32;p=pakfire.git tests: Allow running a single test Signed-off-by: Michael Tremer --- diff --git a/tests/libpakfire/arch.c b/tests/libpakfire/arch.c index b35006604..7d3831752 100644 --- a/tests/libpakfire/arch.c +++ b/tests/libpakfire/arch.c @@ -109,11 +109,11 @@ FAIL: return EXIT_SUCCESS; } -int main(int argc, char** argv) { +int main(int argc, const char* argv[]) { testsuite_add_test(test_native); testsuite_add_test(test_supported); testsuite_add_test(test_compatible); testsuite_add_test(test_machine); - return testsuite_run(); + return testsuite_run(argc, argv); } diff --git a/tests/libpakfire/archive.c b/tests/libpakfire/archive.c index 9a17dd95f..46dd1f57a 100644 --- a/tests/libpakfire/archive.c +++ b/tests/libpakfire/archive.c @@ -271,7 +271,7 @@ FAIL: return r; } -int main(int argc, char** argv) { +int main(int argc, const char* argv[]) { testsuite_add_test(test_open); testsuite_add_test(test_open_directory); testsuite_add_test(test_get); @@ -281,5 +281,5 @@ int main(int argc, char** argv) { testsuite_add_test(test_extract); testsuite_add_test(test_import); - return testsuite_run(); + return testsuite_run(argc, argv); } diff --git a/tests/libpakfire/build.c b/tests/libpakfire/build.c index 94a4b1e3e..576698e13 100644 --- a/tests/libpakfire/build.c +++ b/tests/libpakfire/build.c @@ -57,9 +57,9 @@ FAIL: return EXIT_FAILURE; } -int main(int argc, char** argv) { +int main(int argc, const char* argv[]) { testsuite_add_test(test_create_and_free); testsuite_add_test(test_create_with_invalid_ids); - return testsuite_run(); + return testsuite_run(argc, argv); } diff --git a/tests/libpakfire/cgroup.c b/tests/libpakfire/cgroup.c index b47ec4b82..19a4f5e4f 100644 --- a/tests/libpakfire/cgroup.c +++ b/tests/libpakfire/cgroup.c @@ -218,7 +218,7 @@ FAIL: return EXIT_FAILURE; } -int main(int argc, char** argv) { +int main(int argc, const char* argv[]) { testsuite_add_test(test_create_and_destroy); testsuite_add_test(test_attach); testsuite_add_test(test_killall); @@ -226,5 +226,5 @@ int main(int argc, char** argv) { testsuite_add_test(test_random_name); testsuite_add_test(test_nice); - return testsuite_run(); + return testsuite_run(argc, argv); } diff --git a/tests/libpakfire/compress.c b/tests/libpakfire/compress.c index e4afcfa9c..a55c6aaaa 100644 --- a/tests/libpakfire/compress.c +++ b/tests/libpakfire/compress.c @@ -119,7 +119,7 @@ FAIL: return EXIT_FAILURE; } -int main(int argc, char** argv) { +int main(int argc, const char* argv[]) { // XZ testsuite_add_test(test_xzfopen_read); testsuite_add_test(test_xzfopen_write); @@ -130,5 +130,5 @@ int main(int argc, char** argv) { testsuite_add_test(test_xfopen); - return testsuite_run(); + return testsuite_run(argc, argv); } diff --git a/tests/libpakfire/config.c b/tests/libpakfire/config.c index f2d4daaf8..afb121bdc 100644 --- a/tests/libpakfire/config.c +++ b/tests/libpakfire/config.c @@ -127,9 +127,9 @@ FAIL: return r; } -int main(int argc, char** argv) { +int main(int argc, const char* argv[]) { testsuite_add_test(test_get_and_set); testsuite_add_test(test_parse); - return testsuite_run(); + return testsuite_run(argc, argv); } diff --git a/tests/libpakfire/db.c b/tests/libpakfire/db.c index b1327b1c9..80095f509 100644 --- a/tests/libpakfire/db.c +++ b/tests/libpakfire/db.c @@ -131,11 +131,11 @@ FAIL: return r; } -int main(int argc, char** argv) { +int main(int argc, const char* argv[]) { testsuite_add_test(test_open_ro); testsuite_add_test(test_open_rw); testsuite_add_test(test_check); testsuite_add_test(test_add_package); - return testsuite_run(); + return testsuite_run(argc, argv); } diff --git a/tests/libpakfire/dependencies.c b/tests/libpakfire/dependencies.c index acb278e28..409a47631 100644 --- a/tests/libpakfire/dependencies.c +++ b/tests/libpakfire/dependencies.c @@ -137,8 +137,8 @@ FAIL: return EXIT_FAILURE; } -int main(int argc, char** argv) { +int main(int argc, const char* argv[]) { testsuite_add_test(test_dependencies); - return testsuite_run(); + return testsuite_run(argc, argv); } diff --git a/tests/libpakfire/downloader.c b/tests/libpakfire/downloader.c index ee58df0f5..94263ff17 100644 --- a/tests/libpakfire/downloader.c +++ b/tests/libpakfire/downloader.c @@ -203,7 +203,7 @@ FAIL: #endif /* ENABLE_ONLINE_TESTS */ -int main(int argc, char** argv) { +int main(int argc, const char* argv[]) { testsuite_add_test(test_simple); testsuite_add_test(test_retrieve_with_pending_transfers); testsuite_add_test(test_retrieve_with_mirrors); @@ -214,5 +214,5 @@ int main(int argc, char** argv) { testsuite_add_test(test_retrieve_online_with_incorrect_digest); #endif /* ENABLE_ONLINE_TESTS */ - return testsuite_run(); + return testsuite_run(argc, argv); } diff --git a/tests/libpakfire/jail.c b/tests/libpakfire/jail.c index 3866b8b30..cb847745b 100644 --- a/tests/libpakfire/jail.c +++ b/tests/libpakfire/jail.c @@ -129,11 +129,11 @@ FAIL: return r; } -int main(int argc, char** argv) { +int main(int argc, const char* argv[]) { testsuite_add_test(test_create); testsuite_add_test(test_env); testsuite_add_test(test_exec); testsuite_add_test(test_launch_into_cgroup); - return testsuite_run(); + return testsuite_run(argc, argv); } diff --git a/tests/libpakfire/key.c b/tests/libpakfire/key.c index b6fa3904e..145a8cca6 100644 --- a/tests/libpakfire/key.c +++ b/tests/libpakfire/key.c @@ -97,9 +97,9 @@ static int test_import_export(const struct test* t) { return EXIT_SUCCESS; } -int main(int argc, char** argv) { +int main(int argc, const char* argv[]) { testsuite_add_test(test_init); testsuite_add_test(test_import_export); - return testsuite_run(); + return testsuite_run(argc, argv); } diff --git a/tests/libpakfire/main.c b/tests/libpakfire/main.c index 7b8478292..d99fee1f1 100644 --- a/tests/libpakfire/main.c +++ b/tests/libpakfire/main.c @@ -38,9 +38,9 @@ FAIL: return EXIT_FAILURE; } -int main(int argc, char** argv) { +int main(int argc, const char* argv[]) { testsuite_add_test(test_init); testsuite_add_test(test_path); - return testsuite_run(); + return testsuite_run(argc, argv); } diff --git a/tests/libpakfire/makefile.c b/tests/libpakfire/makefile.c index 8662f06f5..20146ecd2 100644 --- a/tests/libpakfire/makefile.c +++ b/tests/libpakfire/makefile.c @@ -265,11 +265,11 @@ FAIL: return r; } -int main(int argc, char** argv) { +int main(int argc, const char* argv[]) { testsuite_add_test(test_macros); testsuite_add_test(test_parse); testsuite_add_test(test_packages); testsuite_add_test(test_dist_dummy); - return testsuite_run(); + return testsuite_run(argc, argv); } diff --git a/tests/libpakfire/packager.c b/tests/libpakfire/packager.c index 39aabb41b..1b85294f8 100644 --- a/tests/libpakfire/packager.c +++ b/tests/libpakfire/packager.c @@ -152,9 +152,9 @@ FAIL: return r; } -int main(int argc, char** argv) { +int main(int argc, const char* argv[]) { testsuite_add_test(test_create); testsuite_add_test(test_compare_metadata); - return testsuite_run(); + return testsuite_run(argc, argv); } diff --git a/tests/libpakfire/parser.c b/tests/libpakfire/parser.c index 9eff58875..de95b1f34 100644 --- a/tests/libpakfire/parser.c +++ b/tests/libpakfire/parser.c @@ -176,12 +176,12 @@ FAIL: } #endif -int main(int argc, char** argv) { +int main(int argc, const char* argv[]) { testsuite_add_test(test_parser); testsuite_add_test(test_parser_files); #if 0 testsuite_add_test(test_parser_command); #endif - return testsuite_run(); + return testsuite_run(argc, argv); } diff --git a/tests/libpakfire/progressbar.c b/tests/libpakfire/progressbar.c index 0d0bc8286..e87362d88 100644 --- a/tests/libpakfire/progressbar.c +++ b/tests/libpakfire/progressbar.c @@ -68,8 +68,8 @@ FAIL: return r; } -int main(int argc, char** argv) { +int main(int argc, const char* argv[]) { testsuite_add_test(test_run); - return testsuite_run(); + return testsuite_run(argc, argv); } diff --git a/tests/libpakfire/repo.c b/tests/libpakfire/repo.c index c1d38d389..0582d71c6 100644 --- a/tests/libpakfire/repo.c +++ b/tests/libpakfire/repo.c @@ -102,9 +102,9 @@ FAIL: return r; } -int main(int argc, char** argv) { +int main(int argc, const char* argv[]) { testsuite_add_test(test_scan); testsuite_add_test(test_compose); - return testsuite_run(); + return testsuite_run(argc, argv); } diff --git a/tests/libpakfire/snapshot.c b/tests/libpakfire/snapshot.c index 460954df9..bd4c44ba6 100644 --- a/tests/libpakfire/snapshot.c +++ b/tests/libpakfire/snapshot.c @@ -74,9 +74,9 @@ FAIL: return r; } -int main(int argc, char** argv) { +int main(int argc, const char* argv[]) { testsuite_add_test(test_create_and_restore); testsuite_add_test(test_invalid_inputs); - return testsuite_run(); + return testsuite_run(argc, argv); } diff --git a/tests/libpakfire/util.c b/tests/libpakfire/util.c index 999f12707..8f8ec1f2a 100644 --- a/tests/libpakfire/util.c +++ b/tests/libpakfire/util.c @@ -300,7 +300,7 @@ FAIL: return EXIT_FAILURE; } -int main(int argc, char** argv) { +int main(int argc, const char* argv[]) { testsuite_add_test(test_basename); testsuite_add_test(test_dirname); testsuite_add_test(test_string_startswith); @@ -312,5 +312,5 @@ int main(int argc, char** argv) { testsuite_add_test(test_string_join); testsuite_add_test(test_format_size); - return testsuite_run(); + return testsuite_run(argc, argv); } diff --git a/tests/testsuite.c b/tests/testsuite.c index 5da2cef99..01e7aacc4 100644 --- a/tests/testsuite.c +++ b/tests/testsuite.c @@ -89,9 +89,30 @@ int __testsuite_add_test(const char* name, int (*func)(const struct test* t)) { return 0; } -int testsuite_run() { +static int check_whether_to_run(const struct test* t, const int argc, const char* argv[]) { + // Run all tests when nothing has been selected + if (argc < 2) + return 0; + + // Check if this test has been listed + for (unsigned int i = 1; i < argc; i++) { + if (strcmp(t->name, argv[i]) == 0) + return 1; + } + + return 0; +} + +int testsuite_run(int argc, const char* argv[]) { for (unsigned int i = 0; i < ts.num; i++) { - int r = test_run(i, &ts.tests[i]); + struct test* test = &ts.tests[i]; + + // Skip any tests that should not be run + if (!check_whether_to_run(test, argc, argv)) + continue; + + // Run the test + int r = test_run(i, test); if (r) exit(r); } diff --git a/tests/testsuite.h b/tests/testsuite.h index 4e529aee4..353596761 100644 --- a/tests/testsuite.h +++ b/tests/testsuite.h @@ -46,7 +46,7 @@ struct testsuite { extern struct testsuite ts; int __testsuite_add_test(const char* name, int (*func)(const struct test* t)); -int testsuite_run(void); +int testsuite_run(int argc, const char* argv[]); #define _LOG(prefix, fmt, ...) fprintf(stderr, "TESTS: " prefix fmt, ## __VA_ARGS__); #define LOG(fmt, ...) _LOG("", fmt, ## __VA_ARGS__);