[PATCH 01/13] tst_test: Add may_kmemleak flag and annotate tests
Cyril Hrubis <[email protected]>
| Newsgroups | gmane.linux.ltp |
|---|---|
| Message-ID | <[email protected]> |
This information was so far recoded only in the comment in the cve runtest file. Move it to the test so that it appears in the metadata. Signed-off-by: Cyril Hrubis <[email protected]> --- include/tst_test.h | 6 +++++- metadata/metaparse.c | 1 + testcases/cve/cve-2022-4378.c | 1 + testcases/cve/cve-2025-21756.c | 1 + testcases/cve/cve-2025-38236.c | 1 + testcases/kernel/crypto/af_alg08.c | 1 + testcases/kernel/syscalls/fsconfig/fsconfig03.c | 1 + testcases/kernel/syscalls/io_uring/io_uring04.c | 1 + .../kernel/syscalls/perf_event_open/perf_event_open03.c | 1 + testcases/network/sockets/xfrm01.c | 1 + testcases/network/sockets/xfrm02.c | 1 + testcases/network/sockets/xfrm03.c | 1 + 12 files changed, 16 insertions(+), 1 deletion(-) diff --git a/include/tst_test.h b/include/tst_test.h index c69362485..4afe4cbe0 100644 --- a/include/tst_test.h +++ b/include/tst_test.h @@ -353,6 +353,10 @@ struct tst_fs { * needed for tests that need to create device files since tmpfs * at /tmp is usually mounted with 'nodev' option. * + * @may_kmemleak: If set the test may cause a kernel memory leak. If such test + * fails it's a good idea to reboot before continuing with + * subsequent testcases. + * * @restore_wallclock: Saves wall clock at the start of the test and restores * it at the end with the help of monotonic timers. * Testcases that modify system wallclock use this to @@ -575,7 +579,7 @@ struct tst_fs { unsigned int skip_in_lockdown:1; unsigned int skip_in_secureboot:1; unsigned int skip_in_compat:1; - + unsigned int may_kmemleak:1; int needs_abi_bits; diff --git a/metadata/metaparse.c b/metadata/metaparse.c index a0f94511d..532cbe405 100644 --- a/metadata/metaparse.c +++ b/metadata/metaparse.c @@ -1141,6 +1141,7 @@ static struct typemap tst_test_typemap[] = { {.id = "needs_hugetlbfs", .type = DATA_BOOL}, {.id = "needs_cgroup_nsdelegate", .type = DATA_BOOL}, {.id = "needs_cmds", .child = needs_cmds_typemap}, + {.id = "may_kmemleak", .type = DATA_BOOL}, {} }; diff --git a/testcases/cve/cve-2022-4378.c b/testcases/cve/cve-2022-4378.c index 1cb8ea76c..8213d1b20 100644 --- a/testcases/cve/cve-2022-4378.c +++ b/testcases/cve/cve-2022-4378.c @@ -86,6 +86,7 @@ static struct tst_test test = { .tcnt = ARRAY_SIZE(testcase_list), .setup = setup, .cleanup = cleanup, + .may_kmemleak = 1, .taint_check = TST_TAINT_W | TST_TAINT_D, .needs_kconfigs = (const char *[]) { "CONFIG_USER_NS=y", diff --git a/testcases/cve/cve-2025-21756.c b/testcases/cve/cve-2025-21756.c index 80fb84c47..edc6b2aa5 100644 --- a/testcases/cve/cve-2025-21756.c +++ b/testcases/cve/cve-2025-21756.c @@ -87,6 +87,7 @@ static void run(void) static struct tst_test test = { .test_all = run, .taint_check = TST_TAINT_W | TST_TAINT_D, + .may_kmemleak = 1, .tags = (const struct tst_tag[]) { {"linux-git", "fcdd2242c023"}, {"CVE", "2025-21756"}, diff --git a/testcases/cve/cve-2025-38236.c b/testcases/cve/cve-2025-38236.c index 16582fe64..f6199c06b 100644 --- a/testcases/cve/cve-2025-38236.c +++ b/testcases/cve/cve-2025-38236.c @@ -88,6 +88,7 @@ static struct tst_test test = { .test_all = run, .setup = setup, .cleanup = cleanup, + .may_kmemleak = 1, .needs_kconfigs = (const char *[]) { "CONFIG_AF_UNIX_OOB=y", NULL diff --git a/testcases/kernel/crypto/af_alg08.c b/testcases/kernel/crypto/af_alg08.c index 937ab1758..2de7aba97 100644 --- a/testcases/kernel/crypto/af_alg08.c +++ b/testcases/kernel/crypto/af_alg08.c @@ -159,6 +159,7 @@ static struct tst_test test = { .test_all = run, .cleanup = cleanup, .needs_tmpdir = 1, + .may_kmemleak = 1, .tags = (const struct tst_tag[]) { {"linux-git", "a664bf3d603d"}, {"CVE", "2026-31431"}, diff --git a/testcases/kernel/syscalls/fsconfig/fsconfig03.c b/testcases/kernel/syscalls/fsconfig/fsconfig03.c index 43fd4c4a8..68f073836 100644 --- a/testcases/kernel/syscalls/fsconfig/fsconfig03.c +++ b/testcases/kernel/syscalls/fsconfig/fsconfig03.c @@ -88,6 +88,7 @@ static struct tst_test test = { .format_device = 1, .mntpoint = MNTPOINT, .all_filesystems = 1, + .may_kmemleak = 1, .taint_check = TST_TAINT_W | TST_TAINT_D, .skip_filesystems = (const char *const []){"fuse", NULL}, .tags = (const struct tst_tag[]) { diff --git a/testcases/kernel/syscalls/io_uring/io_uring04.c b/testcases/kernel/syscalls/io_uring/io_uring04.c index 026caf334..f3b44749e 100644 --- a/testcases/kernel/syscalls/io_uring/io_uring04.c +++ b/testcases/kernel/syscalls/io_uring/io_uring04.c @@ -344,6 +344,7 @@ static struct tst_test test = { .timeout = 60, .forks_child = 1, .taint_check = TST_TAINT_W | TST_TAINT_D, + .may_kmemleak = 1, .needs_kconfigs = (const char *[]) { "CONFIG_RDS", "CONFIG_RDS_TCP", diff --git a/testcases/kernel/syscalls/perf_event_open/perf_event_open03.c b/testcases/kernel/syscalls/perf_event_open/perf_event_open03.c index 389cc3511..cfd563d81 100644 --- a/testcases/kernel/syscalls/perf_event_open/perf_event_open03.c +++ b/testcases/kernel/syscalls/perf_event_open/perf_event_open03.c @@ -127,6 +127,7 @@ static struct tst_test test = { .setup = setup, .cleanup = cleanup, .needs_root = 1, + .may_kmemleak = 1, .runtime = 300, .tags = (const struct tst_tag[]) { {"linux-git", "7bdb157cdebb"}, diff --git a/testcases/network/sockets/xfrm01.c b/testcases/network/sockets/xfrm01.c index 2ca77c40f..33905f2a6 100644 --- a/testcases/network/sockets/xfrm01.c +++ b/testcases/network/sockets/xfrm01.c @@ -261,6 +261,7 @@ static struct tst_test test = { .setup = setup, .cleanup = cleanup, .needs_tmpdir = 1, + .may_kmemleak = 1, .needs_kconfigs = (const char *[]) { "CONFIG_USER_NS=y", "CONFIG_NET_NS=y", diff --git a/testcases/network/sockets/xfrm02.c b/testcases/network/sockets/xfrm02.c index cef9e7060..f99b7b53a 100644 --- a/testcases/network/sockets/xfrm02.c +++ b/testcases/network/sockets/xfrm02.c @@ -251,6 +251,7 @@ static struct tst_test test = { .cleanup = cleanup, .needs_tmpdir = 1, .forks_child = 1, + .may_kmemleak = 1, .needs_kconfigs = (const char *[]) { "CONFIG_USER_NS=y", "CONFIG_NET_NS=y", diff --git a/testcases/network/sockets/xfrm03.c b/testcases/network/sockets/xfrm03.c index 676c76e2b..2c83e3ae3 100644 --- a/testcases/network/sockets/xfrm03.c +++ b/testcases/network/sockets/xfrm03.c @@ -342,6 +342,7 @@ static struct tst_test test = { .cleanup = cleanup, .needs_tmpdir = 1, .forks_child = 1, + .may_kmemleak = 1, .needs_kconfigs = (const char *[]) { "CONFIG_USER_NS=y", "CONFIG_NET_NS=y", -- 2.53.0 -- Mailing list info: https://lists.linux.it/listinfo/ltp