3 cbd1af7a 2019-03-18 stsp # Copyright (c) 2019 Stefan Sperling <stsp@openbsd.org>
5 cbd1af7a 2019-03-18 stsp # Permission to use, copy, modify, and distribute this software for any
6 cbd1af7a 2019-03-18 stsp # purpose with or without fee is hereby granted, provided that the above
7 cbd1af7a 2019-03-18 stsp # copyright notice and this permission notice appear in all copies.
9 cbd1af7a 2019-03-18 stsp # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 cbd1af7a 2019-03-18 stsp # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 cbd1af7a 2019-03-18 stsp # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 cbd1af7a 2019-03-18 stsp # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 cbd1af7a 2019-03-18 stsp # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 cbd1af7a 2019-03-18 stsp # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 cbd1af7a 2019-03-18 stsp # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 cbd1af7a 2019-03-18 stsp . ./common.sh
19 e7301579 2019-03-18 stsp function test_log_in_repo {
20 e7301579 2019-03-18 stsp local testroot=`test_init log_in_repo`
21 e7301579 2019-03-18 stsp local head_rev=`git_show_head $testroot/repo`
23 e7301579 2019-03-18 stsp echo "commit $head_rev (master)" > $testroot/stdout.expected
25 e7301579 2019-03-18 stsp for p in "" "." alpha epsilon epsilon/zeta; do
26 e7301579 2019-03-18 stsp (cd $testroot/repo && got log $p | \
27 e7301579 2019-03-18 stsp grep ^commit > $testroot/stdout)
28 8d301dd9 2019-05-14 stsp cmp -s $testroot/stdout.expected $testroot/stdout
30 e7301579 2019-03-18 stsp if [ "$ret" != "0" ]; then
31 e7301579 2019-03-18 stsp diff -u $testroot/stdout.expected $testroot/stdout
32 e7301579 2019-03-18 stsp test_done "$testroot" "$ret"
37 b70703ad 2019-03-18 stsp for p in "" "." zeta; do
38 b70703ad 2019-03-18 stsp (cd $testroot/repo/epsilon && got log $p | \
39 b70703ad 2019-03-18 stsp grep ^commit > $testroot/stdout)
40 8d301dd9 2019-05-14 stsp cmp -s $testroot/stdout.expected $testroot/stdout
42 b70703ad 2019-03-18 stsp if [ "$ret" != "0" ]; then
43 b70703ad 2019-03-18 stsp diff -u $testroot/stdout.expected $testroot/stdout
44 b70703ad 2019-03-18 stsp test_done "$testroot" "$ret"
49 e7301579 2019-03-18 stsp test_done "$testroot" "0"
52 b70703ad 2019-03-18 stsp function test_log_in_bare_repo {
53 b70703ad 2019-03-18 stsp local testroot=`test_init log_in_bare_repo`
54 b70703ad 2019-03-18 stsp local head_rev=`git_show_head $testroot/repo`
56 b70703ad 2019-03-18 stsp echo "commit $head_rev (master)" > $testroot/stdout.expected
58 b70703ad 2019-03-18 stsp for p in "" "." alpha epsilon epsilon/zeta; do
59 b70703ad 2019-03-18 stsp (cd $testroot/repo/.git && got log $p | \
60 b70703ad 2019-03-18 stsp grep ^commit > $testroot/stdout)
61 8d301dd9 2019-05-14 stsp cmp -s $testroot/stdout.expected $testroot/stdout
63 b70703ad 2019-03-18 stsp if [ "$ret" != "0" ]; then
64 b70703ad 2019-03-18 stsp diff -u $testroot/stdout.expected $testroot/stdout
65 b70703ad 2019-03-18 stsp test_done "$testroot" "$ret"
70 b70703ad 2019-03-18 stsp test_done "$testroot" "0"
73 cbd1af7a 2019-03-18 stsp function test_log_in_worktree {
74 cbd1af7a 2019-03-18 stsp local testroot=`test_init log_in_worktree`
75 cbd1af7a 2019-03-18 stsp local head_rev=`git_show_head $testroot/repo`
77 cbd1af7a 2019-03-18 stsp got checkout $testroot/repo $testroot/wt > /dev/null
79 cbd1af7a 2019-03-18 stsp if [ "$ret" != "0" ]; then
80 cbd1af7a 2019-03-18 stsp test_done "$testroot" "$ret"
84 cbd1af7a 2019-03-18 stsp echo "commit $head_rev (master)" > $testroot/stdout.expected
86 cbd1af7a 2019-03-18 stsp for p in "" "." alpha epsilon; do
87 cbd1af7a 2019-03-18 stsp (cd $testroot/wt && got log $p | \
88 cbd1af7a 2019-03-18 stsp grep ^commit > $testroot/stdout)
89 8d301dd9 2019-05-14 stsp cmp -s $testroot/stdout.expected $testroot/stdout
91 cbd1af7a 2019-03-18 stsp if [ "$ret" != "0" ]; then
92 cbd1af7a 2019-03-18 stsp diff -u $testroot/stdout.expected $testroot/stdout
93 cbd1af7a 2019-03-18 stsp test_done "$testroot" "$ret"
98 cbd1af7a 2019-03-18 stsp for p in "" "." zeta; do
99 cbd1af7a 2019-03-18 stsp (cd $testroot/wt/epsilon && got log $p | \
100 cbd1af7a 2019-03-18 stsp grep ^commit > $testroot/stdout)
101 8d301dd9 2019-05-14 stsp cmp -s $testroot/stdout.expected $testroot/stdout
103 cbd1af7a 2019-03-18 stsp if [ "$ret" != "0" ]; then
104 cbd1af7a 2019-03-18 stsp diff -u $testroot/stdout.expected $testroot/stdout
105 cbd1af7a 2019-03-18 stsp test_done "$testroot" "$ret"
110 cbd1af7a 2019-03-18 stsp test_done "$testroot" "0"
113 303e2782 2019-08-09 stsp function test_log_tag {
114 303e2782 2019-08-09 stsp local testroot=`test_init log_tag`
115 303e2782 2019-08-09 stsp local commit_id=`git_show_head $testroot/repo`
116 303e2782 2019-08-09 stsp local tag="1.0.0"
117 5a8ddf14 2019-08-13 stsp local tag2="2.0.0"
119 303e2782 2019-08-09 stsp got checkout $testroot/repo $testroot/wt > /dev/null
121 303e2782 2019-08-09 stsp if [ "$ret" != "0" ]; then
122 303e2782 2019-08-09 stsp test_done "$testroot" "$ret"
126 303e2782 2019-08-09 stsp (cd $testroot/repo && git tag -a -m "test" $tag)
128 a436ad14 2019-08-13 stsp echo "commit $commit_id (master, tags/$tag)" > $testroot/stdout.expected
129 303e2782 2019-08-09 stsp (cd $testroot/wt && got log -l1 -c $tag | grep ^commit \
130 303e2782 2019-08-09 stsp > $testroot/stdout)
131 303e2782 2019-08-09 stsp cmp -s $testroot/stdout.expected $testroot/stdout
133 303e2782 2019-08-09 stsp if [ "$ret" != "0" ]; then
134 303e2782 2019-08-09 stsp diff -u $testroot/stdout.expected $testroot/stdout
135 5a8ddf14 2019-08-13 stsp test_done "$testroot" "$ret"
139 5a8ddf14 2019-08-13 stsp # test a "leightweight" tag
140 5a8ddf14 2019-08-13 stsp (cd $testroot/repo && git tag $tag2)
142 5a8ddf14 2019-08-13 stsp echo "commit $commit_id (master, tags/$tag, tags/$tag2)" \
143 5a8ddf14 2019-08-13 stsp > $testroot/stdout.expected
144 5a8ddf14 2019-08-13 stsp (cd $testroot/wt && got log -l1 -c $tag2 | grep ^commit \
145 5a8ddf14 2019-08-13 stsp > $testroot/stdout)
146 5a8ddf14 2019-08-13 stsp cmp -s $testroot/stdout.expected $testroot/stdout
148 5a8ddf14 2019-08-13 stsp if [ "$ret" != "0" ]; then
149 5a8ddf14 2019-08-13 stsp diff -u $testroot/stdout.expected $testroot/stdout
151 303e2782 2019-08-09 stsp test_done "$testroot" "$ret"
154 b1ebc001 2019-08-13 stsp function test_log_limit {
155 b1ebc001 2019-08-13 stsp local testroot=`test_init log_limit`
156 b1ebc001 2019-08-13 stsp local commit_id0=`git_show_head $testroot/repo`
158 b1ebc001 2019-08-13 stsp got checkout $testroot/repo $testroot/wt > /dev/null
160 b1ebc001 2019-08-13 stsp if [ "$ret" != "0" ]; then
161 b1ebc001 2019-08-13 stsp test_done "$testroot" "$ret"
165 b1ebc001 2019-08-13 stsp echo "modified alpha" > $testroot/wt/alpha
166 b1ebc001 2019-08-13 stsp (cd $testroot/wt && got commit -m 'test log_limit' > /dev/null)
167 b1ebc001 2019-08-13 stsp local commit_id1=`git_show_head $testroot/repo`
169 b1ebc001 2019-08-13 stsp (cd $testroot/wt && got rm beta >/dev/null)
170 b1ebc001 2019-08-13 stsp (cd $testroot/wt && got commit -m 'test log_limit' > /dev/null)
171 b1ebc001 2019-08-13 stsp local commit_id2=`git_show_head $testroot/repo`
173 b1ebc001 2019-08-13 stsp echo "new file" > $testroot/wt/new
174 b1ebc001 2019-08-13 stsp (cd $testroot/wt && got add new >/dev/null)
175 b1ebc001 2019-08-13 stsp (cd $testroot/wt && got commit -m 'test log_limit' > /dev/null)
176 b1ebc001 2019-08-13 stsp local commit_id3=`git_show_head $testroot/repo`
178 b1ebc001 2019-08-13 stsp # -l1 should print the first commit only
179 b1ebc001 2019-08-13 stsp echo "commit $commit_id3 (master)" > $testroot/stdout.expected
180 b1ebc001 2019-08-13 stsp (cd $testroot/wt && got log -l1 | grep ^commit > $testroot/stdout)
181 b1ebc001 2019-08-13 stsp cmp -s $testroot/stdout.expected $testroot/stdout
183 b1ebc001 2019-08-13 stsp if [ "$ret" != "0" ]; then
184 b1ebc001 2019-08-13 stsp diff -u $testroot/stdout.expected $testroot/stdout
185 b1ebc001 2019-08-13 stsp test_done "$testroot" "$ret"
189 b1ebc001 2019-08-13 stsp # env var can be used to set a log limit without -l option
190 b1ebc001 2019-08-13 stsp echo "commit $commit_id3 (master)" > $testroot/stdout.expected
191 b1ebc001 2019-08-13 stsp echo "commit $commit_id2" >> $testroot/stdout.expected
192 b1ebc001 2019-08-13 stsp (cd $testroot/wt && env GOT_LOG_DEFAULT_LIMIT=2 got log | \
193 b1ebc001 2019-08-13 stsp grep ^commit > $testroot/stdout)
194 b1ebc001 2019-08-13 stsp cmp -s $testroot/stdout.expected $testroot/stdout
196 b1ebc001 2019-08-13 stsp if [ "$ret" != "0" ]; then
197 b1ebc001 2019-08-13 stsp diff -u $testroot/stdout.expected $testroot/stdout
198 b1ebc001 2019-08-13 stsp test_done "$testroot" "$ret"
202 b1ebc001 2019-08-13 stsp # non-numeric env var is ignored
203 b1ebc001 2019-08-13 stsp (cd $testroot/wt && env GOT_LOG_DEFAULT_LIMIT=foobar got log | \
204 b1ebc001 2019-08-13 stsp grep ^commit > $testroot/stdout)
205 b1ebc001 2019-08-13 stsp echo "commit $commit_id3 (master)" > $testroot/stdout.expected
206 b1ebc001 2019-08-13 stsp echo "commit $commit_id2" >> $testroot/stdout.expected
207 b1ebc001 2019-08-13 stsp echo "commit $commit_id1" >> $testroot/stdout.expected
208 b1ebc001 2019-08-13 stsp echo "commit $commit_id0" >> $testroot/stdout.expected
209 b1ebc001 2019-08-13 stsp cmp -s $testroot/stdout.expected $testroot/stdout
211 b1ebc001 2019-08-13 stsp if [ "$ret" != "0" ]; then
212 b1ebc001 2019-08-13 stsp diff -u $testroot/stdout.expected $testroot/stdout
213 b1ebc001 2019-08-13 stsp test_done "$testroot" "$ret"
217 b1ebc001 2019-08-13 stsp # -l option takes precedence over env var
218 b1ebc001 2019-08-13 stsp echo "commit $commit_id3 (master)" > $testroot/stdout.expected
219 b1ebc001 2019-08-13 stsp echo "commit $commit_id2" >> $testroot/stdout.expected
220 b1ebc001 2019-08-13 stsp echo "commit $commit_id1" >> $testroot/stdout.expected
221 b1ebc001 2019-08-13 stsp echo "commit $commit_id0" >> $testroot/stdout.expected
222 b1ebc001 2019-08-13 stsp (cd $testroot/wt && env GOT_LOG_DEFAULT_LIMIT=1 got log -l0 | \
223 b1ebc001 2019-08-13 stsp grep ^commit > $testroot/stdout)
224 b1ebc001 2019-08-13 stsp cmp -s $testroot/stdout.expected $testroot/stdout
226 b1ebc001 2019-08-13 stsp if [ "$ret" != "0" ]; then
227 b1ebc001 2019-08-13 stsp diff -u $testroot/stdout.expected $testroot/stdout
229 b1ebc001 2019-08-13 stsp test_done "$testroot" "0"
232 e7301579 2019-03-18 stsp run_test test_log_in_repo
233 b70703ad 2019-03-18 stsp run_test test_log_in_bare_repo
234 cbd1af7a 2019-03-18 stsp run_test test_log_in_worktree
235 303e2782 2019-08-09 stsp run_test test_log_tag
236 b1ebc001 2019-08-13 stsp run_test test_log_limit