Re: [PATCH 0/3] selftests/bpf: convert test_dev_cgroup to test_progs

From: Stanislav Fomichev
Date: Fri Jul 26 2024 - 18:49:57 EST


On 07/25, Alexis Lothoré (eBPF Foundation) wrote:
> Hello,
> this small series aims to integrate test_dev_cgroup in test_progs so it
> could be run automatically in CI. The new version brings a few differences
> with the current one:
> - test now uses directly syscalls instead of wrapping commandline tools
> into system() calls
> - test_progs manipulates /dev/null (eg: redirecting test logs into it), so
> disabling access to it in the bpf program confuses the tests. To fix this,
> the first commit modifies the bpf program to allow access to char devices
> 1:3 (/dev/null), and disable access to char devices 1:5 (/dev/zero)
> - once test is converted, add a small subtest to also check for device type
> interpretation (char or block)
> - paths used in mknod tests are now in /dev instead of /tmp: due to the CI
> runner organisation and mountpoints manipulations, trying to create nodes
> in /tmp leads to errors unrelated to the test (ie, mknod calls refused by
> kernel, not the bpf program). I don't understand exactly the root cause
> at the deepest point (all I see in CI is an -ENXIO error on mknod when trying to
> create the node in tmp, and I can not make sense out of it neither
> replicate it locally), so I would gladly take inputs from anyone more
> educated than me about this.
>
> The new test_progs part has been tested in a local qemu environment as well
> as in upstream CI:
>
> ./test_progs -a cgroup_dev
> 47/1 cgroup_dev/deny-mknod:OK
> 47/2 cgroup_dev/allow-mknod:OK
> 47/3 cgroup_dev/deny-mknod-wrong-type:OK
> 47/4 cgroup_dev/allow-read:OK
> 47/5 cgroup_dev/allow-write:OK
> 47/6 cgroup_dev/deny-read:OK
> 47/7 cgroup_dev/deny-write:OK
> 47 cgroup_dev:OK
> Summary: 1/7 PASSED, 0 SKIPPED, 0 FAILED
>
> ---
> Alexis Lothoré (eBPF Foundation) (3):
> selftests/bpf: do not disable /dev/null device access in cgroup dev test
> selftests/bpf: convert test_dev_cgroup to test_progs
> selftests/bpf: add wrong type test to cgroup dev
>
> tools/testing/selftests/bpf/.gitignore | 1 -
> tools/testing/selftests/bpf/Makefile | 2 -
> .../testing/selftests/bpf/prog_tests/cgroup_dev.c | 123 +++++++++++++++++++++
> tools/testing/selftests/bpf/progs/dev_cgroup.c | 4 +-
> tools/testing/selftests/bpf/test_dev_cgroup.c | 85 --------------
> 5 files changed, 125 insertions(+), 90 deletions(-)
> ---
> base-commit: c90e2d4a7738a24fbb3657092dbd1ca20c040ed1
> change-id: 20240723-convert_dev_cgroup-6464b0d37f1a
>
> Best regards,
> --
> Alexis Lothoré, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
>

Going forward, can you pls use [PATCH bpf-next] as a subject (or bpf when
targeting bpf tree)? I'm not sure whether patchworks picks up
plain [PATCH] messages..