From: Jonathan Bastari Thamrin via B4 Relay <devnull+thamrinjonathan.gmail.com@kernel.org>
To: Andrii Nakryiko <andrii@kernel.org>,
Eduard Zingerman <eddyz87@gmail.com>,
Ihor Solodrai <ihor.solodrai@linux.dev>,
Alexei Starovoitov <ast@kernel.org>,
Daniel Borkmann <daniel@iogearbox.net>,
Kumar Kartikeya Dwivedi <memxor@gmail.com>,
Martin KaFai Lau <martin.lau@linux.dev>,
Song Liu <song@kernel.org>,
Yonghong Song <yonghong.song@linux.dev>,
Jiri Olsa <jolsa@kernel.org>,
Emil Tsalapatis <emil@etsalapatis.com>,
Shuah Khan <shuah@kernel.org>
Cc: bpf@vger.kernel.org, linux-kselftest@vger.kernel.org,
linux-kernel@vger.kernel.org,
Jonathan Bastari Thamrin <thamrinjonathan@gmail.com>
Subject: [PATCH v2 1/2] selftests/bpf: Replace d_path CHECK() with ASSERT_*()
Date: Fri, 06 Nov 2026 10:37:08 +0700 [thread overview]
Message-ID: <20261106-dpath-memfd-v2-1-1dc0799b4aa6@gmail.com> (raw)
In-Reply-To: <20261106-dpath-memfd-v2-0-1dc0799b4aa6@gmail.com>
From: Jonathan Bastari Thamrin <thamrinjonathan@gmail.com>
The CHECK() macro is deprecated so each call is replaced with
ASSERT_*().
Suggested-by: Andrii Nakryiko <andrii@kernel.org>
Signed-off-by: Jonathan Bastari Thamrin <thamrinjonathan@gmail.com>
---
tools/testing/selftests/bpf/prog_tests/d_path.c | 69 +++++++++----------------
1 file changed, 24 insertions(+), 45 deletions(-)
diff --git a/tools/testing/selftests/bpf/prog_tests/d_path.c b/tools/testing/selftests/bpf/prog_tests/d_path.c
index 7665e1d28a64..b7998606aa98 100644
--- a/tools/testing/selftests/bpf/prog_tests/d_path.c
+++ b/tools/testing/selftests/bpf/prog_tests/d_path.c
@@ -23,8 +23,6 @@
#endif
#endif
-static int duration;
-
static struct {
__u32 cnt;
char paths[MAX_FILES][MAX_PATH_LEN];
@@ -55,48 +53,48 @@ static int trigger_fstat_events(pid_t pid)
int ret = -1;
/* unmountable pseudo-filesystems */
- if (CHECK(pipe(pipefd) < 0, "trigger", "pipe failed\n"))
+ if (!ASSERT_OK(pipe(pipefd), "pipe"))
return ret;
/* unmountable pseudo-filesystems */
sockfd = socket(AF_INET, SOCK_STREAM, 0);
- if (CHECK(sockfd < 0, "trigger", "socket failed\n"))
+ if (!ASSERT_OK_FD(sockfd, "socket"))
goto out_close;
/* mountable pseudo-filesystems */
procfd = open("/proc/self/comm", O_RDONLY);
- if (CHECK(procfd < 0, "trigger", "open /proc/self/comm failed\n"))
+ if (!ASSERT_OK_FD(procfd, "open /proc/self/comm"))
goto out_close;
devfd = open("/dev/urandom", O_RDONLY);
- if (CHECK(devfd < 0, "trigger", "open /dev/urandom failed\n"))
+ if (!ASSERT_OK_FD(devfd, "open /dev/urandom"))
goto out_close;
localfd = open("/tmp/d_path_loadgen.txt", O_CREAT | O_RDONLY, 0644);
- if (CHECK(localfd < 0, "trigger", "open /tmp/d_path_loadgen.txt failed\n"))
+ if (!ASSERT_OK_FD(localfd, "open /tmp/d_path_loadgen.txt"))
goto out_close;
/* bpf_d_path will return path with (deleted) */
remove("/tmp/d_path_loadgen.txt");
indicatorfd = open("/tmp/", O_PATH);
- if (CHECK(indicatorfd < 0, "trigger", "open /tmp/ failed\n"))
+ if (!ASSERT_OK_FD(indicatorfd, "open /tmp/"))
goto out_close;
ret = set_pathname(pipefd[0], pid);
- if (CHECK(ret < 0, "trigger", "set_pathname failed for pipe[0]\n"))
+ if (!ASSERT_GE(ret, 0, "set_pathname for pipe[0]"))
goto out_close;
ret = set_pathname(pipefd[1], pid);
- if (CHECK(ret < 0, "trigger", "set_pathname failed for pipe[1]\n"))
+ if (!ASSERT_GE(ret, 0, "set_pathname for pipe[1]"))
goto out_close;
ret = set_pathname(sockfd, pid);
- if (CHECK(ret < 0, "trigger", "set_pathname failed for socket\n"))
+ if (!ASSERT_GE(ret, 0, "set_pathname for socket"))
goto out_close;
ret = set_pathname(procfd, pid);
- if (CHECK(ret < 0, "trigger", "set_pathname failed for proc\n"))
+ if (!ASSERT_GE(ret, 0, "set_pathname for proc"))
goto out_close;
ret = set_pathname(devfd, pid);
- if (CHECK(ret < 0, "trigger", "set_pathname failed for dev\n"))
+ if (!ASSERT_GE(ret, 0, "set_pathname for dev"))
goto out_close;
ret = set_pathname(localfd, pid);
- if (CHECK(ret < 0, "trigger", "set_pathname failed for file\n"))
+ if (!ASSERT_GE(ret, 0, "set_pathname for file"))
goto out_close;
ret = set_pathname(indicatorfd, pid);
- if (CHECK(ret < 0, "trigger", "set_pathname failed for dir\n"))
+ if (!ASSERT_GE(ret, 0, "set_pathname for dir"))
goto out_close;
/* triggers vfs_getattr */
@@ -128,11 +126,11 @@ static void attach_and_load(struct test_d_path **skel)
int err;
*skel = test_d_path__open_and_load();
- if (CHECK(!*skel, "setup", "d_path skeleton failed\n"))
+ if (!ASSERT_OK_PTR(*skel, "d_path skeleton"))
goto cleanup;
err = test_d_path__attach(*skel);
- if (CHECK(err, "setup", "attach failed: %d\n", err))
+ if (!ASSERT_OK(err, "attach"))
goto cleanup;
(*skel)->bss->my_pid = getpid();
@@ -159,36 +157,18 @@ static void test_d_path_basic(void)
if (err < 0)
goto cleanup;
- if (CHECK(!bss->called_stat,
- "stat",
- "trampoline for security_inode_getattr was not called\n"))
+ if (!ASSERT_TRUE(bss->called_stat, "called_stat"))
goto cleanup;
- if (CHECK(!bss->called_close,
- "close",
- "trampoline for filp_close_sync was not called\n"))
+ if (!ASSERT_TRUE(bss->called_close, "called_close"))
goto cleanup;
for (int i = 0; i < MAX_FILES; i++) {
- CHECK(strncmp(src.paths[i], bss->paths_stat[i], MAX_PATH_LEN),
- "check",
- "failed to get stat path[%d]: %s vs %s\n",
- i, src.paths[i], bss->paths_stat[i]);
- CHECK(strncmp(src.paths[i], bss->paths_close[i], MAX_PATH_LEN),
- "check",
- "failed to get close path[%d]: %s vs %s\n",
- i, src.paths[i], bss->paths_close[i]);
+ ASSERT_STRNEQ(bss->paths_stat[i], src.paths[i], MAX_PATH_LEN, "stat path");
+ ASSERT_STRNEQ(bss->paths_close[i], src.paths[i], MAX_PATH_LEN, "close path");
/* The d_path helper returns size plus NUL char, hence + 1 */
- CHECK(bss->rets_stat[i] != strlen(bss->paths_stat[i]) + 1,
- "check",
- "failed to match stat return [%d]: %d vs %zd [%s]\n",
- i, bss->rets_stat[i], strlen(bss->paths_stat[i]) + 1,
- bss->paths_stat[i]);
- CHECK(bss->rets_close[i] != strlen(bss->paths_stat[i]) + 1,
- "check",
- "failed to match stat return [%d]: %d vs %zd [%s]\n",
- i, bss->rets_close[i], strlen(bss->paths_close[i]) + 1,
- bss->paths_stat[i]);
+ ASSERT_EQ(bss->rets_stat[i], strlen(bss->paths_stat[i]) + 1, "stat return");
+ ASSERT_EQ(bss->rets_close[i], strlen(bss->paths_stat[i]) + 1, "close return");
}
cleanup:
@@ -232,15 +212,14 @@ static void test_d_path_mem_access(void)
bss = skel->bss;
localfd = mkstemp(path_template);
- if (CHECK(localfd < 0, "trigger", "mkstemp failed\n"))
+ if (!ASSERT_OK_FD(localfd, "mkstemp"))
goto cleanup;
- if (CHECK(fallocate(localfd, 0, 0, 1024) < 0, "trigger", "fallocate failed\n"))
+ if (!ASSERT_OK(fallocate(localfd, 0, 0, 1024), "fallocate"))
goto cleanup;
remove(path_template);
- if (CHECK(!bss->path_match_fallocate, "check",
- "failed to read fallocate path"))
+ if (!ASSERT_TRUE(bss->path_match_fallocate, "fallocate path"))
goto cleanup;
cleanup:
--
2.56.0
next prev parent reply other threads:[~2026-11-06 3:37 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-06 3:37 [PATCH v2 0/2] selftests/bpf: Fix d_path check_mem_access and drop CHECK() Jonathan Bastari Thamrin via B4 Relay
2026-11-06 3:37 ` Jonathan Bastari Thamrin via B4 Relay [this message]
2026-11-06 3:37 ` [PATCH v2 2/2] selftests/bpf: Use memfd_create instead of mkstemp in d_path Jonathan Bastari Thamrin via B4 Relay
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261106-dpath-memfd-v2-1-1dc0799b4aa6@gmail.com \
--to=devnull+thamrinjonathan.gmail.com@kernel.org \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=eddyz87@gmail.com \
--cc=emil@etsalapatis.com \
--cc=ihor.solodrai@linux.dev \
--cc=jolsa@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=martin.lau@linux.dev \
--cc=memxor@gmail.com \
--cc=shuah@kernel.org \
--cc=song@kernel.org \
--cc=thamrinjonathan@gmail.com \
--cc=yonghong.song@linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®