Message ID | 20230619051715.2306134-1-yosryahmed@google.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | selftests/cgroup: allow running a specific test with test_memcontrol | expand |
On Sun, Jun 18, 2023 at 10:17 PM Yosry Ahmed <yosryahmed@google.com> wrote: > > It is handy during testing and/or debugging to be able to run a single > test from test_memcontrol. Allow passing in a test name through a > command line argument (e.g. ./test_memcontrol -t test_memcg_recharge). > > Change-Id: I0e0d74d81fdd9d997987389085a816715160467f I missed removing this gerrit tag, sorry. Will fix it if/when I respin. > Signed-off-by: Yosry Ahmed <yosryahmed@google.com> > --- > .../selftests/cgroup/test_memcontrol.c | 30 +++++++++++++++++++ > 1 file changed, 30 insertions(+) > > diff --git a/tools/testing/selftests/cgroup/test_memcontrol.c b/tools/testing/selftests/cgroup/test_memcontrol.c > index a2a90f4bfe9f..d8f8a13bc6c4 100644 > --- a/tools/testing/selftests/cgroup/test_memcontrol.c > +++ b/tools/testing/selftests/cgroup/test_memcontrol.c > @@ -1308,9 +1308,36 @@ struct memcg_test { > > int main(int argc, char **argv) > { > + int opt; > char root[PATH_MAX]; > + int selected_test = -1; > int i, proc_status, ret = EXIT_SUCCESS; > > + while ((opt = getopt(argc, argv, "ht:")) != -1) { > + switch (opt) { > + case 't': > + for (i = 0; i < ARRAY_SIZE(tests); i++) { > + if (!strcmp(tests[i].name, optarg)) { > + selected_test = i; > + break; > + } > + } > + if (selected_test >= 0) > + break; > + fprintf(stderr, "test %s not found\n", optarg); > + return EXIT_FAILURE; > + case 'h': > + fprintf(stderr, > + "Usage: %s [-h] [-t name]\n" > + "\t-h print help\n" > + "\t-t name run specific test\n" > + , argv[0]); > + return ret; > + default: > + break; > + } > + } > + > if (cg_find_unified_root(root, sizeof(root))) > ksft_exit_skip("cgroup v2 isn't mounted\n"); > > @@ -1336,6 +1363,9 @@ int main(int argc, char **argv) > has_localevents = proc_status; > > for (i = 0; i < ARRAY_SIZE(tests); i++) { > + if (selected_test >= 0 && selected_test != i) > + continue; > + > switch (tests[i].fn(root)) { > case KSFT_PASS: > ksft_test_result_pass("%s\n", tests[i].name); > -- > 2.41.0.162.gfafddb0af9-goog >
diff --git a/tools/testing/selftests/cgroup/test_memcontrol.c b/tools/testing/selftests/cgroup/test_memcontrol.c index a2a90f4bfe9f..d8f8a13bc6c4 100644 --- a/tools/testing/selftests/cgroup/test_memcontrol.c +++ b/tools/testing/selftests/cgroup/test_memcontrol.c @@ -1308,9 +1308,36 @@ struct memcg_test { int main(int argc, char **argv) { + int opt; char root[PATH_MAX]; + int selected_test = -1; int i, proc_status, ret = EXIT_SUCCESS; + while ((opt = getopt(argc, argv, "ht:")) != -1) { + switch (opt) { + case 't': + for (i = 0; i < ARRAY_SIZE(tests); i++) { + if (!strcmp(tests[i].name, optarg)) { + selected_test = i; + break; + } + } + if (selected_test >= 0) + break; + fprintf(stderr, "test %s not found\n", optarg); + return EXIT_FAILURE; + case 'h': + fprintf(stderr, + "Usage: %s [-h] [-t name]\n" + "\t-h print help\n" + "\t-t name run specific test\n" + , argv[0]); + return ret; + default: + break; + } + } + if (cg_find_unified_root(root, sizeof(root))) ksft_exit_skip("cgroup v2 isn't mounted\n"); @@ -1336,6 +1363,9 @@ int main(int argc, char **argv) has_localevents = proc_status; for (i = 0; i < ARRAY_SIZE(tests); i++) { + if (selected_test >= 0 && selected_test != i) + continue; + switch (tests[i].fn(root)) { case KSFT_PASS: ksft_test_result_pass("%s\n", tests[i].name);
It is handy during testing and/or debugging to be able to run a single test from test_memcontrol. Allow passing in a test name through a command line argument (e.g. ./test_memcontrol -t test_memcg_recharge). Change-Id: I0e0d74d81fdd9d997987389085a816715160467f Signed-off-by: Yosry Ahmed <yosryahmed@google.com> --- .../selftests/cgroup/test_memcontrol.c | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+)