Skip to content

Commit ab01bfa

Browse files
author
Alexei Starovoitov
committed
Merge branch 'selftests-bpf-integrate-test_xsk-c-to-test_progs-framework'
Bastien Curutchet says: ==================== selftests/bpf: Integrate test_xsk.c to test_progs framework The test_xsk.sh script covers many AF_XDP use cases. The tests it runs are defined in xksxceiver.c. Since this script is used to test real hardware, the goal here is to leave it as it is, and only integrate the tests that run on veth peers into the test_progs framework. PATCH 1 extracts test_xsk[.c/.h] from xskxceiver[.c/.h] to make the tests available to test_progs. PATCH 2 to 7 fix small issues in the current test PATCH 8 to 13 handle all errors to release resources instead of calling exit() when any error occurs. PATCH 14 isolates the tests that won't fit in the CI PATCH 15 integrates the CI tests to the test_progs framework Signed-off-by: Bastien Curutchet (eBPF Foundation) <bastien.curutchet@bootlin.com> --- Changes in v7: - Restore 'test_ns' prefix to allow parallel execution. - PATCH 11: fix potential uninitialized variable spotted by AI. - PACTH 12: fix potential resource leak spotted by AI - Link to v6: https://lore.kernel.org/r/20251029-xsk-v6-0-5a63a64dff98@bootlin.com Changes in v6: - Setup veth peer once for each mode instead of once for each substest - Rename the 'flaky' table 'skip-ci' table and move the automatically skipped and the longest tests into it - Link to v5: https://lore.kernel.org/r/20251016-xsk-v5-0-662c95eb8005@bootlin.com Changes in v5: - Rebase on latest bpf-next_base - Move XDP_ADJUST_TAIL_SHRINK_MULTI_BUFF to the flaky table - Add Maciej's reviewed-by - Link to v4: https://lore.kernel.org/r/20250924-xsk-v4-0-20e57537b876@bootlin.com Changes in v4: - Fix test_xsk.sh's summary report. - Merge PATCH 11 & 12 together, otherwise PATCH 11 fails to build. - Split old PATCH 3 in two patches. The first one fixes testapp_stats_rx_dropped(), the second one fixes testapp_xdp_shared_umem(). The unecessary frees (in testapp_stats_rx_full() and testapp_stats_fill_empty() are removed) - Link to v3: https://lore.kernel.org/r/20250904-xsk-v3-0-ce382e331485@bootlin.com Changes in v3: - Rebase on latest bpf-next_base to integrate commit c9110e6 ("selftests/bpf: Fix count write in testapp_xdp_metadata_copy()"). - Move XDP_METADATA_COPY_* tests from flaky-tests to nominal tests - Link to v2: https://lore.kernel.org/r/20250902-xsk-v2-0-17c6345d5215@bootlin.com Changes in v2: - Rebase on the latest bpf-next_base and integrate the newly added tests to the work (adjust_tail* and tx_queue_consumer tests) - Re-order patches to split xkxceiver sooner. - Fix the bug reported by Maciej. - Fix verbose mode in test_xsk.sh by keeping kselftest (remove PATCH 1, 7 and 8) - Link to v1: https://lore.kernel.org/r/20250313-xsk-v1-0-7374729a93b9@bootlin.com ==================== Link: https://lore.kernel.org/r/20251031-xsk-v7-0-39fe486593a3@bootlin.com Signed-off-by: Alexei Starovoitov <ast@kernel.org>
2 parents 5701d5a + d1aec26 commit ab01bfa

File tree

6 files changed

+3184
-2724
lines changed

6 files changed

+3184
-2724
lines changed

tools/testing/selftests/bpf/Makefile

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -544,6 +544,8 @@ TRUNNER_TEST_OBJS := $$(patsubst %.c,$$(TRUNNER_OUTPUT)/%.test.o, \
544544
$$(notdir $$(wildcard $(TRUNNER_TESTS_DIR)/*.c)))
545545
TRUNNER_EXTRA_OBJS := $$(patsubst %.c,$$(TRUNNER_OUTPUT)/%.o, \
546546
$$(filter %.c,$(TRUNNER_EXTRA_SOURCES)))
547+
TRUNNER_LIB_OBJS := $$(patsubst %.c,$$(TRUNNER_OUTPUT)/%.o, \
548+
$$(filter %.c,$(TRUNNER_LIB_SOURCES)))
547549
TRUNNER_EXTRA_HDRS := $$(filter %.h,$(TRUNNER_EXTRA_SOURCES))
548550
TRUNNER_TESTS_HDR := $(TRUNNER_TESTS_DIR)/tests.h
549551
TRUNNER_BPF_SRCS := $$(notdir $$(wildcard $(TRUNNER_BPF_PROGS_DIR)/*.c))
@@ -687,6 +689,10 @@ $(TRUNNER_EXTRA_OBJS): $(TRUNNER_OUTPUT)/%.o: \
687689
$$(call msg,EXT-OBJ,$(TRUNNER_BINARY),$$@)
688690
$(Q)$$(CC) $$(CFLAGS) -c $$< $$(LDLIBS) -o $$@
689691

692+
$(TRUNNER_LIB_OBJS): $(TRUNNER_OUTPUT)/%.o:$(TOOLSDIR)/lib/%.c
693+
$$(call msg,LIB-OBJ,$(TRUNNER_BINARY),$$@)
694+
$(Q)$$(CC) $$(CFLAGS) -c $$< $$(LDLIBS) -o $$@
695+
690696
# non-flavored in-srctree builds receive special treatment, in particular, we
691697
# do not need to copy extra resources (see e.g. test_btf_dump_case())
692698
$(TRUNNER_BINARY)-extras: $(TRUNNER_EXTRA_FILES) | $(TRUNNER_OUTPUT)
@@ -700,6 +706,7 @@ $(OUTPUT)/$(TRUNNER_BINARY): | $(TRUNNER_BPF_OBJS)
700706

701707
$(OUTPUT)/$(TRUNNER_BINARY): $(TRUNNER_TEST_OBJS) \
702708
$(TRUNNER_EXTRA_OBJS) $$(BPFOBJ) \
709+
$(TRUNNER_LIB_OBJS) \
703710
$(RESOLVE_BTFIDS) \
704711
$(TRUNNER_BPFTOOL) \
705712
$(OUTPUT)/veristat \
@@ -746,6 +753,7 @@ TRUNNER_EXTRA_SOURCES := test_progs.c \
746753
$(VERIFY_SIG_HDR) \
747754
flow_dissector_load.h \
748755
ip_check_defrag_frags.h
756+
TRUNNER_LIB_SOURCES := find_bit.c
749757
TRUNNER_EXTRA_FILES := $(OUTPUT)/urandom_read \
750758
$(OUTPUT)/liburandom_read.so \
751759
$(OUTPUT)/xdp_synproxy \
@@ -783,6 +791,7 @@ endif
783791
TRUNNER_TESTS_DIR := map_tests
784792
TRUNNER_BPF_PROGS_DIR := progs
785793
TRUNNER_EXTRA_SOURCES := test_maps.c
794+
TRUNNER_LIB_SOURCES :=
786795
TRUNNER_EXTRA_FILES :=
787796
TRUNNER_BPF_BUILD_RULE := $$(error no BPF objects should be built)
788797
TRUNNER_BPF_CFLAGS :=
@@ -804,7 +813,7 @@ $(OUTPUT)/test_verifier: test_verifier.c verifier/tests.h $(BPFOBJ) | $(OUTPUT)
804813
$(Q)$(CC) $(CFLAGS) $(filter %.a %.o %.c,$^) $(LDLIBS) -o $@
805814

806815
# Include find_bit.c to compile xskxceiver.
807-
EXTRA_SRC := $(TOOLSDIR)/lib/find_bit.c
816+
EXTRA_SRC := $(TOOLSDIR)/lib/find_bit.c prog_tests/test_xsk.c prog_tests/test_xsk.h
808817
$(OUTPUT)/xskxceiver: $(EXTRA_SRC) xskxceiver.c xskxceiver.h $(OUTPUT)/network_helpers.o $(OUTPUT)/xsk.o $(OUTPUT)/xsk_xdp_progs.skel.h $(BPFOBJ) | $(OUTPUT)
809818
$(call msg,BINARY,,$@)
810819
$(Q)$(CC) $(CFLAGS) $(filter %.a %.o %.c,$^) $(LDLIBS) -o $@

0 commit comments

Comments
 (0)