1#	$OpenBSD: Makefile,v 1.6 2024/01/26 18:09:24 bluhm Exp $
2
3PROG=		bindconnect
4LDADD=		-lpthread
5DPADD=		${LIBPTHREAD}
6WARNINGS=	yes
7
8CLEANFILES=	ktrace.out
9
10LOCAL_NET ?=
11LOCAL_NET6 ?=
12
13REGRESS_ROOT_TARGETS +=	setup-maxfiles
14REGRESS_SETUP_ONCE +=	setup-maxfiles
15setup-maxfiles:
16	[[ $$(sysctl -n kern.maxfiles) -ge 110000 ]] || \
17	    ${SUDO} sysctl kern.maxfiles=110000
18
19REGRESS_SETUP +=	${PROG}
20
21REGRESS_TARGETS +=	run-default
22run-default:
23	time ${KTRACE} ./${PROG}
24
25NET_inet =	${LOCAL_NET}
26NET_inet6 =	${LOCAL_NET6}
27
28.for af in inet inet6
29
30.if ! empty(NET_${af})
31REGRESS_CLEANUP +=	cleanup-${af}-delete
32.endif
33cleanup-${af}-delete:
34	-${SUDO} time ./${PROG} \
35	    -f ${af} -s 0 -o 0 -b 0 -c 0 -d 1 -N ${NET_${af}} -t 1
36
37.for proto in udp tcp any
38
39.if "${proto}" != udp && "${proto}" != tcp
40SUDO_${proto} = ${SUDO}
41.else
42SUDO_${proto} =
43.endif
44
45REGRESS_TARGETS +=	run-${af}-${proto}-bind
46run-${af}-${proto}-bind:
47	${SUDO_${proto}} time ${KTRACE} ./${PROG} \
48	    -f ${af} -p ${proto} -n 16 -s 2 -o 1 -b 6 -c 0
49
50REGRESS_TARGETS +=	run-${af}-${proto}-connect
51run-${af}-${proto}-connect:
52	${SUDO_${proto}} time ${KTRACE} ./${PROG} \
53	    -f ${af} -p ${proto} -n 16 -s 2 -o 1 -b 0 -c 6
54
55REGRESS_TARGETS +=	run-${af}-${proto}-bind-connect
56run-${af}-${proto}-bind-connect:
57	${SUDO_${proto}} time ${KTRACE} ./${PROG} \
58	    -f ${af} -p ${proto} -n 16 -s 2 -o 1 -b 3 -c 3
59
60# skip test on armv7, it fails with malloc: out of space in kmem_map
61.if "${MACHINE}" == armv7 || "${MACHINE}" == macppc
62REGRESS_SKIP_TARGETS +=	run-${af}-${proto}-100000
63.endif
64REGRESS_ROOT_TARGETS +=	run-${af}-${proto}-100000
65REGRESS_TARGETS +=	run-${af}-${proto}-100000
66run-${af}-${proto}-100000:
67	${SUDO} time ${KTRACE} ./${PROG} \
68	    -f ${af} -p ${proto} -n 100000 -s 2 -o 1 -b 3 -c 3
69
70REGRESS_TARGETS +=	run-${af}-${proto}-reuseport
71run-${af}-${proto}-reuseport:
72	${SUDO_${proto}} time ${KTRACE} ./${PROG} \
73	    -f ${af} -p ${proto} -n 16 -s 2 -o 1 -b 3 -c 3 -r
74
75.if empty(NET_${af})
76REGRESS_SKIP_TARGETS +=	run-${af}-${proto}-localnet-connect \
77			run-${af}-${proto}-localnet-bind-connect \
78			run-${af}-${proto}-localnet-connect-delete
79.endif
80
81REGRESS_TARGETS +=	run-${af}-${proto}-localnet-connect
82run-${af}-${proto}-localnet-connect:
83	${SUDO_${proto}} time ${KTRACE} ./${PROG} \
84	    -f ${af} -p ${proto} -n 16 -s 2 -o 1 -c 6 -N ${NET_${af}}
85
86REGRESS_TARGETS +=	run-${af}-${proto}-localnet-bind-connect
87run-${af}-${proto}-localnet-bind-connect:
88	${SUDO_${proto}} time ${KTRACE} ./${PROG} \
89	    -f ${af} -p ${proto} -n 16 -s 2 -o 1 -b 3 -c 3 -N ${NET_${af}}
90
91REGRESS_ROOT_TARGETS +=	run-${af}-${proto}-localnet-connect-delete
92REGRESS_TARGETS +=	run-${af}-${proto}-localnet-connect-delete
93run-${af}-${proto}-localnet-connect-delete:
94	${SUDO} time ${KTRACE} ./${PROG} \
95	    -f ${af} -p ${proto} -n 16 -s 2 -o 1 -b 0 -c 6 -d 3 -N ${NET_${af}}
96
97.endfor
98.endfor
99
100REGRESS_ROOT_TARGETS +=	${REGRESS_TARGETS:M*-any-*}
101
102.include <bsd.regress.mk>
103