xref: /openbsd-src/regress/usr.sbin/arp/Makefile (revision 427e22f8e717ab4da23953ab98ce4d9a9be2c052)
1# $OpenBSD: Makefile,v 1.4 2023/10/19 18:36:41 anton 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	-${SUDO} ifconfig lo${RDOMAIN} destroy
23
24.INTERRUPT:
25	-${SUDO} ifconfig vether10001 destroy
26	-${SUDO} ifconfig lo${RDOMAIN} destroy
27
28.endif
29.endif
30
31ARP=		${SUDO} arp -n -V ${RDOMAIN}
32
33# Two entries to the same destination are ok if one is "pub"
34n=	1
35RTTEST_TARGETS+:=arptest${n}
36arptest${n}:
37	${ARP} -s 192.0.2.42 ${PRIV_MAC}
38	${ARP} -s 192.0.2.42 ${PUB_MAC} pub
39	${ARP} -a 2>&1| \
40		diff -u ${.CURDIR}/${.TARGET}.ok /dev/stdin
41
42# Insert the "pub" entry first, it should not matter
43n=	2
44RTTEST_TARGETS+:=arptest${n}
45arptest${n}:
46	${ARP} -s 192.0.2.42 ${PUB_MAC} pub
47	${ARP} -s 192.0.2.42 ${PRIV_MAC}
48	${ARP} -a 2>&1| \
49		diff -u ${.CURDIR}/${.TARGET}.ok /dev/stdin
50
51# Not specifying "pub" should generate an error
52n=	3
53RTTEST_TARGETS+:=arptest${n}
54arptest${n}:
55	${ARP} -s 192.0.2.42 ${PRIV_MAC}
56	${ARP} -s 192.0.2.42 ${PUB_MAC} && exit 1 || exit 0
57	${ARP} -a 2>&1| \
58		diff -u ${.CURDIR}/${.TARGET}.ok /dev/stdin
59
60# Not specifying "pub" works only if "-F" is specified
61n=	4
62RTTEST_TARGETS+:=arptest${n}
63arptest${n}:
64	${ARP} -s 192.0.2.42 ${PRIV_MAC}
65	${ARP} -Fs 192.0.2.42 ${PUB_MAC}
66	${ARP} -a 2>&1 | \
67		diff -u ${.CURDIR}/${.TARGET}.ok /dev/stdin
68
69# Test that "permanent" entries are correctly created
70n=	5
71RTTEST_TARGETS+:=arptest${n}
72arptest${n}:
73	${ARP} -s 192.0.2.42 ${PRIV_MAC} "permanent"
74	${ARP} -a 2>&1 | \
75		diff -u ${.CURDIR}/${.TARGET}.ok /dev/stdin
76
77# Tryin to add two "pub" entries should generate and error
78n=	6
79RTTEST_TARGETS+:=arptest${n}
80arptest${n}:
81	${ARP} -s 192.0.2.42 ${PRIV_MAC}
82	${ARP} -s 192.0.2.42 ${PUB_MAC} pub
83	${ARP} -s 192.0.2.42 ${OTHER_MAC} pub && exit 1 || exit 0
84	${ARP} -a 2>&1| \
85		diff -u ${.CURDIR}/${.TARGET}.ok /dev/stdin
86
87REGRESS_TARGETS=${RTTEST_TARGETS}
88REGRESS_ROOT_TARGETS=${REGRESS_TARGETS}
89.PHONY: ${REGRESS_TARGETS}
90
91.include <bsd.regress.mk>
92