|
1 | | -MAKEFLAGS += -r |
2 | | - |
3 | | -QUIET ?= @ |
4 | | -CLANG ?= clang |
5 | | -GO ?= go |
6 | | - |
7 | 1 | ROOT_DIR := $(shell git rev-parse --show-toplevel) |
8 | | -TEST_DIR := $(ROOT_DIR)/test/bpf_ut |
9 | | - |
10 | | -FLAGS := -isystem /usr/include -I/usr/local/include |
11 | | -FLAGS += -I./include -I$(ROOT_DIR)/bpf/include |
12 | | -FLAGS += -fPIC -D__NR_CPUS__=$(shell nproc --all) -D__TARGET_ARCH_x86_64 -D__x86_64__ -D_GNU_SOURCE -DKERNEL_VERSION_HIGHER_5_13_0=1 |
13 | | -FLAGS += -O2 -g |
14 | | - |
15 | | -CLANG_FLAGS := ${FLAGS} --target=bpf -std=gnu99 |
16 | | -# eBPF verifier enforces unaligned access checks where necessary, so don't |
17 | | -# let clang complain too early. |
18 | | -CLANG_FLAGS += -Wall -Wextra |
19 | | -CLANG_FLAGS += -Wno-address-of-packed-member |
20 | | -CLANG_FLAGS += -Wno-unknown-warning-option |
21 | | -CLANG_FLAGS += -Wno-gnu-variable-sized-type-not-at-end |
22 | | -CLANG_FLAGS += -Wenum-conversion |
23 | | -CLANG_FLAGS += -Wimplicit-fallthrough |
24 | | -# Create dependency files for each .o file. |
25 | | -CLANG_FLAGS += -MD |
26 | | - |
27 | | -.PHONY: all clean run |
28 | | - |
29 | | -all: xdp_shutdown_in_userspace_test.o \ |
30 | | - xdp_authz_offload_test.o \ |
31 | | - workload_sockops_test.o \ |
32 | | - tc_mark_encrypt_test.o \ |
33 | | - tc_mark_decrypt_test.o \ |
34 | | - workload_sendmsg_test.o \ |
35 | | - workload_cgroup_skb_test.o |
36 | 2 |
|
| 3 | +.PHONY: all build-bpf-tests clean |
37 | 4 |
|
38 | | -XDP_FLAGS = -I$(ROOT_DIR)/bpf/kmesh/ -I$(ROOT_DIR)/bpf/kmesh/workload/include -I$(ROOT_DIR)/api/v2-c |
39 | | -xdp_%.o: xdp_%.c |
40 | | - $(QUIET) $(CLANG) $(CLANG_FLAGS) $(XDP_FLAGS) -c $< -o $@ |
| 5 | +all: build-bpf-tests |
41 | 6 |
|
42 | | -WORKLOAD_SOCKOPS_FLAGS = -I$(ROOT_DIR)/bpf/kmesh/ -I$(ROOT_DIR)/bpf/kmesh/probes -I$(ROOT_DIR)/bpf/kmesh/workload/include -I$(ROOT_DIR)/api/v2-c |
43 | | -workload_sockops_test.o: workload_sockops_test.c |
44 | | - $(QUIET) $(CLANG) $(CLANG_FLAGS) $(WORKLOAD_SOCKOPS_FLAGS) -c $< -o $@ |
45 | | - |
46 | | -TC_FLAGS = -I$(ROOT_DIR)/bpf/kmesh/ -I$(ROOT_DIR)/bpf/kmesh/general/include -I$(ROOT_DIR)/bpf/kmesh/general -I$(ROOT_DIR)/api/v2-c |
47 | | -tc_mark_encrypt_test.o: tc_mark_encrypt_test.c |
48 | | - $(QUIET) $(CLANG) $(CLANG_FLAGS) $(TC_FLAGS) -c $< -o $@ |
49 | | -tc_mark_decrypt_test.o: tc_mark_decrypt_test.c |
50 | | - $(QUIET) $(CLANG) $(CLANG_FLAGS) $(TC_FLAGS) -c $< -o $@ |
51 | | - |
52 | | -WORKLOAD_SENDMSG_FLAGS = -I$(ROOT_DIR)/bpf/kmesh/ -I$(ROOT_DIR)/bpf/kmesh/workload/include -I$(ROOT_DIR)/api/v2-c -DKMESH_UNIT_TEST |
53 | | -workload_sendmsg_test.o: workload_sendmsg_test.c |
54 | | - $(QUIET) $(CLANG) $(CLANG_FLAGS) $(WORKLOAD_SENDMSG_FLAGS) -c $< -o $@ |
55 | | - |
56 | | - |
57 | | -WORKLOAD_CGROUP_SKB_FLAGS = -I$(ROOT_DIR)/bpf/kmesh/ \ |
58 | | - -I$(ROOT_DIR)/bpf/kmesh/probes \ |
59 | | - -I$(ROOT_DIR)/bpf/kmesh/workload/include \ |
60 | | - -I$(ROOT_DIR)/api/v2-c |
61 | | -workload_cgroup_skb_test.o: workload_cgroup_skb_test.c |
62 | | - $(QUIET) $(CLANG) $(CLANG_FLAGS) $(WORKLOAD_CGROUP_SKB_FLAGS) -c $< -o $@ |
| 7 | +build-bpf-tests: |
| 8 | + @echo "Building BPF unit tests..." |
| 9 | + @bash $(ROOT_DIR)/test/bpf_ut/build_bpf_ut_tests.sh |
63 | 10 |
|
64 | 11 | clean: |
65 | | - $(QUIET) rm -f $(wildcard *.o) |
66 | | - $(QUIET) rm -f $(wildcard *.d) |
67 | | - $(QUIET) echo "clean all object files" |
68 | | - |
69 | | -BPF_TEST_FLAGS:= |
70 | | -ifneq ($(shell id -u), 0) |
71 | | - BPF_TEST_FLAGS += -exec "sudo -E" |
72 | | -endif |
73 | | -ifeq ($(V),1) |
74 | | - BPF_TEST_FLAGS += -test.v |
75 | | -endif |
76 | | -ifeq ($(COVER),1) |
77 | | - ifndef COVERFORMAT |
78 | | - COVERFORMAT:=html |
79 | | - endif |
80 | | - BPF_TEST_FLAGS += -coverage-report $(ROOT_DIR)/bpf-coverage.$(COVERFORMAT) -coverage-format $(COVERFORMAT) |
81 | | -ifdef NOCOVER |
82 | | - BPF_TEST_FLAGS += -no-test-coverage "$(NOCOVER)" |
83 | | -endif |
84 | | -endif |
85 | | -ifeq ($(INSTRLOG),1) |
86 | | - BPF_TEST_FLAGS += -instrumentation-log $(ROOT_DIR)/test/bpf-instrumentation.log |
87 | | -endif |
88 | | -ifdef RUN |
89 | | - BPF_TEST_FLAGS += -run $(RUN) |
90 | | -endif |
91 | | -ifdef BPF_TEST_DUMP_CTX |
92 | | - BPF_TEST_FLAGS += -dump-ctx |
93 | | -endif |
94 | | -ifdef BPF_TEST_FILE |
95 | | - BPF_TEST_FLAGS += -test $(BPF_TEST_FILE) |
96 | | -endif |
97 | | - |
98 | | -run: all |
99 | | - $(GO) test ./bpftest -bpf-ut-path $(ROOT_DIR)/test/bpf_ut $(BPF_TEST_FLAGS) |
100 | | - |
101 | | --include $(TEST_OBJECTS:.o=.d) |
| 12 | + @echo "Cleaning build files..." |
| 13 | + @rm -f $(ROOT_DIR)/test/bpf_ut/*.o |
| 14 | + @rm -f $(ROOT_DIR)/test/bpf_ut/*.d |
0 commit comments