]> git.proxmox.com Git - mirror_iproute2.git/blame - testsuite/Makefile
tests: Add output testing
[mirror_iproute2.git] / testsuite / Makefile
CommitLineData
150a5bc3
SH
1## -- Config --
2DEV := lo
64dedc47 3PREFIX := sudo -E unshare -n
9ecff68d 4RESULTS_DIR := results
150a5bc3
SH
5## -- End Config --
6
64dedc47
VK
7HAVE_UNSHARED_UTIL := $(shell unshare --version 2> /dev/null)
8
14f8854f 9rwildcard=$(wildcard $1$2) $(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2))
10
11TESTS := $(patsubst tests/%,%,$(call rwildcard,tests/,*.t))
12TESTS_DIR := $(dir $(TESTS))
13
82af5315 14IPVERS := $(filter-out iproute2/Makefile,$(wildcard iproute2/*))
f2954312 15
16ifneq (,$(wildcard /proc/config.gz))
17 KENV := $(shell cat /proc/config.gz | gunzip | grep ^CONFIG)
18endif
82af5315 19
150a5bc3 20.PHONY: compile listtests alltests configure $(TESTS)
82af5315 21
150a5bc3
SH
22configure:
23 echo "Entering iproute2" && cd iproute2 && $(MAKE) configure && cd ..;
82af5315 24
150a5bc3 25compile: configure
82af5315 26 echo "Entering iproute2" && cd iproute2 && $(MAKE) && cd ..;
27
28listtests:
29 @for t in $(TESTS); do \
30 echo "$$t"; \
31 done
32
33alltests: $(TESTS)
34
35clean:
4cec9db0 36 @echo "Removing $(RESULTS_DIR) dir ..."
9ecff68d 37 @rm -rf $(RESULTS_DIR)
82af5315 38
150a5bc3
SH
39distclean: clean
40 echo "Entering iproute2" && cd iproute2 && $(MAKE) distclean && cd ..;
41
4cec9db0 42$(TESTS): clean
64dedc47
VK
43ifeq (,$(HAVE_UNSHARED_UTIL))
44 $(error Please install util-linux tools to run tests in separated network namespace)
45endif
9ecff68d 46 @mkdir -p $(RESULTS_DIR)
14f8854f 47
48 @for d in $(TESTS_DIR); do \
49 mkdir -p $(RESULTS_DIR)/$$d; \
50 done
51
82af5315 52 @for i in $(IPVERS); do \
82af5315 53 o=`echo $$i | sed -e 's/iproute2\///'`; \
150a5bc3 54 echo -n "Running $@ [$$o/`uname -r`]: "; \
30383b07
VK
55 TMP_ERR=`mktemp /tmp/tc_testsuite.XXXXXX`; \
56 TMP_OUT=`mktemp /tmp/tc_testsuite.XXXXXX`; \
57 STD_ERR="$$TMP_ERR" STD_OUT="$$TMP_OUT" \
150a5bc3 58 TC="$$i/tc/tc" IP="$$i/ip/ip" DEV="$(DEV)" IPVER="$@" SNAME="$$i" \
9ecff68d 59 ERRF="$(RESULTS_DIR)/$@.$$o.err" $(KENV) $(PREFIX) tests/$@ > $(RESULTS_DIR)/$@.$$o.out; \
150a5bc3
SH
60 if [ "$$?" = "127" ]; then \
61 echo "SKIPPED"; \
9ecff68d 62 elif [ -e "$(RESULTS_DIR)/$@.$$o.err" ]; then \
82af5315 63 echo "FAILED"; \
150a5bc3
SH
64 else \
65 echo "PASS"; \
66 fi; \
30383b07 67 rm "$$TMP_ERR" "$$TMP_OUT"; \
9ecff68d 68 dmesg > $(RESULTS_DIR)/$@.$$o.dmesg; \
82af5315 69 done