mbox series

[00/13] selftests/bpf: Integrate test_xsk.c to test_progs framework

Message ID 20250313-xsk-v1-0-7374729a93b9@bootlin.com (mailing list archive)
Headers show
Series selftests/bpf: Integrate test_xsk.c to test_progs framework | expand

Message

Bastien Curutchet March 13, 2025, 10:47 a.m. UTC
Hi all,

This patch series continues the work to migrate the script tests into
prog_tests.

The test_xsk.sh script tests lots of AF_XDP use cases. The tests it uses
are defined in xksxceiver.c. As this script is used to test real
hardware, the goal here is to keep it as is and only integrate the
tests on veth peers into the test_progs framework.
Three tests are flaky on s390 so they won't be integrated to test_progs
yet (I'm currently trying to make them more robust).

PATCH 1 & 2 fix some small issues xskxceiver.c
PATCH 3 to 9 rework the xskxceiver to ease the integration in the
test_progs framework. Two main points are addressed in them :
 - wrap kselftest calls behind macros to ease their replacement later
 - handle all errors to release resources instead of calling exit() when
   any error occurs.
PATCH 10 extracts test_xsk[.c/.h] from xskxceiver[.c/.h] to make the
tests available to test_progs
PATCH 11 enables kselftest de-activation
PATCH 12 isolates the flaky tests
PATCH 13 integrate the non-flaky tests to the test_progs framework

Signed-off-by: Bastien Curutchet (eBPF Foundation) <bastien.curutchet@bootlin.com>
---
Bastien Curutchet (eBPF Foundation) (13):
      selftests/bpf: test_xsk: Initialize bitmap before use
      selftests/bpf: test_xsk: Fix memory leaks
      selftests/bpf: test_xsk: Wrap ksft_*() behind macros
      selftests/bpf: test_xsk: Add return value to init_iface()
      selftests/bpf: test_xsk: Don't exit immediately when xsk_attach fails
      selftests/bpf: test_xsk: Don't exit immediately when gettimeofday fails
      selftests/bpf: test_xsk: Don't exit immediately when workers fail
      selftests/bpf: test_xsk: Don't exit immediately if validate_traffic fails
      selftests/bpf: test_xsk: Don't exit immediately on allocation failures
      selftests/bpf: test_xsk: Split xskxceiver
      selftests/bpf: test_xsk: Make kselftest dependency optional
      selftests/bpf: test_xsk: Isolate flaky tests
      selftests/bpf: test_xsk: Integrate test_xsk.c to test_progs framework

 tools/testing/selftests/bpf/Makefile              |   13 +-
 tools/testing/selftests/bpf/prog_tests/test_xsk.c | 2416 ++++++++++++++++++++
 tools/testing/selftests/bpf/prog_tests/test_xsk.h |  299 +++
 tools/testing/selftests/bpf/prog_tests/xsk.c      |  178 ++
 tools/testing/selftests/bpf/xskxceiver.c          | 2543 +--------------------
 tools/testing/selftests/bpf/xskxceiver.h          |  153 --
 6 files changed, 3021 insertions(+), 2581 deletions(-)
---
base-commit: 720c696b16a1b1680f64cac9b3bb9e312a23ac47
change-id: 20250218-xsk-0cf90e975d14

Best regards,

Comments

Bastien Curutchet March 13, 2025, 10:50 a.m. UTC | #1
Hi all,

On 3/13/25 11:47 AM, Bastien Curutchet (eBPF Foundation) wrote:
> Hi all,
> 
> This patch series continues the work to migrate the script tests into
> prog_tests.
> 
> The test_xsk.sh script tests lots of AF_XDP use cases. The tests it uses
> are defined in xksxceiver.c. As this script is used to test real
> hardware, the goal here is to keep it as is and only integrate the
> tests on veth peers into the test_progs framework.
> Three tests are flaky on s390 so they won't be integrated to test_progs
> yet (I'm currently trying to make them more robust).
> 
> PATCH 1 & 2 fix some small issues xskxceiver.c
> PATCH 3 to 9 rework the xskxceiver to ease the integration in the
> test_progs framework. Two main points are addressed in them :
>   - wrap kselftest calls behind macros to ease their replacement later
>   - handle all errors to release resources instead of calling exit() when
>     any error occurs.
> PATCH 10 extracts test_xsk[.c/.h] from xskxceiver[.c/.h] to make the
> tests available to test_progs
> PATCH 11 enables kselftest de-activation
> PATCH 12 isolates the flaky tests
> PATCH 13 integrate the non-flaky tests to the test_progs framework
> 
> Signed-off-by: Bastien Curutchet (eBPF Foundation) <bastien.curutchet@bootlin.com>
> ---
> Bastien Curutchet (eBPF Foundation) (13):
>        selftests/bpf: test_xsk: Initialize bitmap before use
>        selftests/bpf: test_xsk: Fix memory leaks
>        selftests/bpf: test_xsk: Wrap ksft_*() behind macros
>        selftests/bpf: test_xsk: Add return value to init_iface()
>        selftests/bpf: test_xsk: Don't exit immediately when xsk_attach fails
>        selftests/bpf: test_xsk: Don't exit immediately when gettimeofday fails
>        selftests/bpf: test_xsk: Don't exit immediately when workers fail
>        selftests/bpf: test_xsk: Don't exit immediately if validate_traffic fails
>        selftests/bpf: test_xsk: Don't exit immediately on allocation failures
>        selftests/bpf: test_xsk: Split xskxceiver
>        selftests/bpf: test_xsk: Make kselftest dependency optional
>        selftests/bpf: test_xsk: Isolate flaky tests
>        selftests/bpf: test_xsk: Integrate test_xsk.c to test_progs framework
> 
>   tools/testing/selftests/bpf/Makefile              |   13 +-
>   tools/testing/selftests/bpf/prog_tests/test_xsk.c | 2416 ++++++++++++++++++++
>   tools/testing/selftests/bpf/prog_tests/test_xsk.h |  299 +++
>   tools/testing/selftests/bpf/prog_tests/xsk.c      |  178 ++
>   tools/testing/selftests/bpf/xskxceiver.c          | 2543 +--------------------
>   tools/testing/selftests/bpf/xskxceiver.h          |  153 --
>   6 files changed, 3021 insertions(+), 2581 deletions(-)
> ---
> base-commit: 720c696b16a1b1680f64cac9b3bb9e312a23ac47
> change-id: 20250218-xsk-0cf90e975d14

I realize that I forgot to mention 'bpf-next', sorry about that.
This work is based on the bpf-next_base branch.

Best regards,
Bastien