]> git.ipfire.org Git - pakfire.git/commitdiff
tests: Allow running a single test
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 9 Aug 2022 12:47:39 +0000 (12:47 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 9 Aug 2022 12:47:39 +0000 (12:47 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
21 files changed:
tests/libpakfire/arch.c
tests/libpakfire/archive.c
tests/libpakfire/build.c
tests/libpakfire/cgroup.c
tests/libpakfire/compress.c
tests/libpakfire/config.c
tests/libpakfire/db.c
tests/libpakfire/dependencies.c
tests/libpakfire/downloader.c
tests/libpakfire/jail.c
tests/libpakfire/key.c
tests/libpakfire/main.c
tests/libpakfire/makefile.c
tests/libpakfire/packager.c
tests/libpakfire/parser.c
tests/libpakfire/progressbar.c
tests/libpakfire/repo.c
tests/libpakfire/snapshot.c
tests/libpakfire/util.c
tests/testsuite.c
tests/testsuite.h

index b35006604c56f2a6415ccbb6ce4eac52df32d569..7d3831752d8e136400cabf896b20cac45a059332 100644 (file)
@@ -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);
 }
index 9a17dd95f3d0b6e8a1560f3eb0d352706302d302..46dd1f57a6a55287378fb2ad0f9fa709428b0009 100644 (file)
@@ -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);
 }
index 94a4b1e3e99a558becae3cd57a3bfc1a7cbf4339..576698e13d28d3f86971aab190293bd05d84bf0f 100644 (file)
@@ -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);
 }
index b47ec4b82a1c8ac4be5a96d2f2a7527f69c571ae..19a4f5e4f756c94b9bdae1d614a5e1ac3dd3c4ac 100644 (file)
@@ -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);
 }
index e4afcfa9c85350e6fd7c1d3e0fcfc1643fe8c1cc..a55c6aaaac75c2364cb12f41bc7112230f329abe 100644 (file)
@@ -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);
 }
index f2d4daaf86171b497423c5ea7e49f2cedf940c47..afb121bdc5d292f07667a20c5b6060bea3ba75da 100644 (file)
@@ -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);
 }
index b1327b1c9b16b6fdacb997ecfad727ed943a8a4a..80095f509b4eba085a5874c653c508f85b8426ea 100644 (file)
@@ -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);
 }
index acb278e28ea38c71de25d95074518e840c03e912..409a4763188890082e0c05ff97225c071488ad16 100644 (file)
@@ -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);
 }
index ee58df0f5b79ced9e0d1b50b4a4bdc5c4955715f..94263ff17b7b32493a73fd073c38b47f9ae36ddd 100644 (file)
@@ -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);
 }
index 3866b8b30bbbad81aec87a0f410cc5100eb970fd..cb847745b90e6d09d057b10feb819ecf2e54acce 100644 (file)
@@ -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);
 }
index b6fa3904ede5438aa25e9e82f044f181e68b01c9..145a8cca6fb506ee788cd0a6cc0233363a113c09 100644 (file)
@@ -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);
 }
index 7b84782924ae5d631310eda0c122a3202af71121..d99fee1f12f3fdcc93c638da84d4a45df6c76af4 100644 (file)
@@ -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);
 }
index 8662f06f5cab0296486ef5208556cb1dfc80c823..20146ecd2ac1a2613f72dd36ad5d810418526697 100644 (file)
@@ -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);
 }
index 39aabb41b7642da7f10a6ee9d3e806e492e6d32e..1b85294f8ec9e247668f27bf1ccaa8d5abd617f5 100644 (file)
@@ -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);
 }
index 9eff588758f5e827953370a8a4b1427ecda2c1ff..de95b1f34c5983a98eead3515579a251cd809c4d 100644 (file)
@@ -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);
 }
index 0d0bc8286ac08bcf1106aa211f2bb36bbf6beadd..e87362d88600ac936a8a971870ba7a508a8f1bd3 100644 (file)
@@ -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);
 }
index c1d38d38936e9c5c4c6f500e50ffe6fcccaebe62..0582d71c6576d8baff16145a2aa7663456f67c79 100644 (file)
@@ -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);
 }
index 460954df9e40e11d18c0cc319b7463bcb71aabe6..bd4c44ba650c4cf8cd721daecc933fe8aa108aed 100644 (file)
@@ -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);
 }
index 999f12707c85c3108609e475532e86b957e5aafa..8f8ec1f2a73a6bc8b024f6fc42ca270eb74d9d29 100644 (file)
@@ -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);
 }
index 5da2cef9964793fa872dc89c17746adab1e3a187..01e7aacc413e2fb0bb563c2a0a94b58ead66a3d4 100644 (file)
@@ -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);
        }
index 4e529aee461e2da1e8bc7181d8e159beecff17ec..3535967610f975de6a73dce8f2a08b6321236327 100644 (file)
@@ -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__);