@@ -496,15 +496,16 @@ LINKED_SKELS := test_static_linked.skel.h linked_funcs.skel.h \
496
496
test_subskeleton.skel.h test_subskeleton_lib.skel.h \
497
497
test_usdt.skel.h
498
498
499
- LSKELS := fentry_test.c fexit_test.c fexit_sleep.c atomics.c \
500
- trace_printk.c trace_vprintk.c map_ptr_kern.c \
499
+ LSKELS := fexit_sleep.c trace_printk.c trace_vprintk.c map_ptr_kern.c \
501
500
core_kern.c core_kern_overflow.c test_ringbuf.c \
502
501
test_ringbuf_n.c test_ringbuf_map_key.c test_ringbuf_write.c
503
502
503
+ LSKELS_SIGNED := fentry_test.c fexit_test.c atomics.c
504
+
504
505
# Generate both light skeleton and libbpf skeleton for these
505
506
LSKELS_EXTRA := test_ksyms_module.c test_ksyms_weak.c kfunc_call_test.c \
506
507
kfunc_call_test_subprog.c
507
- SKEL_BLACKLIST += $$(LSKELS )
508
+ SKEL_BLACKLIST += $$(LSKELS ) $$( LSKELS_SIGNED )
508
509
509
510
test_static_linked.skel.h-deps := test_static_linked1.bpf.o test_static_linked2.bpf.o
510
511
linked_funcs.skel.h-deps := linked_funcs1.bpf.o linked_funcs2.bpf.o
@@ -535,6 +536,7 @@ HEADERS_FOR_BPF_OBJS := $(wildcard $(BPFDIR)/*.bpf.h) \
535
536
# $2 - test runner extra "flavor" (e.g., no_alu32, cpuv4, bpf_gcc, etc)
536
537
define DEFINE_TEST_RUNNER
537
538
539
+ LSKEL_SIGN := -S -k $(PRIVATE_KEY ) -i $(VERIFICATION_CERT )
538
540
TRUNNER_OUTPUT := $(OUTPUT )$(if $2,/) $2
539
541
TRUNNER_BINARY := $1$(if $2,-) $2
540
542
TRUNNER_TEST_OBJS := $$(patsubst % .c,$$(TRUNNER_OUTPUT ) /% .test.o, \
@@ -550,6 +552,7 @@ TRUNNER_BPF_SKELS := $$(patsubst %.c,$$(TRUNNER_OUTPUT)/%.skel.h, \
550
552
$$(TRUNNER_BPF_SRCS ) ) )
551
553
TRUNNER_BPF_LSKELS := $$(patsubst % .c,$$(TRUNNER_OUTPUT ) /% .lskel.h, $$(LSKELS ) $$(LSKELS_EXTRA ) )
552
554
TRUNNER_BPF_SKELS_LINKED := $$(addprefix $$(TRUNNER_OUTPUT ) /,$(LINKED_SKELS ) )
555
+ TRUNNER_BPF_LSKELS_SIGNED := $$(patsubst % .c,$$(TRUNNER_OUTPUT ) /% .lskel.h, $$(LSKELS_SIGNED ) )
553
556
TEST_GEN_FILES += $$(TRUNNER_BPF_OBJS )
554
557
555
558
# Evaluate rules now with extra TRUNNER_XXX variables above already defined
@@ -604,6 +607,15 @@ $(TRUNNER_BPF_LSKELS): %.lskel.h: %.bpf.o $(BPFTOOL) | $(TRUNNER_OUTPUT)
604
607
$(Q )$$(BPFTOOL ) gen skeleton -L $$(<:.o=.llinked3.o ) name $$(notdir $$(<:.bpf.o=_lskel ) ) > $$@
605
608
$(Q ) rm -f $$(<:.o=.llinked1.o ) $$(<:.o=.llinked2.o ) $$(<:.o=.llinked3.o )
606
609
610
+ $(TRUNNER_BPF_LSKELS_SIGNED ) : % .lskel.h: % .bpf.o $(BPFTOOL ) | $(TRUNNER_OUTPUT )
611
+ $$(call msg,GEN-SKEL,$(TRUNNER_BINARY ) (signed) ,$$@ )
612
+ $(Q )$$(BPFTOOL ) gen object $$(<:.o=.llinked1.o ) $$<
613
+ $(Q )$$(BPFTOOL ) gen object $$(<:.o=.llinked2.o ) $$(<:.o=.llinked1.o )
614
+ $(Q )$$(BPFTOOL ) gen object $$(<:.o=.llinked3.o ) $$(<:.o=.llinked2.o )
615
+ $(Q ) diff $$(<:.o=.llinked2.o ) $$(<:.o=.llinked3.o )
616
+ $(Q )$$(BPFTOOL ) gen skeleton $(LSKEL_SIGN ) $$(<:.o=.llinked3.o ) name $$(notdir $$(<:.bpf.o=_lskel ) ) > $$@
617
+ $(Q ) rm -f $$(<:.o=.llinked1.o ) $$(<:.o=.llinked2.o ) $$(<:.o=.llinked3.o )
618
+
607
619
$(LINKED_BPF_OBJS ) : % : $(TRUNNER_OUTPUT ) /%
608
620
609
621
# .SECONDEXPANSION here allows to correctly expand %-deps variables as prerequisites
@@ -653,6 +665,7 @@ $(TRUNNER_TEST_OBJS:.o=.d): $(TRUNNER_OUTPUT)/%.test.d: \
653
665
$(TRUNNER_EXTRA_HDRS ) \
654
666
$(TRUNNER_BPF_SKELS ) \
655
667
$(TRUNNER_BPF_LSKELS ) \
668
+ $(TRUNNER_BPF_LSKELS_SIGNED ) \
656
669
$(TRUNNER_BPF_SKELS_LINKED ) \
657
670
$$(BPFOBJ ) | $(TRUNNER_OUTPUT )
658
671
@@ -667,6 +680,7 @@ $(foreach N,$(patsubst $(TRUNNER_OUTPUT)/%.o,%,$(TRUNNER_EXTRA_OBJS)), \
667
680
$(TRUNNER_EXTRA_OBJS ) : $(TRUNNER_OUTPUT ) /%.o: \
668
681
%.c \
669
682
$(TRUNNER_EXTRA_HDRS ) \
683
+ $(VERIFY_SIG_HDR ) \
670
684
$(TRUNNER_TESTS_HDR ) \
671
685
$$(BPFOBJ ) | $(TRUNNER_OUTPUT )
672
686
$$(call msg,EXT-OBJ,$(TRUNNER_BINARY ) ,$$@ )
@@ -697,6 +711,18 @@ $(OUTPUT)/$(TRUNNER_BINARY): $(TRUNNER_TEST_OBJS) \
697
711
698
712
endef
699
713
714
+ VERIFY_SIG_SETUP := $(CURDIR ) /verify_sig_setup.sh
715
+ VERIFY_SIG_HDR := verification_cert.h
716
+ VERIFICATION_CERT := $(BUILD_DIR ) /signing_key.der
717
+ PRIVATE_KEY := $(BUILD_DIR ) /signing_key.pem
718
+
719
+ $(VERIFICATION_CERT ) $(PRIVATE_KEY ) : $(VERIFY_SIG_SETUP )
720
+ $(Q ) mkdir -p $(BUILD_DIR )
721
+ $(Q )$(VERIFY_SIG_SETUP ) genkey $(BUILD_DIR )
722
+
723
+ $(VERIFY_SIG_HDR ) : $(VERIFICATION_CERT )
724
+ $(Q ) xxd -i -n test_progs_verification_cert $< > $@
725
+
700
726
# Define test_progs test runner.
701
727
TRUNNER_TESTS_DIR := prog_tests
702
728
TRUNNER_BPF_PROGS_DIR := progs
@@ -716,6 +742,7 @@ TRUNNER_EXTRA_SOURCES := test_progs.c \
716
742
disasm.c \
717
743
disasm_helpers.c \
718
744
json_writer.c \
745
+ $(VERIFY_SIG_HDR ) \
719
746
flow_dissector_load.h \
720
747
ip_check_defrag_frags.h
721
748
TRUNNER_EXTRA_FILES := $(OUTPUT ) /urandom_read \
@@ -725,7 +752,7 @@ TRUNNER_EXTRA_FILES := $(OUTPUT)/urandom_read \
725
752
$(OUTPUT ) /uprobe_multi \
726
753
$(TEST_KMOD_TARGETS ) \
727
754
ima_setup.sh \
728
- verify_sig_setup.sh \
755
+ $( VERIFY_SIG_SETUP ) \
729
756
$(wildcard progs/btf_dump_test_case_* .c) \
730
757
$(wildcard progs/* .bpf.o)
731
758
TRUNNER_BPF_BUILD_RULE := CLANG_BPF_BUILD_RULE
0 commit comments