Blame


1 55f70a40 2022-11-17 stsp REGRESS_TARGETS=test_repo_read test_repo_read_group \
2 d5a5db9a 2022-11-17 stsp test_repo_read_denied_user test_repo_read_denied_group \
3 55f70a40 2022-11-17 stsp test_repo_read_bad_user test_repo_read_bad_group \
4 6eb6bfed 2022-12-20 stsp test_repo_write test_repo_write_empty test_req_wrong_commit
5 6ae16afd 2022-10-31 stsp NOOBJ=Yes
6 6ae16afd 2022-10-31 stsp
7 6ae16afd 2022-10-31 stsp .PHONY: ensure_root prepare_test_repo check_test_repo start_gotd
8 6ae16afd 2022-10-31 stsp
9 6ae16afd 2022-10-31 stsp GOTD_TEST_ROOT=/tmp
10 6ae16afd 2022-10-31 stsp GOTD_DEVUSER?=gotdev
11 4398c738 2022-10-31 op GOTD_DEVUSER_HOME!=userinfo $(GOTD_DEVUSER) | awk '/^dir/ {print $$2}'
12 6ae16afd 2022-10-31 stsp GOTD_TEST_REPO!?=mktemp -d "$(GOTD_TEST_ROOT)/gotd-test-repo-XXXXXXXXX"
13 6ae16afd 2022-10-31 stsp GOTD_TEST_REPO_URL=ssh://${GOTD_DEVUSER}@127.0.0.1/test-repo
14 6ae16afd 2022-10-31 stsp
15 b1a9f90e 2022-12-09 stsp GOTD_TEST_USER?=${DOAS_USER}
16 b1a9f90e 2022-12-09 stsp .if empty(GOTD_TEST_USER)
17 b1a9f90e 2022-12-09 stsp GOTD_TEST_USER=${SUDO_USER}
18 b1a9f90e 2022-12-09 stsp .endif
19 b1a9f90e 2022-12-09 stsp .if empty(GOTD_TEST_USER)
20 b1a9f90e 2022-12-09 stsp GOTD_TEST_USER=${USER}
21 b1a9f90e 2022-12-09 stsp .endif
22 4398c738 2022-10-31 op GOTD_TEST_USER_HOME!=userinfo $(GOTD_TEST_USER) | awk '/^dir/ {print $$2}'
23 6ae16afd 2022-10-31 stsp
24 6ae16afd 2022-10-31 stsp # gotd.conf parameters
25 6ae16afd 2022-10-31 stsp GOTD_USER?=got
26 6ae16afd 2022-10-31 stsp GOTD_GROUP?=gotsh
27 6ae16afd 2022-10-31 stsp GOTD_SOCK=${GOTD_DEVUSER_HOME}/gotd.sock
28 6ae16afd 2022-10-31 stsp
29 6ae16afd 2022-10-31 stsp GOTD_START_CMD=../../gotd/obj/gotd -vv -f $(PWD)/gotd.conf
30 6ae16afd 2022-10-31 stsp GOTD_STOP_CMD=../../gotctl/obj/gotctl -f $(GOTD_SOCK) stop
31 6ae16afd 2022-10-31 stsp GOTD_TRAP=trap "$(GOTD_STOP_CMD)" HUP INT QUIT PIPE TERM
32 6ae16afd 2022-10-31 stsp
33 6ae16afd 2022-10-31 stsp GOTD_TEST_ENV=GOTD_TEST_ROOT=$(GOTD_TEST_ROOT) \
34 6ae16afd 2022-10-31 stsp GOTD_TEST_REPO_URL=$(GOTD_TEST_REPO_URL) \
35 6ae16afd 2022-10-31 stsp GOTD_TEST_REPO=$(GOTD_TEST_REPO) \
36 6ae16afd 2022-10-31 stsp GOTD_SOCK=$(GOTD_SOCK) \
37 4ce98cf7 2022-11-08 stsp GOTD_DEVUSER=$(GOTD_DEVUSER) \
38 6ae16afd 2022-10-31 stsp HOME=$(GOTD_TEST_USER_HOME) \
39 6ae16afd 2022-10-31 stsp PATH=$(GOTD_TEST_USER_HOME)/bin:$(PATH)
40 6ae16afd 2022-10-31 stsp
41 6ae16afd 2022-10-31 stsp ensure_root:
42 6ae16afd 2022-10-31 stsp @if [[ `id -u` -ne 0 ]]; then \
43 62192466 2022-12-07 stsp echo gotd test suite must be started by root >&2; \
44 6ae16afd 2022-10-31 stsp false; \
45 62192466 2022-12-07 stsp fi ; \
46 62192466 2022-12-07 stsp if [[ "$(GOTD_TEST_USER)" = "root" ]]; then \
47 62192466 2022-12-07 stsp echo GOTD_TEST_USER must be a non-root user >&2; \
48 62192466 2022-12-07 stsp false; \
49 6ae16afd 2022-10-31 stsp fi
50 6ae16afd 2022-10-31 stsp
51 0ccf3acb 2022-11-16 stsp start_gotd_ro: ensure_root
52 6ae16afd 2022-10-31 stsp @echo 'unix_socket "$(GOTD_SOCK)"' > $(PWD)/gotd.conf
53 6ae16afd 2022-10-31 stsp @echo "unix_group $(GOTD_GROUP)" >> $(PWD)/gotd.conf
54 6ae16afd 2022-10-31 stsp @echo "user $(GOTD_USER)" >> $(PWD)/gotd.conf
55 6ae16afd 2022-10-31 stsp @echo 'repository "test-repo" {' >> $(PWD)/gotd.conf
56 6ae16afd 2022-10-31 stsp @echo ' path "$(GOTD_TEST_REPO)"' >> $(PWD)/gotd.conf
57 0ccf3acb 2022-11-16 stsp @echo ' permit ro $(GOTD_DEVUSER)' >> $(PWD)/gotd.conf
58 6ae16afd 2022-10-31 stsp @echo "}" >> $(PWD)/gotd.conf
59 6ae16afd 2022-10-31 stsp @$(GOTD_TRAP); $(GOTD_START_CMD)
60 6ae16afd 2022-10-31 stsp @$(GOTD_TRAP); sleep .5
61 6ae16afd 2022-10-31 stsp
62 ddbe612c 2022-11-17 stsp start_gotd_ro_group: ensure_root
63 ddbe612c 2022-11-17 stsp @echo 'unix_socket "$(GOTD_SOCK)"' > $(PWD)/gotd.conf
64 ddbe612c 2022-11-17 stsp @echo "unix_group $(GOTD_GROUP)" >> $(PWD)/gotd.conf
65 ddbe612c 2022-11-17 stsp @echo "user $(GOTD_USER)" >> $(PWD)/gotd.conf
66 ddbe612c 2022-11-17 stsp @echo 'repository "test-repo" {' >> $(PWD)/gotd.conf
67 ddbe612c 2022-11-17 stsp @echo ' path "$(GOTD_TEST_REPO)"' >> $(PWD)/gotd.conf
68 ddbe612c 2022-11-17 stsp @echo ' permit ro :$(GOTD_DEVUSER)' >> $(PWD)/gotd.conf
69 ddbe612c 2022-11-17 stsp @echo "}" >> $(PWD)/gotd.conf
70 ddbe612c 2022-11-17 stsp @$(GOTD_TRAP); $(GOTD_START_CMD)
71 ddbe612c 2022-11-17 stsp @$(GOTD_TRAP); sleep .5
72 ddbe612c 2022-11-17 stsp
73 ec093ca7 2022-11-17 stsp # try a permit rule followed by a deny rule; last matched rule wins
74 ec093ca7 2022-11-17 stsp start_gotd_ro_denied_user: ensure_root
75 ec093ca7 2022-11-17 stsp @echo 'unix_socket "$(GOTD_SOCK)"' > $(PWD)/gotd.conf
76 ec093ca7 2022-11-17 stsp @echo "unix_group $(GOTD_GROUP)" >> $(PWD)/gotd.conf
77 ec093ca7 2022-11-17 stsp @echo "user $(GOTD_USER)" >> $(PWD)/gotd.conf
78 ec093ca7 2022-11-17 stsp @echo 'repository "test-repo" {' >> $(PWD)/gotd.conf
79 ec093ca7 2022-11-17 stsp @echo ' path "$(GOTD_TEST_REPO)"' >> $(PWD)/gotd.conf
80 ec093ca7 2022-11-17 stsp @echo ' permit ro $(GOTD_DEVUSER)' >> $(PWD)/gotd.conf
81 ec093ca7 2022-11-17 stsp @echo ' deny $(GOTD_DEVUSER)' >> $(PWD)/gotd.conf
82 ec093ca7 2022-11-17 stsp @echo "}" >> $(PWD)/gotd.conf
83 ec093ca7 2022-11-17 stsp @$(GOTD_TRAP); $(GOTD_START_CMD)
84 ec093ca7 2022-11-17 stsp @$(GOTD_TRAP); sleep .5
85 ec093ca7 2022-11-17 stsp
86 d5a5db9a 2022-11-17 stsp # try a permit rule followed by a deny rule; last matched rule wins
87 d5a5db9a 2022-11-17 stsp start_gotd_ro_denied_group: ensure_root
88 d5a5db9a 2022-11-17 stsp @echo 'unix_socket "$(GOTD_SOCK)"' > $(PWD)/gotd.conf
89 d5a5db9a 2022-11-17 stsp @echo "unix_group $(GOTD_GROUP)" >> $(PWD)/gotd.conf
90 d5a5db9a 2022-11-17 stsp @echo "user $(GOTD_USER)" >> $(PWD)/gotd.conf
91 d5a5db9a 2022-11-17 stsp @echo 'repository "test-repo" {' >> $(PWD)/gotd.conf
92 d5a5db9a 2022-11-17 stsp @echo ' path "$(GOTD_TEST_REPO)"' >> $(PWD)/gotd.conf
93 d5a5db9a 2022-11-17 stsp @echo ' permit ro $(GOTD_DEVUSER)' >> $(PWD)/gotd.conf
94 d5a5db9a 2022-11-17 stsp @echo ' deny :$(GOTD_DEVUSER)' >> $(PWD)/gotd.conf
95 d5a5db9a 2022-11-17 stsp @echo "}" >> $(PWD)/gotd.conf
96 d5a5db9a 2022-11-17 stsp @$(GOTD_TRAP); $(GOTD_START_CMD)
97 d5a5db9a 2022-11-17 stsp @$(GOTD_TRAP); sleep .5
98 d5a5db9a 2022-11-17 stsp
99 55f70a40 2022-11-17 stsp # $GOTD_DEVUSER should not equal $GOTD_USER
100 55f70a40 2022-11-17 stsp start_gotd_ro_bad_user: ensure_root
101 55f70a40 2022-11-17 stsp @echo 'unix_socket "$(GOTD_SOCK)"' > $(PWD)/gotd.conf
102 55f70a40 2022-11-17 stsp @echo "unix_group $(GOTD_GROUP)" >> $(PWD)/gotd.conf
103 55f70a40 2022-11-17 stsp @echo "user $(GOTD_USER)" >> $(PWD)/gotd.conf
104 55f70a40 2022-11-17 stsp @echo 'repository "test-repo" {' >> $(PWD)/gotd.conf
105 55f70a40 2022-11-17 stsp @echo ' path "$(GOTD_TEST_REPO)"' >> $(PWD)/gotd.conf
106 55f70a40 2022-11-17 stsp @echo ' permit ro $(GOTD_USER)' >> $(PWD)/gotd.conf
107 55f70a40 2022-11-17 stsp @echo "}" >> $(PWD)/gotd.conf
108 55f70a40 2022-11-17 stsp @$(GOTD_TRAP); $(GOTD_START_CMD)
109 55f70a40 2022-11-17 stsp @$(GOTD_TRAP); sleep .5
110 55f70a40 2022-11-17 stsp
111 ddbe612c 2022-11-17 stsp # $GOTD_DEVUSER should not be in group wheel
112 ddbe612c 2022-11-17 stsp start_gotd_ro_bad_group: ensure_root
113 ddbe612c 2022-11-17 stsp @echo 'unix_socket "$(GOTD_SOCK)"' > $(PWD)/gotd.conf
114 ddbe612c 2022-11-17 stsp @echo "unix_group $(GOTD_GROUP)" >> $(PWD)/gotd.conf
115 ddbe612c 2022-11-17 stsp @echo "user $(GOTD_USER)" >> $(PWD)/gotd.conf
116 ddbe612c 2022-11-17 stsp @echo 'repository "test-repo" {' >> $(PWD)/gotd.conf
117 ddbe612c 2022-11-17 stsp @echo ' path "$(GOTD_TEST_REPO)"' >> $(PWD)/gotd.conf
118 ddbe612c 2022-11-17 stsp @echo ' permit ro :wheel' >> $(PWD)/gotd.conf
119 ddbe612c 2022-11-17 stsp @echo "}" >> $(PWD)/gotd.conf
120 ddbe612c 2022-11-17 stsp @$(GOTD_TRAP); $(GOTD_START_CMD)
121 ddbe612c 2022-11-17 stsp @$(GOTD_TRAP); sleep .5
122 ddbe612c 2022-11-17 stsp
123 0ccf3acb 2022-11-16 stsp start_gotd_rw: ensure_root
124 0ccf3acb 2022-11-16 stsp @echo 'unix_socket "$(GOTD_SOCK)"' > $(PWD)/gotd.conf
125 0ccf3acb 2022-11-16 stsp @echo "unix_group $(GOTD_GROUP)" >> $(PWD)/gotd.conf
126 0ccf3acb 2022-11-16 stsp @echo "user $(GOTD_USER)" >> $(PWD)/gotd.conf
127 0ccf3acb 2022-11-16 stsp @echo 'repository "test-repo" {' >> $(PWD)/gotd.conf
128 0ccf3acb 2022-11-16 stsp @echo ' path "$(GOTD_TEST_REPO)"' >> $(PWD)/gotd.conf
129 0ccf3acb 2022-11-16 stsp @echo ' permit rw $(GOTD_DEVUSER)' >> $(PWD)/gotd.conf
130 0ccf3acb 2022-11-16 stsp @echo "}" >> $(PWD)/gotd.conf
131 0ccf3acb 2022-11-16 stsp @$(GOTD_TRAP); $(GOTD_START_CMD)
132 0ccf3acb 2022-11-16 stsp @$(GOTD_TRAP); sleep .5
133 0ccf3acb 2022-11-16 stsp
134 6ae16afd 2022-10-31 stsp prepare_test_repo: ensure_root
135 6ae16afd 2022-10-31 stsp @chown ${GOTD_USER} "${GOTD_TEST_REPO}"
136 6ae16afd 2022-10-31 stsp @su -m ${GOTD_USER} -c 'env $(GOTD_TEST_ENV) sh ./prepare_test_repo.sh'
137 6ae16afd 2022-10-31 stsp
138 4ce98cf7 2022-11-08 stsp prepare_test_repo_empty: ensure_root
139 4ce98cf7 2022-11-08 stsp @chown ${GOTD_USER} "${GOTD_TEST_REPO}"
140 4ce98cf7 2022-11-08 stsp @su -m ${GOTD_USER} -c 'env $(GOTD_TEST_ENV) sh ./prepare_test_repo.sh 1'
141 4ce98cf7 2022-11-08 stsp
142 0ccf3acb 2022-11-16 stsp test_repo_read: prepare_test_repo start_gotd_ro
143 6ae16afd 2022-10-31 stsp @-$(GOTD_TRAP); su ${GOTD_TEST_USER} -c \
144 6ae16afd 2022-10-31 stsp 'env $(GOTD_TEST_ENV) sh ./repo_read.sh'
145 6ae16afd 2022-10-31 stsp @$(GOTD_STOP_CMD) 2>/dev/null
146 6ae16afd 2022-10-31 stsp @su -m ${GOTD_USER} -c 'env $(GOTD_TEST_ENV) sh ./check_test_repo.sh'
147 6ae16afd 2022-10-31 stsp
148 ddbe612c 2022-11-17 stsp test_repo_read_group: prepare_test_repo start_gotd_ro_group
149 ddbe612c 2022-11-17 stsp @-$(GOTD_TRAP); su ${GOTD_TEST_USER} -c \
150 ddbe612c 2022-11-17 stsp 'env $(GOTD_TEST_ENV) sh ./repo_read.sh'
151 ddbe612c 2022-11-17 stsp @$(GOTD_STOP_CMD) 2>/dev/null
152 ddbe612c 2022-11-17 stsp @su -m ${GOTD_USER} -c 'env $(GOTD_TEST_ENV) sh ./check_test_repo.sh'
153 ddbe612c 2022-11-17 stsp
154 ec093ca7 2022-11-17 stsp test_repo_read_denied_user: prepare_test_repo start_gotd_ro_denied_user
155 ec093ca7 2022-11-17 stsp @-$(GOTD_TRAP); su ${GOTD_TEST_USER} -c \
156 ec093ca7 2022-11-17 stsp 'env $(GOTD_TEST_ENV) sh ./repo_read_access_denied.sh'
157 ec093ca7 2022-11-17 stsp @$(GOTD_STOP_CMD) 2>/dev/null
158 ec093ca7 2022-11-17 stsp @su -m ${GOTD_USER} -c 'env $(GOTD_TEST_ENV) sh ./check_test_repo.sh'
159 ec093ca7 2022-11-17 stsp
160 d5a5db9a 2022-11-17 stsp test_repo_read_denied_group: prepare_test_repo start_gotd_ro_denied_group
161 d5a5db9a 2022-11-17 stsp @-$(GOTD_TRAP); su ${GOTD_TEST_USER} -c \
162 d5a5db9a 2022-11-17 stsp 'env $(GOTD_TEST_ENV) sh ./repo_read_access_denied.sh'
163 d5a5db9a 2022-11-17 stsp @$(GOTD_STOP_CMD) 2>/dev/null
164 d5a5db9a 2022-11-17 stsp @su -m ${GOTD_USER} -c 'env $(GOTD_TEST_ENV) sh ./check_test_repo.sh'
165 d5a5db9a 2022-11-17 stsp
166 55f70a40 2022-11-17 stsp test_repo_read_bad_user: prepare_test_repo start_gotd_ro_bad_user
167 55f70a40 2022-11-17 stsp @-$(GOTD_TRAP); su ${GOTD_TEST_USER} -c \
168 55f70a40 2022-11-17 stsp 'env $(GOTD_TEST_ENV) sh ./repo_read_access_denied.sh'
169 55f70a40 2022-11-17 stsp @$(GOTD_STOP_CMD) 2>/dev/null
170 55f70a40 2022-11-17 stsp @su -m ${GOTD_USER} -c 'env $(GOTD_TEST_ENV) sh ./check_test_repo.sh'
171 55f70a40 2022-11-17 stsp
172 ddbe612c 2022-11-17 stsp test_repo_read_bad_group: prepare_test_repo start_gotd_ro_bad_group
173 ddbe612c 2022-11-17 stsp @-$(GOTD_TRAP); su ${GOTD_TEST_USER} -c \
174 ddbe612c 2022-11-17 stsp 'env $(GOTD_TEST_ENV) sh ./repo_read_access_denied.sh'
175 ddbe612c 2022-11-17 stsp @$(GOTD_STOP_CMD) 2>/dev/null
176 ddbe612c 2022-11-17 stsp @su -m ${GOTD_USER} -c 'env $(GOTD_TEST_ENV) sh ./check_test_repo.sh'
177 ddbe612c 2022-11-17 stsp
178 0ccf3acb 2022-11-16 stsp test_repo_write: prepare_test_repo start_gotd_rw
179 6ae16afd 2022-10-31 stsp @-$(GOTD_TRAP); su ${GOTD_TEST_USER} -c \
180 6ae16afd 2022-10-31 stsp 'env $(GOTD_TEST_ENV) sh ./repo_write.sh'
181 6ae16afd 2022-10-31 stsp @$(GOTD_STOP_CMD) 2>/dev/null
182 6ae16afd 2022-10-31 stsp @su -m ${GOTD_USER} -c 'env $(GOTD_TEST_ENV) sh ./check_test_repo.sh'
183 4ce98cf7 2022-11-08 stsp
184 0ccf3acb 2022-11-16 stsp test_repo_write_empty: prepare_test_repo_empty start_gotd_rw
185 4ce98cf7 2022-11-08 stsp @-$(GOTD_TRAP); su ${GOTD_TEST_USER} -c \
186 4ce98cf7 2022-11-08 stsp 'env $(GOTD_TEST_ENV) sh ./repo_write_empty.sh'
187 4ce98cf7 2022-11-08 stsp @$(GOTD_STOP_CMD) 2>/dev/null
188 4ce98cf7 2022-11-08 stsp @su -m ${GOTD_USER} -c 'env $(GOTD_TEST_ENV) sh ./check_test_repo.sh'
189 6ae16afd 2022-10-31 stsp
190 6eb6bfed 2022-12-20 stsp test_req_wrong_commit: prepare_test_repo_empty start_gotd_ro
191 44ff0a44 2022-12-20 stsp @-$(GOTD_TRAP); su -m ${GOTD_TEST_USER} -c \
192 be4f45b5 2022-12-20 stsp 'env $(GOTD_TEST_ENV) sh ./req_wrong_commit.sh'
193 44ff0a44 2022-12-20 stsp @$(GOTD_STOP_CMD) 2>/dev/null
194 44ff0a44 2022-12-20 stsp
195 6ae16afd 2022-10-31 stsp .include <bsd.regress.mk>