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