Skip to content

Commit 467e6b8

Browse files
committed
add bash
Signed-off-by: sweeywu <sweetwx6@gmail.com>
1 parent 39d5344 commit 467e6b8

File tree

2 files changed

+50
-95
lines changed

2 files changed

+50
-95
lines changed

test/bpf_ut/Makefile

Lines changed: 8 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -1,101 +1,14 @@
1-
MAKEFLAGS += -r
2-
3-
QUIET ?= @
4-
CLANG ?= clang
5-
GO ?= go
6-
71
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
362

3+
.PHONY: all build-bpf-tests clean
374

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
416

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
6310

6411
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

test/bpf_ut/build_bpf_ut_tests.sh

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#!/bin/bash
2+
set -e
3+
4+
ROOT_DIR=$(git rev-parse --show-toplevel)
5+
OUT_DIR=${ROOT_DIR}/test/bpf_ut
6+
7+
mkdir -p "${OUT_DIR}"
8+
9+
echo "[+] Building all bpf_ut test object files..."
10+
11+
COMMON_FLAGS="-g -O2 -target bpf -std=gnu99 -Wall -Wextra -fPIC \
12+
-D__NR_CPUS__=$(nproc) -D__TARGET_ARCH_x86_64 -D__x86_64__ -D_GNU_SOURCE -DKERNEL_VERSION_HIGHER_5_13_0=1"
13+
14+
INCLUDES="\
15+
-isystem /usr/include \
16+
-I/usr/local/include \
17+
-I./include \
18+
-I${ROOT_DIR}/bpf/include \
19+
-I${ROOT_DIR}/bpf/kmesh/ \
20+
-I${ROOT_DIR}/bpf/kmesh/probes \
21+
-I${ROOT_DIR}/bpf/kmesh/workload/include \
22+
-I${ROOT_DIR}/bpf/kmesh/general/include \
23+
-I${ROOT_DIR}/bpf/kmesh/general \
24+
-I${ROOT_DIR}/api/v2-c"
25+
26+
# workload_sendmsg_test.c
27+
clang $COMMON_FLAGS $INCLUDES -DKMESH_UNIT_TEST -c ${OUT_DIR}/workload_sendmsg_test.c -o ${OUT_DIR}/workload_sendmsg_test.o
28+
29+
#workload_sockops_test.c
30+
clang $COMMON_FLAGS $INCLUDES -I${ROOT_DIR}/bpf/kmesh/probes -c ${OUT_DIR}/workload_sockops_test.c -o ${OUT_DIR}/workload_sockops_test.o
31+
32+
#workload_cgroup_skb_test.c
33+
clang $COMMON_FLAGS $INCLUDES -I${ROOT_DIR}/bpf/kmesh/probes -c ${OUT_DIR}/workload_cgroup_skb_test.c -o ${OUT_DIR}/workload_cgroup_skb_test.o
34+
35+
36+
#tc_mark_encrypt_test.c and tc_mark_decrypt_test.c
37+
TC_FLAGS="-I${ROOT_DIR}/bpf/kmesh/general/include -I${ROOT_DIR}/bpf/kmesh/general"
38+
39+
clang $COMMON_FLAGS $INCLUDES $TC_FLAGS -c ${OUT_DIR}/tc_mark_encrypt_test.c -o ${OUT_DIR}/tc_mark_encrypt_test.o
40+
clang $COMMON_FLAGS $INCLUDES $TC_FLAGS -c ${OUT_DIR}/tc_mark_decrypt_test.c -o ${OUT_DIR}/tc_mark_decrypt_test.o
41+
42+
echo "[✓] Done."

0 commit comments

Comments
 (0)