fix number of queued ids passed from findtwixt() to got_pack_paint_commits()
[got-portable.git] / regress / gotwebd / Makefile
blob803eb4958024659ae980b5f51216764b4ebbe37b
1 .PATH:${.CURDIR}/../../lib
3 REGRESS_TARGETS=test_gotwebd test_gotwebd_paginate
5 PROG = gotwebd_test
6 SRCS = gotwebd_test.c error.c hash.c pollfd.c
8 CPPFLAGS = -I${.CURDIR}/../../include -I${.CURDIR}/../../lib
10 NOMAN = yes
12 .PHONY: ensure_root prepare_test_env prepare_test_repo start_gotwebd \
13 gotwebd_test_conf gotwebd_test_conf_paginate
15 GOTWEBD_TEST_TMPDIR=/tmp
16 GOTWEBD_TEST_ROOT?!!=mktemp -d "${GOTWEBD_TEST_TMPDIR}/gotwebd-test-XXXXXXXXXX"
17 GOTWEBD_TEST_CHROOT=${GOTWEBD_TEST_ROOT}/var/www
18 GOTWEBD_TEST_CONF=${GOTWEBD_TEST_ROOT}/gotwebd.conf
19 GOTWEBD_TEST_SOCK=${GOTWEBD_TEST_CHROOT}/gotweb.sock
20 GOTWEBD_TEST_FCGI=${.OBJDIR}/${PROG}
21 GOTWEBD_TEST_PAGINATE_NITEMS?=15 # must be a multiple of 3 (items per page)
22 GOTWEBD_CHECK_MEMLEAK=export MALLOC_OPTIONS=1; ktrace -d -tu -i -f ${GOTWEBD_TEST_ROOT}/ktrace.out
24 GOTWEBD_TEST_USER?=${DOAS_USER}
25 .if empty(GOTWEBD_TEST_USER)
26 GOTWEBD_TEST_USER=${SUDO_USER}
27 .endif
28 .if empty(GOTWEBD_TEST_USER)
29 GOTWEBD_TEST_USER=${USER}
30 .endif
32 GOTWEBD_TEST_USER_HOME!=getent passwd ${GOTWEBD_TEST_USER} | cut -d: -f6
34 PREFIX ?= /usr/local
35 BINDIR ?= ${PREFIX}/sbin
37 GOTWEBD_START_CMD?=${BINDIR}/gotwebd -vvf ${GOTWEBD_TEST_CONF}
38 GOTWEBD_STOP_CMD?=pkill -TERM -fx '${GOTWEBD_START_CMD}'
39 GOTWEBD_TRAP=trap "${GOTWEBD_STOP_CMD}" HUP INT QUIT PIPE TERM
41 GOTWEBD_TEST_ENV=GOTWEBD_TEST_SOCK=${GOTWEBD_TEST_SOCK} \
42 GOTWEBD_TEST_CHROOT=${GOTWEBD_TEST_CHROOT} \
43 GOTWEBD_TEST_ROOT=${GOTWEBD_TEST_ROOT} \
44 GOTWEBD_TEST_CONF=${GOTWEBD_TEST_CONF} \
45 GOTWEBD_TEST_USER=${GOTWEBD_TEST_USER} \
46 GOTWEBD_TEST_FCGI=${GOTWEBD_TEST_FCGI} \
47 GOTWEBD_TEST_PAGINATE_NITEMS=${GOTWEBD_TEST_PAGINATE_NITEMS} \
48 PATH=$(GOTWEBD_TEST_USER_HOME)/bin:${PATH} \
49 HOME=$(GOTWEBD_TEST_USER_HOME) \
50 GOTWEBD_TEST_DATA_DIR=${.CURDIR}
52 ensure_root:
53 @if [[ `id -u` -ne 0 ]]; then \
54 echo gotwebd test suite must be started by root >&2; \
55 false; \
56 fi ; \
57 if [[ "${GOTWEBD_TEST_USER}" = "root" ]]; then \
58 echo GOTWEBD_TEST_USER must be a non-root user >&2; \
59 false; \
62 gotwebd_libexec:
63 @su -m ${GOTWEBD_TEST_USER} -c \
64 '${MAKE} -C ${.CURDIR}/../../gotwebd/libexec' >/dev/null 2>&1
66 prepare_test_env: ensure_root gotwebd_libexec
67 @mkdir -p "${GOTWEBD_TEST_CHROOT}"
68 @DESTDIR=${GOTWEBD_TEST_ROOT} \
69 ${MAKE} -C ${.CURDIR}/../../gotwebd/libexec install >/dev/null 2>&1
70 @chown ${GOTWEBD_TEST_USER} "${GOTWEBD_TEST_ROOT}" \
71 "${GOTWEBD_TEST_CHROOT}"
73 prepare_test_repo: prepare_test_env
74 @su -m ${GOTWEBD_TEST_USER} -c 'env ${GOTWEBD_TEST_ENV} \
75 sh ${.CURDIR}/prepare_test_repo.sh "${GOTWEBD_TEST_CHROOT}"'
77 gotwebd_test_conf:
78 @echo 'user "${GOTWEBD_TEST_USER}"' > ${GOTWEBD_TEST_CONF}
79 @echo 'chroot "${GOTWEBD_TEST_CHROOT}"' >> ${GOTWEBD_TEST_CONF}
80 @echo 'listen on socket "${GOTWEBD_TEST_SOCK}"' >> ${GOTWEBD_TEST_CONF}
81 @echo 'server "localhost" {' >> ${GOTWEBD_TEST_CONF}
82 @echo ' show_repo_owner off' >> ${GOTWEBD_TEST_CONF}
83 @echo '}' >> ${GOTWEBD_TEST_CONF}
85 gotwebd_test_conf_paginate: gotwebd_test_conf
86 @printf '5i\n max_commits_display 3\n.\nwq\n' | \
87 ed -s ${GOTWEBD_TEST_CONF}
89 start_gotwebd: prepare_test_repo gotwebd_test
90 @${GOTWEBD_TRAP}; ${GOTWEBD_CHECK_MEMLEAK} ${GOTWEBD_START_CMD}
91 @${GOTWEBD_TRAP}; sleep .5
93 test_gotwebd: gotwebd_test_conf start_gotwebd
94 @-$(GOTWEBD_TRAP); su -m ${GOTWEBD_TEST_USER} -c \
95 'env $(GOTWEBD_TEST_ENV) sh ${.CURDIR}/test_gotwebd.sh'
96 @${GOTWEBD_STOP_CMD} 2>/dev/null
97 @kdump -u malloc -f ${GOTWEBD_TEST_ROOT}/ktrace.out \
98 > ${GOTWEBD_TEST_ROOT}/leak-report && \
99 if grep -q "/gotwebd 0x" ${GOTWEBD_TEST_ROOT}/leak-report; then \
100 cat ${GOTWEBD_TEST_ROOT}/leak-report; \
101 exit 1; \
104 test_gotwebd_paginate: gotwebd_test_conf_paginate start_gotwebd
105 @-${GOTWEBD_TRAP}; su -m ${GOTWEBD_TEST_USER} -c \
106 'env ${GOTWEBD_TEST_ENV} sh ${.CURDIR}/test_gotwebd_paginate.sh'
107 @${GOTWEBD_STOP_CMD} 2>/dev/null
108 @kdump -u malloc -f ${GOTWEBD_TEST_ROOT}/ktrace.out \
109 > ${GOTWEBD_TEST_ROOT}/leak-report && \
110 if grep -q "/gotwebd 0x" ${GOTWEBD_TEST_ROOT}/leak-report; then \
111 cat ${GOTWEBD_TEST_ROOT}/leak-report; \
112 exit 1; \
115 .include <bsd.regress.mk>