1# $OpenBSD: Makefile.inc,v 1.6 2023/10/13 19:28:59 anton Exp $
2
3PERL_REQUIRE != perl -e 'eval { require File::Slurp } or print $$@'
4
5TESTS1=		create read mmap
6TESTS2=		many_files_root many_files_subdir file_write
7TESTS= ${TESTS1} ${TESTS2}
8
9FILEOPS_MNT=	/mnt/regress-fileops-${FS}
10FILEOPS_PROG=	${.OBJDIR}/../fileops
11CLEANFILES=	diskimage vnd
12
13.poison !defined (MOUNT)
14.poison !defined (NEWFS)
15
16.PHONY: disk mount unconfig clean
17
18disk: unconfig
19	dd if=/dev/urandom of=diskimage bs=1M count=64
20	vnconfig diskimage >vnd
21	${NEWFS} /dev/r$$(<vnd)c
22
23REGRESS_SETUP_ONCE+=	mount
24mount: disk
25	mkdir -p ${FILEOPS_MNT}
26	${MOUNT} /dev/$$(<vnd)c ${FILEOPS_MNT}
27
28REGRESS_CLEANUP+=	umount
29umount:
30	umount -f ${FILEOPS_MNT} || true
31
32REGRESS_CLEANUP+=	unconfig
33unconfig:
34	-umount -f /dev/$$(<vnd)c 2>/dev/null || true
35	-rmdir ${FILEOPS_MNT} 2>/dev/null || true
36	-vnconfig -u $$(<vnd) 2>/dev/null || true
37	rm -f stamp-setup
38
39${.OBJDIR}/../fileops:
40	${.MAKE} -C ${.CURDIR}/.. fileops
41
42.for t in ${TESTS1}
43REGRESS_TARGETS+=	run-$t
44run-$t: ${.OBJDIR}/../fileops
45	cd ${FILEOPS_MNT} && \
46	    ${FILEOPS_PROG} $t ${FILEOPS_MNT}/file
47.endfor
48
49.for t in ${TESTS2}
50REGRESS_TARGETS+=	run-$t
51run-$t: ${.CURDIR}/../fileops2.pl
52.if ! empty(PERL_REQUIRE)
53	@echo "${PERL_REQUIRE}"
54	@echo "Install the p5-File-Slurp package to run fileops $t subtest"
55	@echo SKIPPED
56.else
57	perl ${.CURDIR}/../fileops2.pl $t ${FILEOPS_MNT}
58.endif
59.endfor
60