]>
Commit | Line | Data |
---|---|---|
6054c1eb | 1 | # SPDX-License-Identifier: GPL-2.0 |
150a5bc3 SH |
2 | ## -- Config -- |
3 | DEV := lo | |
64dedc47 | 4 | PREFIX := sudo -E unshare -n |
9ecff68d | 5 | RESULTS_DIR := results |
150a5bc3 SH |
6 | ## -- End Config -- |
7 | ||
64dedc47 VK |
8 | HAVE_UNSHARED_UTIL := $(shell unshare --version 2> /dev/null) |
9 | ||
14f8854f | 10 | rwildcard=$(wildcard $1$2) $(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2)) |
11 | ||
12 | TESTS := $(patsubst tests/%,%,$(call rwildcard,tests/,*.t)) | |
13 | TESTS_DIR := $(dir $(TESTS)) | |
14 | ||
82af5315 | 15 | IPVERS := $(filter-out iproute2/Makefile,$(wildcard iproute2/*)) |
f2954312 | 16 | |
10193649 | 17 | KENVFN := $(shell mktemp /tmp/tc_testkenv.XXXXXX) |
f2954312 | 18 | ifneq (,$(wildcard /proc/config.gz)) |
10193649 | 19 | KCPATH := /proc/config.gz |
3cef9592 PS |
20 | else |
21 | KVER := $(shell uname -r) | |
d754a64a | 22 | KCPATHS := /lib/modules/$(KVER)/config /boot/config-$(KVER) |
3064a44c | 23 | KCPATH := $(firstword $(wildcard $(KCPATHS))) |
f2954312 | 24 | endif |
82af5315 | 25 | |
150a5bc3 | 26 | .PHONY: compile listtests alltests configure $(TESTS) |
82af5315 | 27 | |
150a5bc3 SH |
28 | configure: |
29 | echo "Entering iproute2" && cd iproute2 && $(MAKE) configure && cd ..; | |
82af5315 | 30 | |
3537633d | 31 | compile: configure generate_nlmsg |
82af5315 | 32 | echo "Entering iproute2" && cd iproute2 && $(MAKE) && cd ..; |
33 | ||
34 | listtests: | |
35 | @for t in $(TESTS); do \ | |
36 | echo "$$t"; \ | |
37 | done | |
38 | ||
3537633d PV |
39 | generate_nlmsg: |
40 | $(MAKE) -C tools | |
41 | ||
42 | alltests: generate_nlmsg $(TESTS) | |
82af5315 | 43 | |
f15836fa | 44 | testclean: |
4cec9db0 | 45 | @echo "Removing $(RESULTS_DIR) dir ..." |
9ecff68d | 46 | @rm -rf $(RESULTS_DIR) |
f15836fa PV |
47 | |
48 | clean: testclean | |
ad23e152 LB |
49 | @rm -f iproute2/iproute2-this |
50 | @rm -f tests/ip/link/dev_wo_vf_rate.nl | |
51 | $(MAKE) -C tools clean | |
82af5315 | 52 | |
150a5bc3 SH |
53 | distclean: clean |
54 | echo "Entering iproute2" && cd iproute2 && $(MAKE) distclean && cd ..; | |
55 | ||
61f9ade9 | 56 | $(TESTS): generate_nlmsg testclean |
133c1a6c PV |
57 | ifeq (,$(IPVERS)) |
58 | $(error Please run make first) | |
59 | endif | |
64dedc47 VK |
60 | ifeq (,$(HAVE_UNSHARED_UTIL)) |
61 | $(error Please install util-linux tools to run tests in separated network namespace) | |
62 | endif | |
886f2c43 PS |
63 | @./tools/generate_nlmsg |
64 | ||
9ecff68d | 65 | @mkdir -p $(RESULTS_DIR) |
f15836fa | 66 | |
14f8854f | 67 | @for d in $(TESTS_DIR); do \ |
68 | mkdir -p $(RESULTS_DIR)/$$d; \ | |
69 | done | |
f15836fa | 70 | |
10193649 SB |
71 | @if [ "$(KCPATH)" = "/proc/config.gz" ]; then \ |
72 | gunzip -c $(KCPATH) >$(KENVFN); \ | |
73 | elif [ "$(KCPATH)" != "" ]; then \ | |
74 | cat $(KCPATH) >$(KENVFN); \ | |
75 | fi | |
76 | @sed -i -e 's/^CONFIG_/export CONFIG_/' $(KENVFN) | |
77 | ||
82af5315 | 78 | @for i in $(IPVERS); do \ |
82af5315 | 79 | o=`echo $$i | sed -e 's/iproute2\///'`; \ |
150a5bc3 | 80 | echo -n "Running $@ [$$o/`uname -r`]: "; \ |
30383b07 VK |
81 | TMP_ERR=`mktemp /tmp/tc_testsuite.XXXXXX`; \ |
82 | TMP_OUT=`mktemp /tmp/tc_testsuite.XXXXXX`; \ | |
10193649 | 83 | . $(KENVFN); \ |
30383b07 | 84 | STD_ERR="$$TMP_ERR" STD_OUT="$$TMP_OUT" \ |
744bd076 | 85 | TC="$$i/tc/tc" IP="$$i/ip/ip" SS=$$i/misc/ss DEV="$(DEV)" IPVER="$@" SNAME="$$i" \ |
10193649 | 86 | ERRF="$(RESULTS_DIR)/$@.$$o.err" $(PREFIX) tests/$@ > $(RESULTS_DIR)/$@.$$o.out; \ |
150a5bc3 | 87 | if [ "$$?" = "127" ]; then \ |
261a5290 | 88 | printf "\033[1;35mSKIPPED\033[0m\n"; \ |
9ecff68d | 89 | elif [ -e "$(RESULTS_DIR)/$@.$$o.err" ]; then \ |
261a5290 | 90 | printf "\033[0;31mFAILED\033[0m\n"; \ |
150a5bc3 | 91 | else \ |
261a5290 | 92 | printf "\033[0;32mPASS\033[0m\n"; \ |
150a5bc3 | 93 | fi; \ |
30383b07 | 94 | rm "$$TMP_ERR" "$$TMP_OUT"; \ |
88ecd487 | 95 | sudo dmesg > $(RESULTS_DIR)/$@.$$o.dmesg; \ |
82af5315 | 96 | done |