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 KCPATH
:= /lib
/modules
/${KVER}/config
21 ifneq (,$(wildcard ${KCPATH}))
22 KENV
:= $(shell cat
${KCPATH} | grep ^CONFIG
)
26 .PHONY
: compile listtests alltests configure
$(TESTS
)
29 echo
"Entering iproute2" && cd iproute2
&& $(MAKE
) configure
&& cd ..
;
32 echo
"Entering iproute2" && cd iproute2
&& $(MAKE
) && cd ..
;
35 @for t in
$(TESTS
); do \
42 @echo
"Removing $(RESULTS_DIR) dir ..."
43 @
rm -rf
$(RESULTS_DIR
)
46 echo
"Entering iproute2" && cd iproute2
&& $(MAKE
) distclean && cd ..
;
49 ifeq (,$(HAVE_UNSHARED_UTIL
))
50 $(error Please
install util-linux tools to run tests in separated network namespace
)
52 @.
/tools
/generate_nlmsg
54 @mkdir
-p
$(RESULTS_DIR
)
56 @for d in
$(TESTS_DIR
); do \
57 mkdir
-p
$(RESULTS_DIR
)/$$d; \
60 @for i in
$(IPVERS
); do \
61 o
=`echo $$i | sed -e 's/iproute2\///'`; \
62 echo
-n
"Running $@ [$$o/`uname -r`]: "; \
63 TMP_ERR
=`mktemp /tmp/tc_testsuite.XXXXXX`; \
64 TMP_OUT
=`mktemp /tmp/tc_testsuite.XXXXXX`; \
65 STD_ERR
="$$TMP_ERR" STD_OUT
="$$TMP_OUT" \
66 TC
="$$i/tc/tc" IP
="$$i/ip/ip" DEV
="$(DEV)" IPVER
="$@" SNAME
="$$i" \
67 ERRF
="$(RESULTS_DIR)/$@.$$o.err" $(KENV
) $(PREFIX
) tests
/$@
> $(RESULTS_DIR
)/$@.
$$o.out
; \
68 if
[ "$$?" = "127" ]; then \
70 elif
[ -e
"$(RESULTS_DIR)/$@.$$o.err" ]; then \
75 rm "$$TMP_ERR" "$$TMP_OUT"; \
76 dmesg
> $(RESULTS_DIR
)/$@.
$$o.dmesg
; \