kdbus-test: -l option
authorKonrad Lipinski <konrad.l@samsung.com>
Wed, 9 Nov 2016 08:40:25 +0000 (09:40 +0100)
committerAdrian Szyndela <adrian.s@samsung.com>
Wed, 7 Aug 2019 14:22:43 +0000 (16:22 +0200)
tools/testing/selftests/kdbus/kdbus-test.c

index e36c53f025934e8ccd322f7be2d5a564791ec5fc..d9888a1e052ad9c6eb7be091cb6047bd98051944 100644 (file)
@@ -432,7 +432,7 @@ static void print_test_result(int ret)
        }
 }
 
-static wur int start_all_tests(struct kdbus_test_args *kdbus_args)
+static wur int start_all_tests(struct kdbus_test_args const *kdbus_args)
 {
        int ret;
        unsigned int fail_cnt = 0;
@@ -494,7 +494,7 @@ static wur int start_all_tests(struct kdbus_test_args *kdbus_args)
        return fail_cnt > 0 ? TEST_ERR : TEST_OK;
 }
 
-static wur int start_one_test(struct kdbus_test_args *kdbus_args)
+static wur int start_one_test(struct kdbus_test_args const *kdbus_args)
 {
        int i, ret;
        bool test_found = false;
@@ -576,7 +576,7 @@ static void usage(const char *argv0)
        exit(EXIT_FAILURE);
 }
 
-void print_kdbus_test_args(struct kdbus_test_args *args)
+void print_kdbus_test_args(struct kdbus_test_args const *args)
 {
        if (args->userns || args->pidns || args->mntns)
                print("# Starting tests in new %s%s%s namespaces%s\n",
@@ -609,7 +609,7 @@ void print_metadata_support(void)
                print("# Starting tests with full metadata support\n");
 }
 
-wur int run_tests(struct kdbus_test_args *kdbus_args)
+wur int run_tests(struct kdbus_test_args const *kdbus_args)
 {
        int ret;
        static char control[4096];
@@ -637,7 +637,7 @@ wur int run_tests(struct kdbus_test_args *kdbus_args)
 
 static void nop_handler(int sig) { UNUSED(sig); }
 
-static wur int test_prepare_mounts(struct kdbus_test_args *kdbus_args)
+static wur int test_prepare_mounts(struct kdbus_test_args const *kdbus_args)
 {
        int ret;
        char kdbusfs[64] = {'\0'};
@@ -675,7 +675,7 @@ static wur int test_prepare_mounts(struct kdbus_test_args *kdbus_args)
        return 0;
 }
 
-wur int run_tests_in_namespaces(struct kdbus_test_args *kdbus_args)
+wur int run_tests_in_namespaces(struct kdbus_test_args const *kdbus_args)
 {
        int ret;
        int efd = -1;
@@ -776,11 +776,10 @@ wur int run_tests_in_namespaces(struct kdbus_test_args *kdbus_args)
        return TEST_OK;
 }
 
-wur int start_tests(struct kdbus_test_args *kdbus_args)
+wur int start_tests(struct kdbus_test_args const *kdbus_args)
 {
        int ret;
        bool namespaces;
-       static char fspath[4096];
 
        namespaces = (kdbus_args->mntns || kdbus_args->pidns ||
                      kdbus_args->userns);
@@ -806,16 +805,6 @@ wur int start_tests(struct kdbus_test_args *kdbus_args)
        print_kdbus_test_args(kdbus_args);
        print_metadata_support();
 
-       /* setup kdbus paths */
-       if (!kdbus_args->module)
-               kdbus_args->module = "kdbus";
-
-       if (!kdbus_args->root) {
-               snprintf(fspath, sizeof(fspath), "/sys/fs/%s",
-                        kdbus_args->module);
-               kdbus_args->root = fspath;
-       }
-
        /* Start tests */
        if (namespaces)
                ret = run_tests_in_namespaces(kdbus_args);
@@ -828,7 +817,8 @@ wur int start_tests(struct kdbus_test_args *kdbus_args)
 wur int main(int argc, char *argv[])
 {
        int t, ret = 0;
-       struct kdbus_test_args *kdbus_args;
+       struct kdbus_test_args kdbus_args;
+       static char fspath[4096];
        enum {
                ARG_MNTNS = 0x100,
                ARG_PIDNS,
@@ -837,13 +827,8 @@ wur int main(int argc, char *argv[])
                ARG_GIDMAP,
        };
 
-       kdbus_args = alloc(sizeof(*kdbus_args));
-       if (!kdbus_args) {
-               print("unable to alloc() kdbus_args\n");
-               return EXIT_FAILURE;
-       }
-
-       memset(kdbus_args, 0, sizeof(*kdbus_args));
+       memset(&kdbus_args, 0, sizeof(kdbus_args));
+       kdbus_args.module = "kdbus";
 
        static const struct option options[] = {
                { "loop",       no_argument,            NULL, 'x' },
@@ -853,6 +838,7 @@ wur int main(int argc, char *argv[])
                { "bus",        required_argument,      NULL, 'b' },
                { "wait",       required_argument,      NULL, 'w' },
                { "fork",       no_argument,            NULL, 'f' },
+               { "list",       no_argument,            NULL, 'l' },
                { "module",     required_argument,      NULL, 'm' },
                { "tap",        no_argument,            NULL, 'a' },
                { "mntns",      no_argument,            NULL, ARG_MNTNS },
@@ -865,58 +851,69 @@ wur int main(int argc, char *argv[])
 
        srand(time(NULL));
 
-       while ((t = getopt_long(argc, argv, "hxfm:r:t:b:w:a", options, NULL)) >= 0) {
+       while ((t = getopt_long(argc, argv, "hxfm:r:t:b:w:a:l", options, NULL)) >= 0) {
                switch (t) {
                case 'x':
-                       kdbus_args->loop = 1;
+                       kdbus_args.loop = 1;
                        break;
 
                case 'm':
-                       kdbus_args->module = optarg;
+                       kdbus_args.module = optarg;
                        break;
 
                case 'r':
-                       kdbus_args->root = optarg;
+                       kdbus_args.root = optarg;
                        break;
 
                case 't':
-                       kdbus_args->test = optarg;
+                       kdbus_args.test = optarg;
                        break;
 
                case 'b':
-                       kdbus_args->busname = optarg;
+                       kdbus_args.busname = optarg;
                        break;
 
                case 'w':
-                       kdbus_args->wait = strtol(optarg, NULL, 10);
+                       kdbus_args.wait = strtol(optarg, NULL, 10);
                        break;
 
                case 'f':
-                       kdbus_args->fork = 1;
+                       kdbus_args.fork = 1;
                        break;
 
                case 'a':
-                       kdbus_args->tap_output = 1;
+                       kdbus_args.tap_output = 1;
                        break;
 
+               case 'l':
+                       {
+                               int i = 0;
+                               do {
+                                       const struct kdbus_test *t = &tests[i];
+                                       printf("%s;%s\n", t->name, t->desc);
+                               } while (++i < TABSIZE(tests)-1);
+
+                       }
+                       return 0;
+
                case ARG_MNTNS:
-                       kdbus_args->mntns = true;
+                       kdbus_args.mntns = true;
                        break;
 
                case ARG_PIDNS:
-                       kdbus_args->pidns = true;
+                       kdbus_args.pidns = true;
                        break;
 
                case ARG_USERNS:
-                       kdbus_args->userns = true;
+                       kdbus_args.userns = true;
                        break;
 
                case ARG_UIDMAP:
-                       kdbus_args->uid_map = optarg;
+                       kdbus_args.uid_map = optarg;
                        break;
 
                case ARG_GIDMAP:
-                       kdbus_args->gid_map = optarg;
+                       kdbus_args.gid_map = optarg;
                        break;
 
                default:
@@ -925,11 +922,15 @@ wur int main(int argc, char *argv[])
                }
        }
 
-       ret = start_tests(kdbus_args);
+       if (!kdbus_args.root) {
+               snprintf(fspath, sizeof(fspath), "/sys/fs/%s",
+                        kdbus_args.module);
+               kdbus_args.root = fspath;
+       }
+
+       ret = start_tests(&kdbus_args);
        if (ret == TEST_ERR)
                return EXIT_FAILURE;
 
-       free(kdbus_args);
-
        return 0;
 }