Blob


1 REGRESS_TARGETS=test_repo_read test_repo_write test_repo_write_empty
2 NOOBJ=Yes
4 .PHONY: ensure_root prepare_test_repo check_test_repo start_gotd
6 GOTD_TEST_ROOT=/tmp
7 GOTD_DEVUSER?=gotdev
8 GOTD_DEVUSER_HOME!=userinfo $(GOTD_DEVUSER) | awk '/^dir/ {print $$2}'
9 GOTD_TEST_REPO!?=mktemp -d "$(GOTD_TEST_ROOT)/gotd-test-repo-XXXXXXXXX"
10 GOTD_TEST_REPO_URL=ssh://${GOTD_DEVUSER}@127.0.0.1/test-repo
12 GOTD_TEST_USER?=${LOGNAME}
13 GOTD_TEST_USER_HOME!=userinfo $(GOTD_TEST_USER) | awk '/^dir/ {print $$2}'
15 # gotd.conf parameters
16 GOTD_USER?=got
17 GOTD_GROUP?=gotsh
18 GOTD_SOCK=${GOTD_DEVUSER_HOME}/gotd.sock
20 GOTD_START_CMD=../../gotd/obj/gotd -vv -f $(PWD)/gotd.conf
21 GOTD_STOP_CMD=../../gotctl/obj/gotctl -f $(GOTD_SOCK) stop
22 GOTD_TRAP=trap "$(GOTD_STOP_CMD)" HUP INT QUIT PIPE TERM
24 GOTD_TEST_ENV=GOTD_TEST_ROOT=$(GOTD_TEST_ROOT) \
25 GOTD_TEST_REPO_URL=$(GOTD_TEST_REPO_URL) \
26 GOTD_TEST_REPO=$(GOTD_TEST_REPO) \
27 GOTD_SOCK=$(GOTD_SOCK) \
28 GOTD_DEVUSER=$(GOTD_DEVUSER) \
29 HOME=$(GOTD_TEST_USER_HOME) \
30 PATH=$(GOTD_TEST_USER_HOME)/bin:$(PATH)
32 ensure_root:
33 @if [[ `id -u` -ne 0 ]]; then \
34 echo gotd test suite must be run by root >&2; \
35 false; \
36 fi
38 start_gotd: ensure_root
39 @echo 'unix_socket "$(GOTD_SOCK)"' > $(PWD)/gotd.conf
40 @echo "unix_group $(GOTD_GROUP)" >> $(PWD)/gotd.conf
41 @echo "user $(GOTD_USER)" >> $(PWD)/gotd.conf
42 @echo 'repository "test-repo" {' >> $(PWD)/gotd.conf
43 @echo ' path "$(GOTD_TEST_REPO)"' >> $(PWD)/gotd.conf
44 @echo "}" >> $(PWD)/gotd.conf
45 @$(GOTD_TRAP); $(GOTD_START_CMD)
46 @$(GOTD_TRAP); sleep .5
48 prepare_test_repo: ensure_root
49 @chown ${GOTD_USER} "${GOTD_TEST_REPO}"
50 @su -m ${GOTD_USER} -c 'env $(GOTD_TEST_ENV) sh ./prepare_test_repo.sh'
52 prepare_test_repo_empty: ensure_root
53 @chown ${GOTD_USER} "${GOTD_TEST_REPO}"
54 @su -m ${GOTD_USER} -c 'env $(GOTD_TEST_ENV) sh ./prepare_test_repo.sh 1'
56 test_repo_read: prepare_test_repo start_gotd
57 @-$(GOTD_TRAP); su ${GOTD_TEST_USER} -c \
58 'env $(GOTD_TEST_ENV) sh ./repo_read.sh'
59 @$(GOTD_STOP_CMD) 2>/dev/null
60 @su -m ${GOTD_USER} -c 'env $(GOTD_TEST_ENV) sh ./check_test_repo.sh'
62 test_repo_write: prepare_test_repo start_gotd
63 @-$(GOTD_TRAP); su ${GOTD_TEST_USER} -c \
64 'env $(GOTD_TEST_ENV) sh ./repo_write.sh'
65 @$(GOTD_STOP_CMD) 2>/dev/null
66 @su -m ${GOTD_USER} -c 'env $(GOTD_TEST_ENV) sh ./check_test_repo.sh'
68 test_repo_write_empty: prepare_test_repo_empty start_gotd
69 @-$(GOTD_TRAP); su ${GOTD_TEST_USER} -c \
70 'env $(GOTD_TEST_ENV) sh ./repo_write_empty.sh'
71 @$(GOTD_STOP_CMD) 2>/dev/null
72 @su -m ${GOTD_USER} -c 'env $(GOTD_TEST_ENV) sh ./check_test_repo.sh'
74 .include <bsd.regress.mk>