From: Tao Chen <chen.dylane@linux.dev>
To: Andrii Nakryiko <andrii.nakryiko@gmail.com>
Cc: ast@kernel.org, daniel@iogearbox.net, andrii@kernel.org,
martin.lau@linux.dev, eddyz87@gmail.com, song@kernel.org,
yonghong.song@linux.dev, john.fastabend@gmail.com,
kpsingh@kernel.org, sdf@fomichev.me, haoluo@google.com,
jolsa@kernel.org, willemb@google.com, kerneljasonxing@gmail.com,
bpf@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH bpf-next v2 2/2] bpf/selftests: Add selftests for token info
Date: Wed, 16 Jul 2025 13:28:32 +0800 [thread overview]
Message-ID: <d9716ac8-b6b1-4524-8c94-2f7261f9b5cf@linux.dev> (raw)
In-Reply-To: <CAEf4Bza8FVL55qLds5ZWaKuz5Hw_r+bwg-MeXWX9H7ZsA_8ZJw@mail.gmail.com>
在 2025/7/16 05:51, Andrii Nakryiko 写道:
> On Mon, Jul 14, 2025 at 8:59 PM Tao Chen <chen.dylane@linux.dev> wrote:
>>
>> A previous change added bpf_token_info to get token info with
>> bpf_get_obj_info_by_fd, this patch adds a new test for token info.
>>
>> #461/12 token/bpf_token_info:OK
>>
>> Signed-off-by: Tao Chen <chen.dylane@linux.dev>
>> ---
>> .../testing/selftests/bpf/prog_tests/token.c | 39 +++++++++++++++++++
>> 1 file changed, 39 insertions(+)
>>
>> diff --git a/tools/testing/selftests/bpf/prog_tests/token.c b/tools/testing/selftests/bpf/prog_tests/token.c
>> index cfc032b910c..a16f25bdd4c 100644
>> --- a/tools/testing/selftests/bpf/prog_tests/token.c
>> +++ b/tools/testing/selftests/bpf/prog_tests/token.c
>> @@ -1047,6 +1047,36 @@ static int userns_obj_priv_implicit_token_envvar(int mnt_fd, struct token_lsm *l
>>
>> #define bit(n) (1ULL << (n))
>>
>> +static int userns_bpf_token_info(int mnt_fd, struct token_lsm *lsm_skel)
>> +{
>> + int err, token_fd = -1;
>> + struct bpf_token_info info;
>> + u32 len = sizeof(struct bpf_token_info);
>> +
>> + /* create BPF token from BPF FS mount */
>> + token_fd = bpf_token_create(mnt_fd, NULL);
>> + if (!ASSERT_GT(token_fd, 0, "token_create")) {
>> + err = -EINVAL;
>> + goto cleanup;
>> + }
>> +
>> + memset(&info, 0, len);
>> + err = bpf_obj_get_info_by_fd(token_fd, &info, &len);
>> + if (!ASSERT_ERR(err, "bpf_obj_get_token_info"))
>> + goto cleanup;
>> + if (!ASSERT_EQ(info.allowed_cmds, bit(BPF_MAP_CREATE), "token_info_cmds_map_create"))
>> + goto cleanup;
>> + if (!ASSERT_EQ(info.allowed_progs, bit(BPF_PROG_TYPE_XDP), "token_info_progs_xdp"))
>> + goto cleanup;
>
> nit: there is no harm in just doing a few ASSERT_EQ() checks
> unconditionally, it's cleaner and more succinct (and either way you
> return err == 0 in this case)
>
It seems necessary to assign the err when ASSERT_EQ fails, will fix it
in v3, thanks.
>> +
>> + /* The BPF_PROG_TYPE_EXT is not set in token */
>> + ASSERT_EQ(info.allowed_progs, bit(BPF_PROG_TYPE_EXT), "token_info_progs_ext");
>> +
>> +cleanup:
>> + zclose(token_fd);
>> + return err;
>> +}
>> +
>> void test_token(void)
>> {
>> if (test__start_subtest("map_token")) {
>> @@ -1150,4 +1180,13 @@ void test_token(void)
>>
>> subtest_userns(&opts, userns_obj_priv_implicit_token_envvar);
>> }
>> + if (test__start_subtest("bpf_token_info")) {
>> + struct bpffs_opts opts = {
>> + .cmds = bit(BPF_MAP_CREATE),
>> + .progs = bit(BPF_PROG_TYPE_XDP),
>> + .attachs = ~0ULL,
>> + };
>> +
>> + subtest_userns(&opts, userns_bpf_token_info);
>> + }
>> }
>> --
>> 2.48.1
>>
--
Best Regards
Tao Chen
next prev parent reply other threads:[~2025-07-16 5:28 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-15 3:58 [PATCH bpf-next v2 1/2] bpf: Add struct bpf_token_info Tao Chen
2025-07-15 3:58 ` [PATCH bpf-next v2 2/2] bpf/selftests: Add selftests for token info Tao Chen
2025-07-15 21:51 ` Andrii Nakryiko
2025-07-16 5:28 ` Tao Chen [this message]
2025-07-15 21:52 ` [PATCH bpf-next v2 1/2] bpf: Add struct bpf_token_info Andrii Nakryiko
2025-07-16 5:29 ` Tao Chen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=d9716ac8-b6b1-4524-8c94-2f7261f9b5cf@linux.dev \
--to=chen.dylane@linux.dev \
--cc=andrii.nakryiko@gmail.com \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=eddyz87@gmail.com \
--cc=haoluo@google.com \
--cc=john.fastabend@gmail.com \
--cc=jolsa@kernel.org \
--cc=kerneljasonxing@gmail.com \
--cc=kpsingh@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=martin.lau@linux.dev \
--cc=sdf@fomichev.me \
--cc=song@kernel.org \
--cc=willemb@google.com \
--cc=yonghong.song@linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.