Blame


1 d9bb8469 2023-04-20 mark #!/bin/sh
2 d9bb8469 2023-04-20 mark #
3 d9bb8469 2023-04-20 mark # Copyright (c) 2023 Mark Jamsek <mark@jamsek.dev>
4 d9bb8469 2023-04-20 mark #
5 d9bb8469 2023-04-20 mark # Permission to use, copy, modify, and distribute this software for any
6 d9bb8469 2023-04-20 mark # purpose with or without fee is hereby granted, provided that the above
7 d9bb8469 2023-04-20 mark # copyright notice and this permission notice appear in all copies.
8 d9bb8469 2023-04-20 mark #
9 d9bb8469 2023-04-20 mark # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 d9bb8469 2023-04-20 mark # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 d9bb8469 2023-04-20 mark # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 d9bb8469 2023-04-20 mark # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 d9bb8469 2023-04-20 mark # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 d9bb8469 2023-04-20 mark # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 d9bb8469 2023-04-20 mark # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 d9bb8469 2023-04-20 mark
17 d9bb8469 2023-04-20 mark . ./common.sh
18 d9bb8469 2023-04-20 mark
19 d9bb8469 2023-04-20 mark test_tree_basic()
20 d9bb8469 2023-04-20 mark {
21 d9bb8469 2023-04-20 mark test_init tree_basic 48 8
22 d9bb8469 2023-04-20 mark
23 d9bb8469 2023-04-20 mark local head_id=`git_show_head $testroot/repo`
24 d9bb8469 2023-04-20 mark
25 d9bb8469 2023-04-20 mark cat <<EOF >$TOG_TEST_SCRIPT
26 d9bb8469 2023-04-20 mark SCREENDUMP
27 d9bb8469 2023-04-20 mark EOF
28 d9bb8469 2023-04-20 mark
29 d9bb8469 2023-04-20 mark cat <<EOF >$testroot/view.expected
30 d9bb8469 2023-04-20 mark commit $head_id
31 d9bb8469 2023-04-20 mark [1/4] /
32 d9bb8469 2023-04-20 mark
33 d9bb8469 2023-04-20 mark alpha
34 d9bb8469 2023-04-20 mark beta
35 d9bb8469 2023-04-20 mark epsilon/
36 d9bb8469 2023-04-20 mark gamma/
37 d9bb8469 2023-04-20 mark
38 d9bb8469 2023-04-20 mark EOF
39 d9bb8469 2023-04-20 mark
40 d9bb8469 2023-04-20 mark cd $testroot/repo && tog tree
41 d9bb8469 2023-04-20 mark cmp -s $testroot/view.expected $testroot/view
42 d9bb8469 2023-04-20 mark ret=$?
43 d9bb8469 2023-04-20 mark if [ $ret -ne 0 ]; then
44 d9bb8469 2023-04-20 mark diff -u $testroot/view.expected $testroot/view
45 d9bb8469 2023-04-20 mark test_done "$testroot" "$ret"
46 d9bb8469 2023-04-20 mark return 1
47 d9bb8469 2023-04-20 mark fi
48 d9bb8469 2023-04-20 mark
49 d9bb8469 2023-04-20 mark test_done "$testroot" "$ret"
50 d9bb8469 2023-04-20 mark }
51 d9bb8469 2023-04-20 mark
52 d9bb8469 2023-04-20 mark test_tree_vsplit_blame()
53 d9bb8469 2023-04-20 mark {
54 d9bb8469 2023-04-20 mark test_init tree_vsplit_blame 120 8
55 d9bb8469 2023-04-20 mark
56 d9bb8469 2023-04-20 mark local head_id=`git_show_head $testroot/repo`
57 d9bb8469 2023-04-20 mark local head_id_truncated=`trim_obj_id 8 $head_id`
58 d9bb8469 2023-04-20 mark local head_id_short=`trim_obj_id 32 $head_id`
59 d9bb8469 2023-04-20 mark
60 d9bb8469 2023-04-20 mark cat <<EOF >$TOG_TEST_SCRIPT
61 d9bb8469 2023-04-20 mark KEY_ENTER
62 d9bb8469 2023-04-20 mark WAIT_FOR_UI wait for blame to finish
63 d9bb8469 2023-04-20 mark SCREENDUMP
64 d9bb8469 2023-04-20 mark EOF
65 d9bb8469 2023-04-20 mark
66 d9bb8469 2023-04-20 mark cat <<EOF >$testroot/view.expected
67 d9bb8469 2023-04-20 mark commit $head_id_truncated|commit $head_id
68 d9bb8469 2023-04-20 mark [1/4] / |[1/1] /alpha
69 d9bb8469 2023-04-20 mark |$head_id_short alpha
70 d9bb8469 2023-04-20 mark alpha |
71 d9bb8469 2023-04-20 mark beta |
72 d9bb8469 2023-04-20 mark epsilon/ |
73 d9bb8469 2023-04-20 mark gamma/ |
74 d9bb8469 2023-04-20 mark |
75 d9bb8469 2023-04-20 mark EOF
76 d9bb8469 2023-04-20 mark
77 d9bb8469 2023-04-20 mark cd $testroot/repo && tog tree
78 d9bb8469 2023-04-20 mark cmp -s $testroot/view.expected $testroot/view
79 d9bb8469 2023-04-20 mark ret=$?
80 d9bb8469 2023-04-20 mark if [ $ret -ne 0 ]; then
81 d9bb8469 2023-04-20 mark diff -u $testroot/view.expected $testroot/view
82 d9bb8469 2023-04-20 mark test_done "$testroot" "$ret"
83 d9bb8469 2023-04-20 mark return 1
84 d9bb8469 2023-04-20 mark fi
85 d9bb8469 2023-04-20 mark
86 d9bb8469 2023-04-20 mark test_done "$testroot" "$ret"
87 d9bb8469 2023-04-20 mark }
88 d9bb8469 2023-04-20 mark
89 d9bb8469 2023-04-20 mark test_tree_hsplit_blame()
90 d9bb8469 2023-04-20 mark {
91 d9bb8469 2023-04-20 mark test_init tree_hsplit_blame 48 24
92 d9bb8469 2023-04-20 mark
93 d9bb8469 2023-04-20 mark local head_id=`git_show_head $testroot/repo`
94 d9bb8469 2023-04-20 mark local head_id_truncated=`trim_obj_id 8 $head_id`
95 d9bb8469 2023-04-20 mark local head_id_short=`trim_obj_id 32 $head_id`
96 d9bb8469 2023-04-20 mark
97 d9bb8469 2023-04-20 mark cat <<EOF >$TOG_TEST_SCRIPT
98 d9bb8469 2023-04-20 mark j
99 d9bb8469 2023-04-20 mark KEY_ENTER
100 d9bb8469 2023-04-20 mark S toggle horizontal split
101 d9bb8469 2023-04-20 mark 4- 4x decrease blame split
102 d9bb8469 2023-04-20 mark WAIT_FOR_UI wait for blame to finish
103 d9bb8469 2023-04-20 mark SCREENDUMP
104 d9bb8469 2023-04-20 mark EOF
105 d9bb8469 2023-04-20 mark
106 d9bb8469 2023-04-20 mark cat <<EOF >$testroot/view.expected
107 d9bb8469 2023-04-20 mark commit $head_id
108 d9bb8469 2023-04-20 mark [2/4] /
109 d9bb8469 2023-04-20 mark
110 d9bb8469 2023-04-20 mark alpha
111 d9bb8469 2023-04-20 mark beta
112 d9bb8469 2023-04-20 mark epsilon/
113 d9bb8469 2023-04-20 mark gamma/
114 d9bb8469 2023-04-20 mark
115 d9bb8469 2023-04-20 mark
116 d9bb8469 2023-04-20 mark
117 d9bb8469 2023-04-20 mark ------------------------------------------------
118 d9bb8469 2023-04-20 mark commit $head_id
119 d9bb8469 2023-04-20 mark [1/1] /beta
120 d9bb8469 2023-04-20 mark $head_id_short beta
121 d9bb8469 2023-04-20 mark
122 d9bb8469 2023-04-20 mark
123 d9bb8469 2023-04-20 mark
124 d9bb8469 2023-04-20 mark
125 d9bb8469 2023-04-20 mark
126 d9bb8469 2023-04-20 mark
127 d9bb8469 2023-04-20 mark
128 d9bb8469 2023-04-20 mark
129 d9bb8469 2023-04-20 mark
130 d9bb8469 2023-04-20 mark
131 d9bb8469 2023-04-20 mark EOF
132 d9bb8469 2023-04-20 mark
133 d9bb8469 2023-04-20 mark cd $testroot/repo && tog tree
134 d9bb8469 2023-04-20 mark cmp -s $testroot/view.expected $testroot/view
135 d9bb8469 2023-04-20 mark ret=$?
136 d9bb8469 2023-04-20 mark if [ $ret -ne 0 ]; then
137 d9bb8469 2023-04-20 mark diff -u $testroot/view.expected $testroot/view
138 d9bb8469 2023-04-20 mark test_done "$testroot" "$ret"
139 d9bb8469 2023-04-20 mark return 1
140 d9bb8469 2023-04-20 mark fi
141 d9bb8469 2023-04-20 mark
142 d9bb8469 2023-04-20 mark test_done "$testroot" "$ret"
143 d9bb8469 2023-04-20 mark }
144 d9bb8469 2023-04-20 mark
145 d9bb8469 2023-04-20 mark test_parseargs "$@"
146 d9bb8469 2023-04-20 mark run_test test_tree_basic
147 d9bb8469 2023-04-20 mark run_test test_tree_vsplit_blame
148 d9bb8469 2023-04-20 mark run_test test_tree_hsplit_blame