1# $OpenBSD: Makefile,v 1.4 2023/10/12 16:59:24 anton Exp $ 2 3# Call realpath(3) in combination with chroot(2), chdir(2). 4# Use umount(8) to check that the mountpoint leaks no vnode. 5# There were vnode reference counting bugs in the kernel. 6 7PROGS= realpath-chroot realpath-chdir 8CLEANFILES= diskimage vnd 9 10.PHONY: mount unconfig clean 11 12diskimage: unconfig 13 ${SUDO} dd if=/dev/zero of=diskimage bs=512 count=4k 14 ${SUDO} vnconfig diskimage >vnd 15 ${SUDO} newfs $$(<vnd)c 16 17mount: diskimage 18 ${SUDO} mkdir -p /mnt/regress-realpath 19 ${SUDO} mount /dev/$$(<vnd)c /mnt/regress-realpath 20 21unconfig: 22 -${SUDO} umount -f /dev/$$(<vnd)c 2>/dev/null || true 23 -${SUDO} rmdir /mnt/regress-realpath 2>/dev/null || true 24 -${SUDO} vnconfig -u $$(<vnd) 2>/dev/null || true 25 -${SUDO} rm -f stamp-setup 26 27REGRESS_SETUP = ${PROGS} mount 28REGRESS_CLEANUP = unconfig 29REGRESS_TARGETS = 30 31REGRESS_TARGETS += run-chroot 32run-chroot: 33 ${SUDO} mkdir -p /mnt/regress-realpath 34 ${SUDO} ./realpath-chroot /mnt/regress-realpath / 35 ${SUDO} umount /mnt/regress-realpath 36 37REGRESS_TARGETS += run-chroot-dir 38run-chroot-dir: 39 ${SUDO} mkdir -p /mnt/regress-realpath/foo 40 ${SUDO} ./realpath-chroot /mnt/regress-realpath/foo / 41 ${SUDO} umount /mnt/regress-realpath 42 43REGRESS_TARGETS += run-chroot-subdir 44run-chroot-subdir: 45 ${SUDO} mkdir -p /mnt/regress-realpath/foo 46 ${SUDO} ./realpath-chroot /mnt/regress-realpath /foo 47 ${SUDO} umount /mnt/regress-realpath 48 49REGRESS_TARGETS += run-chroot-dir-subdir 50run-chroot-dir-subdir: 51 ${SUDO} mkdir -p /mnt/regress-realpath/foo/bar 52 ${SUDO} ./realpath-chroot /mnt/regress-realpath/foo /bar 53 ${SUDO} umount /mnt/regress-realpath 54 55REGRESS_TARGETS += run-chdir 56run-chdir: 57 ${SUDO} mkdir -p /mnt/regress-realpath 58 ${SUDO} ./realpath-chdir /mnt/regress-realpath . 59 ${SUDO} umount /mnt/regress-realpath 60 61REGRESS_TARGETS += run-chdir-dir 62run-chdir-dir: 63 ${SUDO} mkdir -p /mnt/regress-realpath/foo 64 ${SUDO} ./realpath-chdir /mnt/regress-realpath/foo . 65 ${SUDO} umount /mnt/regress-realpath 66 67REGRESS_TARGETS += run-chdir-subdir 68run-chdir-subdir: 69 ${SUDO} mkdir -p /mnt/regress-realpath/foo 70 ${SUDO} ./realpath-chdir /mnt/regress-realpath foo 71 ${SUDO} umount /mnt/regress-realpath 72 73REGRESS_TARGETS += run-chdir-dir-subdir 74run-chdir-dir-subdir: 75 ${SUDO} mkdir -p /mnt/regress-realpath/foo/bar 76 ${SUDO} ./realpath-chdir /mnt/regress-realpath/foo bar 77 ${SUDO} umount /mnt/regress-realpath 78 79REGRESS_ROOT_TARGETS = ${REGRESS_TARGETS} 80 81.include <bsd.regress.mk> 82