3 PREFIX
:= sudo
-E unshare
-n
7 HAVE_UNSHARED_UTIL
:= $(shell unshare
--version
2> /dev
/null
)
9 rwildcard
=$(wildcard $1$2) $(foreach d
,$(wildcard $1*),$(call rwildcard
,$d/,$2))
11 TESTS
:= $(patsubst tests
/%,%,$(call rwildcard
,tests
/,*.t
))
12 TESTS_DIR
:= $(dir $(TESTS
))
14 IPVERS
:= $(filter-out iproute2
/Makefile
,$(wildcard iproute2
/*))
16 ifneq (,$(wildcard /proc
/config.gz
))
17 KENV
:= $(shell cat
/proc
/config.gz | gunzip | grep ^CONFIG
)
19 KVER
:= $(shell uname
-r
)
20 KCPATHS
:= /lib
/modules
/$(KVER
)/config
/boot
/config-
$(KVER
)
21 KCPATH
:= $(firstword $(wildcard $(KCPATHS
)))
23 KENV
:= $(shell cat
${KCPATH} | grep ^CONFIG
)
27 .PHONY
: compile listtests alltests configure
$(TESTS
)
30 echo
"Entering iproute2" && cd iproute2
&& $(MAKE
) configure
&& cd ..
;
33 echo
"Entering iproute2" && cd iproute2
&& $(MAKE
) && cd ..
;
36 @for t in
$(TESTS
); do \
43 @echo
"Removing $(RESULTS_DIR) dir ..."
44 @
rm -rf
$(RESULTS_DIR
)
47 echo
"Entering iproute2" && cd iproute2
&& $(MAKE
) distclean && cd ..
;
50 ifeq (,$(HAVE_UNSHARED_UTIL
))
51 $(error Please
install util-linux tools to run tests in separated network namespace
)
53 @.
/tools
/generate_nlmsg
55 @mkdir
-p
$(RESULTS_DIR
)
57 @for d in
$(TESTS_DIR
); do \
58 mkdir
-p
$(RESULTS_DIR
)/$$d; \
61 @for i in
$(IPVERS
); do \
62 o
=`echo $$i | sed -e 's/iproute2\///'`; \
63 echo
-n
"Running $@ [$$o/`uname -r`]: "; \
64 TMP_ERR
=`mktemp /tmp/tc_testsuite.XXXXXX`; \
65 TMP_OUT
=`mktemp /tmp/tc_testsuite.XXXXXX`; \
66 STD_ERR
="$$TMP_ERR" STD_OUT
="$$TMP_OUT" \
67 TC
="$$i/tc/tc" IP
="$$i/ip/ip" DEV
="$(DEV)" IPVER
="$@" SNAME
="$$i" \
68 ERRF
="$(RESULTS_DIR)/$@.$$o.err" $(KENV
) $(PREFIX
) tests
/$@
> $(RESULTS_DIR
)/$@.
$$o.out
; \
69 if
[ "$$?" = "127" ]; then \
71 elif
[ -e
"$(RESULTS_DIR)/$@.$$o.err" ]; then \
76 rm "$$TMP_ERR" "$$TMP_OUT"; \
77 dmesg
> $(RESULTS_DIR
)/$@.
$$o.dmesg
; \