1 .PATH
:${.CURDIR
}/..
/..
/lib
3 REGRESS_TARGETS
=test_gotwebd
6 SRCS
= gotwebd_test.c error.c hash.c pollfd.c
8 CPPFLAGS
= -I
${.CURDIR
}/..
/..
/include -I
${.CURDIR
}/..
/..
/lib
12 .PHONY
: ensure_root prepare_test_env prepare_test_repo start_gotwebd
14 GOTWEBD_TEST_TMPDIR
=/tmp
15 GOTWEBD_TEST_ROOT?
!!=mktemp
-d
"${GOTWEBD_TEST_TMPDIR}/gotwebd-test-XXXXXXXXXX"
16 GOTWEBD_TEST_CHROOT
=${GOTWEBD_TEST_ROOT}/var
/www
17 GOTWEBD_TEST_CONF
=${GOTWEBD_TEST_ROOT}/gotwebd.conf
18 GOTWEBD_TEST_SOCK
=${GOTWEBD_TEST_CHROOT}/gotweb.sock
19 GOTWEBD_TEST_FCGI
=${.OBJDIR
}/${PROG}
21 GOTWEBD_TEST_USER?
=${DOAS_USER}
22 .if empty
(GOTWEBD_TEST_USER
)
23 GOTWEBD_TEST_USER
=${SUDO_USER}
25 .if empty
(GOTWEBD_TEST_USER
)
26 GOTWEBD_TEST_USER
=${USER}
29 GOTWEBD_TEST_USER_HOME
!=getent passwd
${GOTWEBD_TEST_USER} | cut
-d
: -f6
32 BINDIR ?
= ${PREFIX}/sbin
34 GOTWEBD_START_CMD?
=${BINDIR}/gotwebd
-vvf
${GOTWEBD_TEST_CONF}
35 GOTWEBD_STOP_CMD?
=pkill
-TERM
-fx
'${GOTWEBD_START_CMD}'
36 GOTWEBD_TRAP
=trap
"${GOTWEBD_STOP_CMD}" HUP INT QUIT PIPE TERM
38 GOTWEBD_TEST_ENV
=GOTWEBD_TEST_SOCK
=${GOTWEBD_TEST_SOCK} \
39 GOTWEBD_TEST_CHROOT
=${GOTWEBD_TEST_CHROOT} \
40 GOTWEBD_TEST_ROOT
=${GOTWEBD_TEST_ROOT} \
41 GOTWEBD_TEST_CONF
=${GOTWEBD_TEST_CONF} \
42 GOTWEBD_TEST_USER
=${GOTWEBD_TEST_USER} \
43 GOTWEBD_TEST_FCGI
=${GOTWEBD_TEST_FCGI} \
44 PATH
=$(GOTWEBD_TEST_USER_HOME
)/bin
:${PATH} \
45 HOME
=$(GOTWEBD_TEST_USER_HOME
) \
46 GOTWEBD_TEST_DATA_DIR
=${.CURDIR
}
49 @if
[[ `id -u` -ne
0 ]]; then \
50 echo gotwebd
test suite must be started by root
>&2; \
53 if
[[ "${GOTWEBD_TEST_USER}" = "root" ]]; then \
54 echo GOTWEBD_TEST_USER must be a non-root user
>&2; \
59 @su
-m
${GOTWEBD_TEST_USER} -c \
60 '${MAKE} -C ${.CURDIR}/../../gotwebd/libexec' >/dev
/null
2>&1
62 prepare_test_env
: ensure_root gotwebd_libexec
63 @mkdir
-p
"${GOTWEBD_TEST_CHROOT}"
64 @DESTDIR
=${GOTWEBD_TEST_ROOT} \
65 ${MAKE} -C
${.CURDIR
}/..
/..
/gotwebd
/libexec
install >/dev
/null
2>&1
66 @chown
${GOTWEBD_TEST_USER} "${GOTWEBD_TEST_ROOT}" \
67 "${GOTWEBD_TEST_CHROOT}"
69 prepare_test_repo
: prepare_test_env
70 @su
-m
${GOTWEBD_TEST_USER} -c
'env ${GOTWEBD_TEST_ENV} \
71 sh ${.CURDIR}/prepare_test_repo.sh "${GOTWEBD_TEST_CHROOT}"'
73 start_gotwebd
: prepare_test_repo gotwebd_test
74 @echo
'user "${GOTWEBD_TEST_USER}"' > ${GOTWEBD_TEST_CONF}
75 @echo
'chroot "${GOTWEBD_TEST_CHROOT}"' >> ${GOTWEBD_TEST_CONF}
76 @echo
'listen on socket "${GOTWEBD_TEST_SOCK}"' >> ${GOTWEBD_TEST_CONF}
77 @echo
'server "localhost" {' >> ${GOTWEBD_TEST_CONF}
78 @echo
' show_repo_owner off' >> ${GOTWEBD_TEST_CONF}
79 @echo
'}' >> ${GOTWEBD_TEST_CONF}
80 @
${GOTWEBD_TRAP}; ${GOTWEBD_START_CMD}
81 @
${GOTWEBD_TRAP}; sleep
.5
83 test_gotwebd
: start_gotwebd
84 @
-$(GOTWEBD_TRAP
); su
-m
${GOTWEBD_TEST_USER} -c \
85 'env $(GOTWEBD_TEST_ENV) sh ${.CURDIR}/test_gotwebd.sh'
86 @
${GOTWEBD_STOP_CMD} 2>/dev
/null
88 .
include <bsd.regress.mk
>