]> git.proxmox.com Git - mirror_iproute2.git/blame - testsuite/Makefile
man: tc-taprio.8: fix syntax error
[mirror_iproute2.git] / testsuite / Makefile
CommitLineData
6054c1eb 1# SPDX-License-Identifier: GPL-2.0
150a5bc3
SH
2## -- Config --
3DEV := lo
64dedc47 4PREFIX := sudo -E unshare -n
9ecff68d 5RESULTS_DIR := results
150a5bc3
SH
6## -- End Config --
7
64dedc47
VK
8HAVE_UNSHARED_UTIL := $(shell unshare --version 2> /dev/null)
9
14f8854f 10rwildcard=$(wildcard $1$2) $(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2))
11
12TESTS := $(patsubst tests/%,%,$(call rwildcard,tests/,*.t))
13TESTS_DIR := $(dir $(TESTS))
14
82af5315 15IPVERS := $(filter-out iproute2/Makefile,$(wildcard iproute2/*))
f2954312 16
10193649 17KENVFN := $(shell mktemp /tmp/tc_testkenv.XXXXXX)
f2954312 18ifneq (,$(wildcard /proc/config.gz))
10193649 19 KCPATH := /proc/config.gz
3cef9592
PS
20else
21KVER := $(shell uname -r)
d754a64a 22KCPATHS := /lib/modules/$(KVER)/config /boot/config-$(KVER)
3064a44c 23KCPATH := $(firstword $(wildcard $(KCPATHS)))
f2954312 24endif
82af5315 25
150a5bc3 26.PHONY: compile listtests alltests configure $(TESTS)
82af5315 27
150a5bc3
SH
28configure:
29 echo "Entering iproute2" && cd iproute2 && $(MAKE) configure && cd ..;
82af5315 30
3537633d 31compile: configure generate_nlmsg
82af5315 32 echo "Entering iproute2" && cd iproute2 && $(MAKE) && cd ..;
33
34listtests:
35 @for t in $(TESTS); do \
36 echo "$$t"; \
37 done
38
3537633d
PV
39generate_nlmsg:
40 $(MAKE) -C tools
41
42alltests: generate_nlmsg $(TESTS)
82af5315 43
f15836fa 44testclean:
4cec9db0 45 @echo "Removing $(RESULTS_DIR) dir ..."
9ecff68d 46 @rm -rf $(RESULTS_DIR)
f15836fa
PV
47
48clean: 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
53distclean: clean
54 echo "Entering iproute2" && cd iproute2 && $(MAKE) distclean && cd ..;
55
61f9ade9 56$(TESTS): generate_nlmsg testclean
133c1a6c
PV
57ifeq (,$(IPVERS))
58 $(error Please run make first)
59endif
64dedc47
VK
60ifeq (,$(HAVE_UNSHARED_UTIL))
61 $(error Please install util-linux tools to run tests in separated network namespace)
62endif
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