Individual test files may fail to compile when headers or kernel features
required by that test are absent. Currently this aborts the entire build.

Make the per-test compilation non-fatal: remove the output object on
failure and print a SKIP-TEST marker to stderr. Guard the BTFIDS
post-processing step so it is skipped when the object file is absent.
The linker step will later ignore absent objects, allowing the remaining
tests to build and run.

Signed-off-by: Ricardo B. Marliere <[email protected]>
---
 tools/testing/selftests/bpf/Makefile | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/tools/testing/selftests/bpf/Makefile 
b/tools/testing/selftests/bpf/Makefile
index 72f576a8236a..6a3835a58f87 100644
--- a/tools/testing/selftests/bpf/Makefile
+++ b/tools/testing/selftests/bpf/Makefile
@@ -688,11 +688,14 @@ $(TRUNNER_TEST_OBJS): $(TRUNNER_OUTPUT)/%.test.o:         
        \
                      $(TRUNNER_TESTS_DIR)/%.c                          \
                      | $(TRUNNER_OUTPUT)/%.test.d
        $$(call msg,TEST-OBJ,$(TRUNNER_BINARY),$$@)
-       $(Q)cd $$(@D) && $$(CC) -I. $$(CFLAGS) -MMD -MT $$@ -c $(CURDIR)/$$< 
$$(LDLIBS) -o $$(@F)
+       $(Q)cd $$(@D) && $$(CC) -I. $$(CFLAGS) -MMD -MT $$@ -c $(CURDIR)/$$< 
$$(LDLIBS) -o $$(@F) || \
+               ($(RM) $$(@F); printf '  %-12s %s\n' 'SKIP-TEST' '$$(notdir 
$$@)' 1>&2)
        $$(if $$(TEST_NEEDS_BTFIDS),                                            
\
+               if [ -f $$@ ]; then                                             
\
                $$(call msg,BTFIDS,$(TRUNNER_BINARY),$$@)                       
\
                $(RESOLVE_BTFIDS) --btf $(TRUNNER_OUTPUT)/btf_data.bpf.o $$@;   
\
-               $(RESOLVE_BTFIDS) --patch_btfids [email protected]_ids $$@)
+               $(RESOLVE_BTFIDS) --patch_btfids [email protected]_ids $$@;               
\
+               fi)
 
 $(TRUNNER_TEST_OBJS:.o=.d): $(TRUNNER_OUTPUT)/%.test.d:                        
\
                            $(TRUNNER_TESTS_DIR)/%.c                    \

-- 
2.53.0


Reply via email to