On Wed Jan 21, 2026 at 9:50 PM CET, bot+bpf-ci wrote:
>> diff --git a/tools/testing/selftests/bpf/prog_tests/bpftool_metadata.c
>> b/tools/testing/selftests/bpf/prog_tests/bpftool_metadata.c
>> new file mode 100644
>> index 000000000000..b5598741a01c
>> --- /dev/null
>> +++ b/tools/testing/selftests/bpf/prog_tests/bpftool_metadata.c
>
> [ ... ]
>
>> +static void run_test(struct test_desc *test)
>> +{
>> + int ret;
>> + char cmd[MAX_BPFTOOL_CMD_LEN];
>> +
>> + ret = snprintf(cmd, MAX_BPFTOOL_CMD_LEN, "prog load %s %s",
>> + test->bpf_prog, test->bpffs_path);
>> + if (!ASSERT_GT(ret, 0, "format prog insert command"))
>> + return;
>> + ret = run_bpftool_command(cmd);
>> + if (!ASSERT_OK(ret, "load program"))
>> + return;
>> +
>> + /* Check output with default format */
>> + ret = snprintf(cmd, MAX_BPFTOOL_CMD_LEN, "prog show pinned %s",
>> + test->bpffs_path);
>> + if (!ASSERT_GT(ret, 0, "format pinned prog check command"))
>> + return;
>> + ret = get_bpftool_command_output(cmd, output,
>> + MAX_BPFTOOL_OUTPUT_LEN);
>> + if (ASSERT_OK(ret, "get program info")) {
>> + ret = check_metadata(output, test->expected_output,
>> + ARRAY_SIZE(test->expected_output));
>> + ASSERT_OK(ret, "find metadata");
>> + }
>> +
>> + /* Check output with json format */
>> + ret = snprintf(cmd, MAX_BPFTOOL_CMD_LEN, "prog -j show pinned %s",
>> + test->bpffs_path);
>> + if (!ASSERT_GT(ret, 0, "format pinned prog check command in json"))
>> + return;
>> + ret = get_bpftool_command_output(cmd, output,
>> + MAX_BPFTOOL_OUTPUT_LEN);
>> + if (ASSERT_OK(ret, "get program info in json")) {
>> + ret = check_metadata(output, test->expected_output_json,
>> + ARRAY_SIZE(test->expected_output_json));
>> + ASSERT_OK(ret, "find metadata in json");
>> + }
>> +
>> +}
>
> The original shell script also verified the map listing output:
>
>> diff --git a/tools/testing/selftests/bpf/test_bpftool_metadata.sh
>> b/tools/testing/selftests/bpf/test_bpftool_metadata.sh
>> deleted file mode 100755
>> index b5520692f41b..000000000000
>> --- a/tools/testing/selftests/bpf/test_bpftool_metadata.sh
>> +++ /dev/null
>
> [ ... ]
>
>> -bpftool prog --json | grep '"metadata":{"a":"foo","b":1}' > /dev/null
>> -
>> -bpftool map | grep 'metadata.rodata' > /dev/null
>
> [ ... ]
>
>> -bpftool prog --json | grep '"metadata":{"a":"bar","b":2}' > /dev/null
>> -
>> -bpftool map | grep 'metadata.rodata' > /dev/null
>
> Was the "bpftool map | grep 'metadata.rodata'" check intentionally removed
> from the converted test? The original script verified that the metadata map
> appeared in bpftool's map listing, which tests a different code path than
> the "prog show" commands. If this was dropped on purpose, it might be worth
> a comment explaining why; otherwise this appears to be a test coverage
> regression.
>
>
> ---
> AI reviewed your patch. Please fix the bug or email reply why it's not a bug.
> See: https://github.com/kernel-patches/vmtest/blob/master/ci/claude/README.md
>
> CI run summary: https://github.com/kernel-patches/bpf/actions/runs/21225032840
The bot is right, I forgot to port this specific check. That will be
added in the next revision.
Alexis
--
Alexis Lothoré, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com