[PATCH] libtraceevent utest: exit test if mmap fails
Sudip Mukherjee <[email protected]> Tue, 26 May 2026 19:42:19 +0100
| Newsgroups | org.kernel.vger.linux-trace-devel |
|---|---|
| Message-ID | <[email protected]> |
CU_TEST() continues execution even if the test fails. It just records that the test has failed and moves on. So, when libtraceevent is built in a chroot, it can open /sys/kernel/btf/vmlinux but fails in mmap stage and since CU_TEST() does not stop so we get a segfault when tep_load_btf() tries to use the mapped buffer. Signed-off-by: Sudip Mukherjee <[email protected]> --- utest/traceevent-utest.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/utest/traceevent-utest.c b/utest/traceevent-utest.c index b62411c..547619d 100644 --- a/utest/traceevent-utest.c +++ b/utest/traceevent-utest.c @@ -397,6 +397,12 @@ static void test_btf_read(void) CU_TEST(fstat(fd, &st) == 0); buf = mmap(NULL, st.st_size, PROT_READ, MAP_PRIVATE, fd, 0); + if (buf == MAP_FAILED) { + printf("kernel has btf, but it might be a chroot and mmap has failed\n"); + close(fd); + return; + } + CU_TEST(buf != MAP_FAILED); CU_TEST(tep_load_btf(test_tep, buf, st.st_size) == 0); -- 2.39.5