xref: /openbsd/regress/usr.sbin/arp/Makefile (revision 6f40fd34)
1# $OpenBSD: Makefile,v 1.3 2017/07/07 23:55:21 bluhm Exp $
2
3RDOMAIN?=	5
4VETHER_MAC=	fe:e1:ba:d2:a3:18
5PRIV_MAC=	00:90:27:bb:cc:dd
6PUB_MAC=	fe:88:33:11:bb:aa
7OTHER_MAC=	cc:77:55:22:aa:66
8
9.MAIN: all
10
11.ifmake !obj && !clean && !cleandir && !regress
12.if (${.TARGET} != all && ! make(all)) || (${.TARGET} == all)
13
14.SILENT: .BEGIN .END .INTERRUPT
15
16.BEGIN:
17	-${SUDO} ifconfig vether10001 up lladdr ${VETHER_MAC} \
18		rdomain ${RDOMAIN} 192.0.2.1/24
19
20.END:
21	-${SUDO} ifconfig vether10001 destroy
22
23.INTERRUPT:
24	-${SUDO} ifconfig vether10001 destroy
25
26.endif
27.endif
28
29ARP=		${SUDO} arp -n -V ${RDOMAIN}
30
31# Two entries to the same destination are ok if one is "pub"
32n=	1
33RTTEST_TARGETS+:=arptest${n}
34arptest${n}:
35	${ARP} -s 192.0.2.42 ${PRIV_MAC}
36	${ARP} -s 192.0.2.42 ${PUB_MAC} pub
37	${ARP} -a 2>&1| \
38		diff -u ${.CURDIR}/${.TARGET}.ok /dev/stdin
39
40# Insert the "pub" entry first, it should not matter
41n=	2
42RTTEST_TARGETS+:=arptest${n}
43arptest${n}:
44	${ARP} -s 192.0.2.42 ${PUB_MAC} pub
45	${ARP} -s 192.0.2.42 ${PRIV_MAC}
46	${ARP} -a 2>&1| \
47		diff -u ${.CURDIR}/${.TARGET}.ok /dev/stdin
48
49# Not specifying "pub" should generate an error
50n=	3
51RTTEST_TARGETS+:=arptest${n}
52arptest${n}:
53	${ARP} -s 192.0.2.42 ${PRIV_MAC}
54	${ARP} -s 192.0.2.42 ${PUB_MAC} && exit 1 || exit 0
55	${ARP} -a 2>&1| \
56		diff -u ${.CURDIR}/${.TARGET}.ok /dev/stdin
57
58# Not specifying "pub" works only if "-F" is specified
59n=	4
60RTTEST_TARGETS+:=arptest${n}
61arptest${n}:
62	${ARP} -s 192.0.2.42 ${PRIV_MAC}
63	${ARP} -Fs 192.0.2.42 ${PUB_MAC}
64	${ARP} -a 2>&1 | \
65		diff -u ${.CURDIR}/${.TARGET}.ok /dev/stdin
66
67# Test that "permanent" entries are correctly created
68n=	5
69RTTEST_TARGETS+:=arptest${n}
70arptest${n}:
71	${ARP} -s 192.0.2.42 ${PRIV_MAC} "permanent"
72	${ARP} -a 2>&1 | \
73		diff -u ${.CURDIR}/${.TARGET}.ok /dev/stdin
74
75# Tryin to add two "pub" entries should generate and error
76n=	6
77RTTEST_TARGETS+:=arptest${n}
78arptest${n}:
79	${ARP} -s 192.0.2.42 ${PRIV_MAC}
80	${ARP} -s 192.0.2.42 ${PUB_MAC} pub
81	${ARP} -s 192.0.2.42 ${OTHER_MAC} pub && exit 1 || exit 0
82	${ARP} -a 2>&1| \
83		diff -u ${.CURDIR}/${.TARGET}.ok /dev/stdin
84
85REGRESS_TARGETS=${RTTEST_TARGETS}
86REGRESS_ROOT_TARGETS=${REGRESS_TARGETS}
87.PHONY: ${REGRESS_TARGETS}
88
89.include <bsd.regress.mk>
90