Re: [PATCH bpf-next v2] selftests/bpf: Use snake_case for subtest descriptions in jit_insns_arena.c

From: Tiezhu Yang

Date: Mon Oct 19 2026 - 03:53:28 EST


On 2026/10/19 下午3:18, Tiezhu Yang wrote:
On 2026/10/19 下午2:47, Daniel Borkmann wrote:
On 10/19/26 6:01 AM, Tiezhu Yang wrote:
Normalize two inline assembly test descriptions in jit_insns_arena.c
from space-separated strings to snake_case.

It is done for consistency with other neighboring subtests registered
in test_jit_insns() (such as alu_imm, alu_reg, etc.). This also makes
it convenient to execute these subtests directly from the command line
without being forced to use shell quoting.

Otherwise, unquoted shell word-splitting causes test_progs to reject
the extra arguments before the filter code runs:

$ sudo ./test_progs -t jit_insns/arena access with zero offset
Usage: test_progs [OPTION...]
Try `test_progs --help' or `test_progs --usage' for more information.

$ sudo ./test_progs -t jit_insns/cast to a user address
Usage: test_progs [OPTION...]
Try `test_progs --help' or `test_progs --usage' for more information.

Signed-off-by: Tiezhu Yang <yangtiezhu@xxxxxxxxxxx>
Do these not work already?

   ./test_progs -t jit_insns/arena_zero_off
   ./test_progs -t jit_insns/cast_to_user

Yes, they work.

I misunderstood that the name is "cast to a user address" in the output
rather than "cast_to_user" before, there is difference between the
description and the name.

Something like this:

$ sudo ./test_progs -t jit_insns/cast_to_user
#191/2   jit_insns/cast to a user address:OK
#191     jit_insns:OK
#192     jit_insns_blinded:OK
Summary: 2/1 PASSED, 0 SKIPPED, 0/0 FAILED

Anyway, if this patch is not necessary, please ignore it.

By the way, IMO, it is better to remove the __description strings,
so that the test output style matches the actual program names like
other neighboring subtests. This prevents developers from being
misled into copying space-separated strings from the standard output.

What do you think about something like this?

diff --git a/tools/testing/selftests/bpf/progs/jit_insns_arena.c b/tools/testing/selftests/bpf/progs/jit_insns_arena.c
index b396d5aefb5a..95736eae2a58 100644
--- a/tools/testing/selftests/bpf/progs/jit_insns_arena.c
+++ b/tools/testing/selftests/bpf/progs/jit_insns_arena.c
@@ -34,7 +34,6 @@ struct {

#if defined(__BPF_FEATURE_ADDR_SPACE_CAST)
SEC("syscall")
-__description("arena access with zero offset")
__success __retval(0)
int arena_zero_off(void *ctx)
{
@@ -82,7 +81,6 @@ int arena_zero_off(void *ctx)
}

SEC("syscall")
-__description("cast to a user address")
__success __retval(0)
int cast_to_user(void *ctx)
{

The output is something like this:

$ sudo ./test_progs -t jit_insns/arena_zero_off | tail -3
#191/1 jit_insns/arena_zero_off:FAIL
#191 jit_insns:FAIL
Summary: 1/0 PASSED, 0 SKIPPED, 1/1 FAILED

$ sudo ./test_progs -t jit_insns/cast_to_user
#191/2 jit_insns/cast_to_user:OK
#191 jit_insns:OK
#192 jit_insns_blinded:OK
Summary: 2/1 PASSED, 0 SKIPPED, 0/0 FAILED

The main goal here is that if a test fails, developers can immediately
recognize the exact, actionable test name from the standard output and
rerun it without any confusion.

Thanks,
Tiezhu