[PATCH v2 1/2] selftests/bpf: Replace d_path CHECK() with ASSERT_*()
From: Jonathan Bastari Thamrin via B4 Relay
Date: Thu Nov 05 2026 - 22:37:54 EST
From: Jonathan Bastari Thamrin <thamrinjonathan@xxxxxxxxx>
The CHECK() macro is deprecated so each call is replaced with
ASSERT_*().
Suggested-by: Andrii Nakryiko <andrii@xxxxxxxxxx>
Signed-off-by: Jonathan Bastari Thamrin <thamrinjonathan@xxxxxxxxx>
---
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