From: Konrad Lipinski Date: Wed, 9 Nov 2016 08:40:25 +0000 (+0100) Subject: kdbus-test: -l option X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f8e02eeea96133049e76d2a4f213e0216a2dd42e;p=platform%2Fkernel%2Flinux-exynos.git kdbus-test: -l option --- diff --git a/tools/testing/selftests/kdbus/kdbus-test.c b/tools/testing/selftests/kdbus/kdbus-test.c index e36c53f02593..d9888a1e052a 100644 --- a/tools/testing/selftests/kdbus/kdbus-test.c +++ b/tools/testing/selftests/kdbus/kdbus-test.c @@ -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; }