xref: /openbsd-src/regress/usr.bin/rsync/Makefile (revision 932b7127be46854fb6d1ab69a58afbd62992e1ab)
1# $OpenBSD: Makefile,v 1.5 2023/07/28 17:25:32 bluhm Exp $
2
3# evaluate once in main make invocation, then get list of test from environment
4.if ! (make(clean) || make(cleandir) || make(obj))
5RSYNC_TESTS ?!=	ls -1 ${.CURDIR}/*.test
6.MAKEFLAGS :=	RSYNC_TESTS="${RSYNC_TESTS}"
7.endif
8
9RSYNC_OPEN =	/usr/bin/openrsync
10RSYNC_PORT =	/usr/local/bin/rsync
11
12clean:
13	rm -rf dir* find*
14
15# some of these tests pass or fail unreliably
16REGRESS_EXPECTED_FAILURES =	run-openrsync-openrsync-test3_minusexclude \
17				run-openrsync-openrsync-test6b_perms \
18				run-openrsync-openrsync-test7_symlinks \
19				run-openrsync-openrsync-test10_perms \
20				run-openrsync-openrsync-test13b_perms \
21				run-openrsync-rsync-test3_minusexclude \
22				run-openrsync-rsync-test6b_perms \
23				run-openrsync-rsync-test7_symlinks \
24				run-openrsync-rsync-test10_perms \
25				run-openrsync-rsync-test13b_perms
26
27.if ! exists(${RSYNC_PORT})
28.for t in ${RSYNC_TESTS}
29REGRESS_SKIP_TARGETS +=		run-${RSYNC_OPEN:T}-${RSYNC_PORT:T}-${t:T:R}
30REGRESS_SKIP_TARGETS +=		run-${RSYNC_PORT:T}-${RSYNC_OPEN:T}-${t:T:R}
31REGRESS_SKIP_TARGETS +=		run-${RSYNC_PORT:T}-${RSYNC_PORT:T}-${t:T:R}
32.endfor
33.endif
34
35# these test have to run as regular user
36USER_TESTS =			test13b_perms
37
38ROOT_USER !=			id -g
39.for t in ${RSYNC_TESTS}
40.if ${ROOT_USER} != 0 || empty(USER_TESTS:M${t:T:R})
41SH_${t:T:R} =			sh
42.else
43SH_${t:T:R} =			su build
44.endif
45.endfor
46
47.for l in ${RSYNC_OPEN} ${RSYNC_PORT}
48.for r in ${RSYNC_OPEN} ${RSYNC_PORT}
49
50RSYNC_$l_$r =	$l --rsync-path=$r
51
52.for t in ${RSYNC_TESTS}
53REGRESS_TARGETS +=		run-${l:T}-${r:T}-${t:T:R}
54run-${l:T}-${r:T}-${t:T:R}: clean
55	tstdir="${.CURDIR}" rsync="${RSYNC_$l_$l}" ${SH_${t:T:R}} $t
56.endfor
57
58.endfor
59.endfor
60
61.include <bsd.regress.mk>
62