1#	$OpenBSD: Makefile,v 1.4 2024/02/20 21:10:26 bluhm Exp $
2
3# Copyright (c) 2022 Alexandr Nedvedicky <sashan@openbsd.org>
4#
5# Permission to use, copy, modify, and distribute this software for any
6# purpose with or without fee is hereby granted, provided that the above
7# copyright notice and this permission notice appear in all copies.
8#
9# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16#
17
18#
19# REMOTE_ADDR use any remote host which is
20# reachable for ping(8)
21#
22REMOTE_ADDR ?= 10.188.210.50
23
24TESTS_PASS =	absolute	\
25		quick		\
26		relative
27
28TESTS_BLOCK =	list		\
29		loop-relative	\
30		loop		\
31		nesting		\
32		simple
33
34TESTS_ONCE =	nesting-once	\
35		once
36
37.include <bsd.own.mk>
38
39.if ! (make(clean) || make(cleandir) || make(obj))
40
41REACHABLE != ping -c 1 -w 1 ${REMOTE_ADDR} > /dev/null 2>&1 && echo yes || :
42.if empty(REACHABLE)
43regress:
44	@echo Cannot reach ${REMOTE_ADDR}
45	@echo SKIPPED
46.endif
47
48.endif
49
50REGRESS_SETUP_ONCE = enable-pf
51enable-pf:
52	${SUDO} pfctl -e || true
53
54REGRESS_TARGETS += check-probe-host
55
56check-probe-host:
57	ping -c 1 -w 1 ${REMOTE_ADDR}
58
59.for rules in ${TESTS_PASS}
60REGRESS_TARGETS +=	run-pass-${rules}
61run-pass-${rules}:
62	${SUDO} pfctl -a "regress/*" -Fa
63	${SUDO} pfctl -a "regress" -f ${.CURDIR}/${rules}.conf
64	ping -c 1 -w 1 ${REMOTE_ADDR}
65.endfor
66
67.for rules in ${TESTS_BLOCK}
68REGRESS_TARGETS +=	run-block-${rules}
69run-block-${rules}:
70	${SUDO} pfctl -a "regress/*" -Fa
71	ping -c 1 -w 1 ${REMOTE_ADDR}
72	${SUDO} pfctl -a "regress" -f ${.CURDIR}/${rules}.conf
73	ping -c 1 -w 1 ${REMOTE_ADDR} || true
74.endfor
75
76.for rules in ${TESTS_ONCE}
77REGRESS_TARGETS +=	run-once-${rules}
78run-once-${rules}:
79	${SUDO} pfctl -a "regress/*" -Fa
80	${SUDO} pfctl -a "regress" -f ${.CURDIR}/${rules}.conf
81	ping -c 1 -w 1 ${REMOTE_ADDR}
82	ping -c 1 -w 1 ${REMOTE_ADDR} || true
83.endfor
84
85REGRESS_CLEANUP += cleanup
86
87cleanup:
88	${SUDO} pfctl -a "regress/*" -Fr
89
90.include <bsd.regress.mk>
91