xref: /openbsd-src/regress/sys/netinet6/rip6cksum/Makefile (revision ba7d95abfe5fb55ca52e6508a97e64f0ec0d40f5)
1# $OpenBSD: Makefile,v 1.7 2025/01/17 07:57:22 anton Exp $
2
3# The following ports must be installed:
4#
5# scapy               powerful interactive packet manipulation in python
6
7.if ! exists(/usr/local/bin/scapy)
8regress:
9	@echo Install scapy package to run this regress.
10	@echo SKIPPED
11.endif
12
13PROG =		rip6cksum
14WARNINGS =	yes
15
16PYTHON =	python3 -u ${.CURDIR}/
17
18REGRESS_SETUP +=	${PROG}
19
20REGRESS_TARGETS +=	run-error-negative
21run-error-negative:
22	# set socket option IPV6_CHECKSUM to -2, expect error
23	${SUDO} ./rip6cksum -c -2 -e
24
25REGRESS_TARGETS +=	run-error-odd
26run-error-odd:
27	# set socket option IPV6_CHECKSUM to 1, expect error
28	${SUDO} ./rip6cksum -c 1 -e
29
30REGRESS_TARGETS +=	run-no-cksum
31run-no-cksum:
32	# send and receive packet without checksum
33	${SUDO} ./rip6cksum -r 32 -s 8 -w -- \
34	    ${PYTHON}sendrecv.py -r 8 -s 32
35
36REGRESS_TARGETS +=	run-bad-cksum
37run-bad-cksum:
38	# enable checksum, send packet without checksum, expect icmp
39	${SUDO} ./rip6cksum -c 0 -- \
40	    ${PYTHON}sendrecv.py -i -r 32 -s 32
41
42REGRESS_TARGETS +=	run-disable-cksum
43run-disable-cksum:
44	# send and receive packet with explicitly disabled checksum
45	${SUDO} ./rip6cksum -c -1 -r 32 -s 8 -w -- \
46	    ${PYTHON}sendrecv.py -r 8 -s 32
47
48REGRESS_TARGETS +=	run-ckoff-0
49run-ckoff-0:
50	# use checksum at offset 0
51	${SUDO} ./rip6cksum -c 0 -r 32 -s 8 -w -- \
52	    ${PYTHON}sendrecv.py -c 0 -r 8 -s 32
53
54REGRESS_TARGETS +=	run-ckoff-0-empty
55run-ckoff-0-empty:
56	# use checksum at offset 0, but packet is empty, expect icmp
57	${SUDO} ./rip6cksum -c 0 -- \
58	    ${PYTHON}sendrecv.py -i -r 0 -s 0
59
60REGRESS_TARGETS +=	run-ckoff-0-short
61run-ckoff-0-short:
62	# use checksum at offset 0, but packet is only 1 byte long, expect icmp
63	${SUDO} ./rip6cksum -c 0 -- \
64	    ${PYTHON}sendrecv.py -i -r 1 -s 1
65
66REGRESS_TARGETS +=	run-ckoff-0-exact
67run-ckoff-0-exact:
68	# use checksum at offset 0, packet is exactly 2 bytes long
69	${SUDO} ./rip6cksum -c 0 -r 2 -s 2 -w -- \
70	    ${PYTHON}sendrecv.py -c 0 -s 2
71
72REGRESS_TARGETS +=	run-ckoff-0-long
73run-ckoff-0-long:
74	# use checksum at offset 0, packet is 3 bytes long
75	${SUDO} ./rip6cksum -c 0 -r 3 -s 3 -w -- \
76	    ${PYTHON}sendrecv.py -c 0 -s 3
77
78REGRESS_TARGETS +=	run-ckoff-2
79run-ckoff-2:
80	# use checksum at offset 2
81	${SUDO} ./rip6cksum -c 2 -r 32 -s 8 -w -- \
82	    ${PYTHON}sendrecv.py -c 2 -r 8 -s 32
83
84REGRESS_TARGETS +=	run-ckoff-2-empty
85run-ckoff-2-empty:
86	# use checksum at offset 2, but packet is empty, expect icmp
87	${SUDO} ./rip6cksum -c 2 -- \
88	    ${PYTHON}sendrecv.py -i -r 0 -s 0
89
90REGRESS_TARGETS +=	run-ckoff-2-short-1
91run-ckoff-2-short-1:
92	# use checksum at offset 2, but packet is only 1 byte long, expect icmp
93	${SUDO} ./rip6cksum -c 2 -- \
94	    ${PYTHON}sendrecv.py -i -r 1 -s 1
95
96REGRESS_TARGETS +=	run-ckoff-2-short-2
97run-ckoff-2-short-2:
98	# use checksum at offset 2, but packet is only 2 byte long, expect icmp
99	${SUDO} ./rip6cksum -c 2 -- \
100	    ${PYTHON}sendrecv.py -i -r 2 -s 2
101
102REGRESS_TARGETS +=	run-ckoff-2-short-3
103run-ckoff-2-short-3:
104	# use checksum at offset 2, but packet is only 3 byte long, expect icmp
105	${SUDO} ./rip6cksum -c 2 -- \
106	    ${PYTHON}sendrecv.py -i -r 3 -s 3
107
108REGRESS_TARGETS +=	run-ckoff-2-exact
109run-ckoff-2-exact:
110	# use checksum at offset 2, packet is exactly 4 bytes long
111	${SUDO} ./rip6cksum -c 2 -r 4 -s 4 -w -- \
112	    ${PYTHON}sendrecv.py -c 2 -s 4
113
114REGRESS_TARGETS +=	run-ckoff-2-long
115run-ckoff-2-long:
116	# use checksum at offset 2, packet is 5 bytes long
117	${SUDO} ./rip6cksum -c 2 -r 5 -s 5 -w -- \
118	    ${PYTHON}sendrecv.py -c 2 -s 5
119
120# XXX expected failures caused by the upgrade to scapy 2.4.5.
121REGRESS_EXPECTED_FAILURES+=run-bad-cksum
122REGRESS_EXPECTED_FAILURES+=run-ckoff-0
123REGRESS_EXPECTED_FAILURES+=run-ckoff-0-empty
124REGRESS_EXPECTED_FAILURES+=run-ckoff-0-exact
125REGRESS_EXPECTED_FAILURES+=run-ckoff-0-long
126REGRESS_EXPECTED_FAILURES+=run-ckoff-0-short
127REGRESS_EXPECTED_FAILURES+=run-ckoff-2
128REGRESS_EXPECTED_FAILURES+=run-ckoff-2-empty
129REGRESS_EXPECTED_FAILURES+=run-ckoff-2-exact
130REGRESS_EXPECTED_FAILURES+=run-ckoff-2-long
131REGRESS_EXPECTED_FAILURES+=run-ckoff-2-short-1
132REGRESS_EXPECTED_FAILURES+=run-ckoff-2-short-2
133REGRESS_EXPECTED_FAILURES+=run-ckoff-2-short-3
134REGRESS_EXPECTED_FAILURES+=run-disable-cksum
135REGRESS_EXPECTED_FAILURES+=run-no-cksum
136
137.include <bsd.regress.mk>
138