* [PATCH v2 0/2] selftests/bpf: Fix d_path check_mem_access and drop CHECK()
@ 2026-11-06 3:37 ` Jonathan Bastari Thamrin via B4 Relay
0 siblings, 0 replies; 6+ messages in thread
From: Jonathan Bastari Thamrin @ 2026-11-06 3:37 UTC (permalink / raw)
To: Andrii Nakryiko, Eduard Zingerman, Ihor Solodrai,
Alexei Starovoitov, Daniel Borkmann, Kumar Kartikeya Dwivedi,
Martin KaFai Lau, Song Liu, Yonghong Song, Jiri Olsa,
Emil Tsalapatis, Shuah Khan
Cc: bpf, linux-kselftest, linux-kernel, Jonathan Bastari Thamrin
Patch 1 replaces the deprecated CHECK() calls with ASSERT_*().
Patch 2 fixes check_mem_access, which creates a temp file in
/dev/shm that isn't mounted under vmtest.sh in local runs. This
causes mkstemp() to fail with ENOENT. mkstemp() is replaced with
memfd_create() as it gives a shmem-backed file with no mount
needed while still reaching vfs_fallocate.
Changes in v2:
- Added patch 1 converting CHECK() to ASSERT_*() (Andrii)
- Link to v1: https://lore.kernel.org/bpf/20261102-d-path-memfd-v1-1-692a5664b36d@gmail.com/
---
Jonathan Bastari Thamrin (2):
selftests/bpf: Replace d_path CHECK() with ASSERT_*()
selftests/bpf: Use memfd_create instead of mkstemp in d_path
tools/testing/selftests/bpf/prog_tests/d_path.c | 74 +++++++++----------------
1 file changed, 26 insertions(+), 48 deletions(-)
---
base-commit: 87eddc739d20b466881e4c5cdd2ddf465a5debfd
change-id: 20261106-dpath-memfd-ae568d05895f
Best regards,
--
Jonathan Bastari Thamrin <thamrinjonathan@gmail.com>
^ permalink raw reply [flat|nested] 6+ messages in thread* [PATCH v2 0/2] selftests/bpf: Fix d_path check_mem_access and drop CHECK() @ 2026-11-06 3:37 ` Jonathan Bastari Thamrin via B4 Relay 0 siblings, 0 replies; 6+ messages in thread From: Jonathan Bastari Thamrin via B4 Relay @ 2026-11-06 3:37 UTC (permalink / raw) To: Andrii Nakryiko, Eduard Zingerman, Ihor Solodrai, Alexei Starovoitov, Daniel Borkmann, Kumar Kartikeya Dwivedi, Martin KaFai Lau, Song Liu, Yonghong Song, Jiri Olsa, Emil Tsalapatis, Shuah Khan Cc: bpf, linux-kselftest, linux-kernel, Jonathan Bastari Thamrin Patch 1 replaces the deprecated CHECK() calls with ASSERT_*(). Patch 2 fixes check_mem_access, which creates a temp file in /dev/shm that isn't mounted under vmtest.sh in local runs. This causes mkstemp() to fail with ENOENT. mkstemp() is replaced with memfd_create() as it gives a shmem-backed file with no mount needed while still reaching vfs_fallocate. Changes in v2: - Added patch 1 converting CHECK() to ASSERT_*() (Andrii) - Link to v1: https://lore.kernel.org/bpf/20261102-d-path-memfd-v1-1-692a5664b36d@gmail.com/ --- Jonathan Bastari Thamrin (2): selftests/bpf: Replace d_path CHECK() with ASSERT_*() selftests/bpf: Use memfd_create instead of mkstemp in d_path tools/testing/selftests/bpf/prog_tests/d_path.c | 74 +++++++++---------------- 1 file changed, 26 insertions(+), 48 deletions(-) --- base-commit: 87eddc739d20b466881e4c5cdd2ddf465a5debfd change-id: 20261106-dpath-memfd-ae568d05895f Best regards, -- Jonathan Bastari Thamrin <thamrinjonathan@gmail.com> ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v2 1/2] selftests/bpf: Replace d_path CHECK() with ASSERT_*() 2026-11-06 3:37 ` Jonathan Bastari Thamrin via B4 Relay @ 2026-11-06 3:37 ` Jonathan Bastari Thamrin via B4 Relay -1 siblings, 0 replies; 6+ messages in thread From: Jonathan Bastari Thamrin @ 2026-11-06 3:37 UTC (permalink / raw) To: Andrii Nakryiko, Eduard Zingerman, Ihor Solodrai, Alexei Starovoitov, Daniel Borkmann, Kumar Kartikeya Dwivedi, Martin KaFai Lau, Song Liu, Yonghong Song, Jiri Olsa, Emil Tsalapatis, Shuah Khan Cc: bpf, linux-kselftest, linux-kernel, Jonathan Bastari Thamrin 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 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v2 1/2] selftests/bpf: Replace d_path CHECK() with ASSERT_*() @ 2026-11-06 3:37 ` Jonathan Bastari Thamrin via B4 Relay 0 siblings, 0 replies; 6+ messages in thread From: Jonathan Bastari Thamrin via B4 Relay @ 2026-11-06 3:37 UTC (permalink / raw) To: Andrii Nakryiko, Eduard Zingerman, Ihor Solodrai, Alexei Starovoitov, Daniel Borkmann, Kumar Kartikeya Dwivedi, Martin KaFai Lau, Song Liu, Yonghong Song, Jiri Olsa, Emil Tsalapatis, Shuah Khan Cc: bpf, linux-kselftest, linux-kernel, Jonathan Bastari Thamrin 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 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v2 2/2] selftests/bpf: Use memfd_create instead of mkstemp in d_path 2026-11-06 3:37 ` Jonathan Bastari Thamrin via B4 Relay @ 2026-11-06 3:37 ` Jonathan Bastari Thamrin via B4 Relay -1 siblings, 0 replies; 6+ messages in thread From: Jonathan Bastari Thamrin @ 2026-11-06 3:37 UTC (permalink / raw) To: Andrii Nakryiko, Eduard Zingerman, Ihor Solodrai, Alexei Starovoitov, Daniel Borkmann, Kumar Kartikeya Dwivedi, Martin KaFai Lau, Song Liu, Yonghong Song, Jiri Olsa, Emil Tsalapatis, Shuah Khan Cc: bpf, linux-kselftest, linux-kernel, Jonathan Bastari Thamrin check_mem_access currently creates a temp file in /dev/shm, which isn't mounted under vmtest.sh in local runs. This causes mkstemp to fail with ENOENT. The fix is similar to commit 47687a29b2c3 ("selftests/bpf: Use memfd_create instead of shm_open in cgroup_iter_memcg") where memfd_create gives a shmem-backed file with no mount needed while still reaching vfs_fallocate. Signed-off-by: Jonathan Bastari Thamrin <thamrinjonathan@gmail.com> --- tools/testing/selftests/bpf/prog_tests/d_path.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/d_path.c b/tools/testing/selftests/bpf/prog_tests/d_path.c index b7998606aa98..ec73291ef060 100644 --- a/tools/testing/selftests/bpf/prog_tests/d_path.c +++ b/tools/testing/selftests/bpf/prog_tests/d_path.c @@ -4,6 +4,7 @@ #include <sys/stat.h> #include <linux/sched.h> #include <sys/syscall.h> +#include <sys/mman.h> #define MAX_PATH_LEN 128 #define MAX_FILES 7 @@ -201,7 +202,6 @@ static void test_d_path_check_types(void) static void test_d_path_mem_access(void) { int localfd = -1; - char path_template[] = "/dev/shm/d_path_loadgen.XXXXXX"; struct test_d_path__bss *bss; struct test_d_path *skel; @@ -211,13 +211,12 @@ static void test_d_path_mem_access(void) bss = skel->bss; - localfd = mkstemp(path_template); - if (!ASSERT_OK_FD(localfd, "mkstemp")) + localfd = memfd_create("d_path_loadgen", 0); + if (!ASSERT_OK_FD(localfd, "memfd_create")) goto cleanup; if (!ASSERT_OK(fallocate(localfd, 0, 0, 1024), "fallocate")) goto cleanup; - remove(path_template); if (!ASSERT_TRUE(bss->path_match_fallocate, "fallocate path")) goto cleanup; -- 2.56.0 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v2 2/2] selftests/bpf: Use memfd_create instead of mkstemp in d_path @ 2026-11-06 3:37 ` Jonathan Bastari Thamrin via B4 Relay 0 siblings, 0 replies; 6+ messages in thread From: Jonathan Bastari Thamrin via B4 Relay @ 2026-11-06 3:37 UTC (permalink / raw) To: Andrii Nakryiko, Eduard Zingerman, Ihor Solodrai, Alexei Starovoitov, Daniel Borkmann, Kumar Kartikeya Dwivedi, Martin KaFai Lau, Song Liu, Yonghong Song, Jiri Olsa, Emil Tsalapatis, Shuah Khan Cc: bpf, linux-kselftest, linux-kernel, Jonathan Bastari Thamrin From: Jonathan Bastari Thamrin <thamrinjonathan@gmail.com> check_mem_access currently creates a temp file in /dev/shm, which isn't mounted under vmtest.sh in local runs. This causes mkstemp to fail with ENOENT. The fix is similar to commit 47687a29b2c3 ("selftests/bpf: Use memfd_create instead of shm_open in cgroup_iter_memcg") where memfd_create gives a shmem-backed file with no mount needed while still reaching vfs_fallocate. Signed-off-by: Jonathan Bastari Thamrin <thamrinjonathan@gmail.com> --- tools/testing/selftests/bpf/prog_tests/d_path.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/d_path.c b/tools/testing/selftests/bpf/prog_tests/d_path.c index b7998606aa98..ec73291ef060 100644 --- a/tools/testing/selftests/bpf/prog_tests/d_path.c +++ b/tools/testing/selftests/bpf/prog_tests/d_path.c @@ -4,6 +4,7 @@ #include <sys/stat.h> #include <linux/sched.h> #include <sys/syscall.h> +#include <sys/mman.h> #define MAX_PATH_LEN 128 #define MAX_FILES 7 @@ -201,7 +202,6 @@ static void test_d_path_check_types(void) static void test_d_path_mem_access(void) { int localfd = -1; - char path_template[] = "/dev/shm/d_path_loadgen.XXXXXX"; struct test_d_path__bss *bss; struct test_d_path *skel; @@ -211,13 +211,12 @@ static void test_d_path_mem_access(void) bss = skel->bss; - localfd = mkstemp(path_template); - if (!ASSERT_OK_FD(localfd, "mkstemp")) + localfd = memfd_create("d_path_loadgen", 0); + if (!ASSERT_OK_FD(localfd, "memfd_create")) goto cleanup; if (!ASSERT_OK(fallocate(localfd, 0, 0, 1024), "fallocate")) goto cleanup; - remove(path_template); if (!ASSERT_TRUE(bss->path_match_fallocate, "fallocate path")) goto cleanup; -- 2.56.0 ^ permalink raw reply related [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-11-06 3:37 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-11-06 3:37 [PATCH v2 0/2] selftests/bpf: Fix d_path check_mem_access and drop CHECK() Jonathan Bastari Thamrin 2026-11-06 3:37 ` Jonathan Bastari Thamrin via B4 Relay 2026-11-06 3:37 ` [PATCH v2 1/2] selftests/bpf: Replace d_path CHECK() with ASSERT_*() Jonathan Bastari Thamrin 2026-11-06 3:37 ` Jonathan Bastari Thamrin via B4 Relay 2026-11-06 3:37 ` [PATCH v2 2/2] selftests/bpf: Use memfd_create instead of mkstemp in d_path Jonathan Bastari Thamrin 2026-11-06 3:37 ` Jonathan Bastari Thamrin via B4 Relay
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.