Blame


1 a129376b 2019-03-28 stsp #!/bin/sh
2 a129376b 2019-03-28 stsp #
3 a129376b 2019-03-28 stsp # Copyright (c) 2019 Stefan Sperling <stsp@openbsd.org>
4 a129376b 2019-03-28 stsp #
5 a129376b 2019-03-28 stsp # Permission to use, copy, modify, and distribute this software for any
6 a129376b 2019-03-28 stsp # purpose with or without fee is hereby granted, provided that the above
7 a129376b 2019-03-28 stsp # copyright notice and this permission notice appear in all copies.
8 a129376b 2019-03-28 stsp #
9 a129376b 2019-03-28 stsp # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 a129376b 2019-03-28 stsp # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 a129376b 2019-03-28 stsp # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 a129376b 2019-03-28 stsp # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 a129376b 2019-03-28 stsp # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 a129376b 2019-03-28 stsp # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 a129376b 2019-03-28 stsp # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 a129376b 2019-03-28 stsp
17 a129376b 2019-03-28 stsp . ./common.sh
18 a129376b 2019-03-28 stsp
19 a129376b 2019-03-28 stsp function test_revert_basic {
20 a129376b 2019-03-28 stsp local testroot=`test_init revert_basic`
21 a129376b 2019-03-28 stsp
22 a129376b 2019-03-28 stsp got checkout $testroot/repo $testroot/wt > /dev/null
23 a129376b 2019-03-28 stsp ret="$?"
24 a129376b 2019-03-28 stsp if [ "$ret" != "0" ]; then
25 a129376b 2019-03-28 stsp test_done "$testroot" "$ret"
26 a129376b 2019-03-28 stsp return 1
27 a129376b 2019-03-28 stsp fi
28 a129376b 2019-03-28 stsp
29 5e54fb30 2019-05-31 stsp echo "modified epsilon/zeta" > $testroot/wt/epsilon/zeta
30 a129376b 2019-03-28 stsp
31 5e54fb30 2019-05-31 stsp echo 'R epsilon/zeta' > $testroot/stdout.expected
32 a129376b 2019-03-28 stsp
33 5e54fb30 2019-05-31 stsp (cd $testroot/wt && got revert epsilon/zeta > $testroot/stdout)
34 a129376b 2019-03-28 stsp
35 8d301dd9 2019-05-14 stsp cmp -s $testroot/stdout.expected $testroot/stdout
36 a129376b 2019-03-28 stsp ret="$?"
37 a129376b 2019-03-28 stsp if [ "$ret" != "0" ]; then
38 a129376b 2019-03-28 stsp diff -u $testroot/stdout.expected $testroot/stdout
39 a129376b 2019-03-28 stsp test_done "$testroot" "$ret"
40 a129376b 2019-03-28 stsp return 1
41 a129376b 2019-03-28 stsp fi
42 a129376b 2019-03-28 stsp
43 5e54fb30 2019-05-31 stsp echo "zeta" > $testroot/content.expected
44 5e54fb30 2019-05-31 stsp cat $testroot/wt/epsilon/zeta > $testroot/content
45 a129376b 2019-03-28 stsp
46 8d301dd9 2019-05-14 stsp cmp -s $testroot/content.expected $testroot/content
47 a129376b 2019-03-28 stsp ret="$?"
48 a129376b 2019-03-28 stsp if [ "$ret" != "0" ]; then
49 a129376b 2019-03-28 stsp diff -u $testroot/content.expected $testroot/content
50 a129376b 2019-03-28 stsp fi
51 a129376b 2019-03-28 stsp test_done "$testroot" "$ret"
52 a129376b 2019-03-28 stsp
53 a129376b 2019-03-28 stsp }
54 a129376b 2019-03-28 stsp
55 a129376b 2019-03-28 stsp function test_revert_rm {
56 a129376b 2019-03-28 stsp local testroot=`test_init revert_rm`
57 a129376b 2019-03-28 stsp
58 a129376b 2019-03-28 stsp got checkout $testroot/repo $testroot/wt > /dev/null
59 a129376b 2019-03-28 stsp ret="$?"
60 a129376b 2019-03-28 stsp if [ "$ret" != "0" ]; then
61 a129376b 2019-03-28 stsp test_done "$testroot" "$ret"
62 a129376b 2019-03-28 stsp return 1
63 a129376b 2019-03-28 stsp fi
64 a129376b 2019-03-28 stsp
65 a129376b 2019-03-28 stsp (cd $testroot/wt && got rm beta >/dev/null)
66 a129376b 2019-03-28 stsp
67 a129376b 2019-03-28 stsp echo 'R beta' > $testroot/stdout.expected
68 a129376b 2019-03-28 stsp
69 a129376b 2019-03-28 stsp (cd $testroot/wt && got revert beta > $testroot/stdout)
70 a129376b 2019-03-28 stsp
71 8d301dd9 2019-05-14 stsp cmp -s $testroot/stdout.expected $testroot/stdout
72 a129376b 2019-03-28 stsp ret="$?"
73 a129376b 2019-03-28 stsp if [ "$ret" != "0" ]; then
74 a129376b 2019-03-28 stsp diff -u $testroot/stdout.expected $testroot/stdout
75 a129376b 2019-03-28 stsp test_done "$testroot" "$ret"
76 a129376b 2019-03-28 stsp return 1
77 a129376b 2019-03-28 stsp fi
78 a129376b 2019-03-28 stsp
79 a129376b 2019-03-28 stsp echo "beta" > $testroot/content.expected
80 a129376b 2019-03-28 stsp cat $testroot/wt/beta > $testroot/content
81 a129376b 2019-03-28 stsp
82 8d301dd9 2019-05-14 stsp cmp -s $testroot/content.expected $testroot/content
83 a129376b 2019-03-28 stsp ret="$?"
84 a129376b 2019-03-28 stsp if [ "$ret" != "0" ]; then
85 a129376b 2019-03-28 stsp diff -u $testroot/content.expected $testroot/content
86 a129376b 2019-03-28 stsp fi
87 a129376b 2019-03-28 stsp test_done "$testroot" "$ret"
88 a129376b 2019-03-28 stsp }
89 a129376b 2019-03-28 stsp
90 a129376b 2019-03-28 stsp function test_revert_add {
91 a129376b 2019-03-28 stsp local testroot=`test_init revert_add`
92 a129376b 2019-03-28 stsp
93 a129376b 2019-03-28 stsp got checkout $testroot/repo $testroot/wt > /dev/null
94 a129376b 2019-03-28 stsp ret="$?"
95 a129376b 2019-03-28 stsp if [ "$ret" != "0" ]; then
96 a129376b 2019-03-28 stsp test_done "$testroot" "$ret"
97 a129376b 2019-03-28 stsp return 1
98 a129376b 2019-03-28 stsp fi
99 a129376b 2019-03-28 stsp
100 a129376b 2019-03-28 stsp echo "new file" > $testroot/wt/new
101 a129376b 2019-03-28 stsp (cd $testroot/wt && got add new >/dev/null)
102 a129376b 2019-03-28 stsp
103 a129376b 2019-03-28 stsp echo 'R new' > $testroot/stdout.expected
104 a129376b 2019-03-28 stsp
105 a129376b 2019-03-28 stsp (cd $testroot/wt && got revert new > $testroot/stdout)
106 a129376b 2019-03-28 stsp
107 8d301dd9 2019-05-14 stsp cmp -s $testroot/stdout.expected $testroot/stdout
108 a129376b 2019-03-28 stsp ret="$?"
109 a129376b 2019-03-28 stsp if [ "$ret" != "0" ]; then
110 a129376b 2019-03-28 stsp diff -u $testroot/stdout.expected $testroot/stdout
111 a129376b 2019-03-28 stsp test_done "$testroot" "$ret"
112 a129376b 2019-03-28 stsp return 1
113 a129376b 2019-03-28 stsp fi
114 a129376b 2019-03-28 stsp
115 a129376b 2019-03-28 stsp echo "new file" > $testroot/content.expected
116 a129376b 2019-03-28 stsp cat $testroot/wt/new > $testroot/content
117 a129376b 2019-03-28 stsp
118 8d301dd9 2019-05-14 stsp cmp -s $testroot/content.expected $testroot/content
119 a129376b 2019-03-28 stsp ret="$?"
120 a129376b 2019-03-28 stsp if [ "$ret" != "0" ]; then
121 a129376b 2019-03-28 stsp diff -u $testroot/content.expected $testroot/content
122 a129376b 2019-03-28 stsp test_done "$testroot" "$ret"
123 a129376b 2019-03-28 stsp return 1
124 a129376b 2019-03-28 stsp fi
125 a129376b 2019-03-28 stsp
126 a129376b 2019-03-28 stsp echo '? new' > $testroot/stdout.expected
127 a129376b 2019-03-28 stsp
128 a129376b 2019-03-28 stsp (cd $testroot/wt && got status > $testroot/stdout)
129 a129376b 2019-03-28 stsp
130 8d301dd9 2019-05-14 stsp cmp -s $testroot/stdout.expected $testroot/stdout
131 a129376b 2019-03-28 stsp ret="$?"
132 a129376b 2019-03-28 stsp if [ "$ret" != "0" ]; then
133 a129376b 2019-03-28 stsp diff -u $testroot/stdout.expected $testroot/stdout
134 a129376b 2019-03-28 stsp fi
135 a129376b 2019-03-28 stsp test_done "$testroot" "$ret"
136 a129376b 2019-03-28 stsp }
137 a129376b 2019-03-28 stsp
138 e20a8b6f 2019-06-04 stsp function test_revert_multiple {
139 e20a8b6f 2019-06-04 stsp local testroot=`test_init revert_multiple`
140 e20a8b6f 2019-06-04 stsp
141 e20a8b6f 2019-06-04 stsp got checkout $testroot/repo $testroot/wt > /dev/null
142 e20a8b6f 2019-06-04 stsp ret="$?"
143 e20a8b6f 2019-06-04 stsp if [ "$ret" != "0" ]; then
144 e20a8b6f 2019-06-04 stsp test_done "$testroot" "$ret"
145 e20a8b6f 2019-06-04 stsp return 1
146 e20a8b6f 2019-06-04 stsp fi
147 e20a8b6f 2019-06-04 stsp
148 e20a8b6f 2019-06-04 stsp echo "modified alpha" > $testroot/wt/alpha
149 e20a8b6f 2019-06-04 stsp echo "modified epsilon/zeta" > $testroot/wt/epsilon/zeta
150 e20a8b6f 2019-06-04 stsp
151 e20a8b6f 2019-06-04 stsp echo 'R alpha' > $testroot/stdout.expected
152 e20a8b6f 2019-06-04 stsp echo 'R epsilon/zeta' >> $testroot/stdout.expected
153 e20a8b6f 2019-06-04 stsp
154 e20a8b6f 2019-06-04 stsp (cd $testroot/wt && got revert alpha epsilon/zeta > $testroot/stdout)
155 e20a8b6f 2019-06-04 stsp
156 e20a8b6f 2019-06-04 stsp cmp -s $testroot/stdout.expected $testroot/stdout
157 e20a8b6f 2019-06-04 stsp ret="$?"
158 e20a8b6f 2019-06-04 stsp if [ "$ret" != "0" ]; then
159 e20a8b6f 2019-06-04 stsp diff -u $testroot/stdout.expected $testroot/stdout
160 e20a8b6f 2019-06-04 stsp test_done "$testroot" "$ret"
161 e20a8b6f 2019-06-04 stsp return 1
162 e20a8b6f 2019-06-04 stsp fi
163 e20a8b6f 2019-06-04 stsp
164 e20a8b6f 2019-06-04 stsp echo "alpha" > $testroot/content.expected
165 e20a8b6f 2019-06-04 stsp cat $testroot/wt/alpha > $testroot/content
166 e20a8b6f 2019-06-04 stsp
167 e20a8b6f 2019-06-04 stsp cmp -s $testroot/content.expected $testroot/content
168 e20a8b6f 2019-06-04 stsp ret="$?"
169 e20a8b6f 2019-06-04 stsp if [ "$ret" != "0" ]; then
170 e20a8b6f 2019-06-04 stsp diff -u $testroot/content.expected $testroot/content
171 e20a8b6f 2019-06-04 stsp test_done "$testroot" "$ret"
172 e20a8b6f 2019-06-04 stsp return 1
173 e20a8b6f 2019-06-04 stsp fi
174 e20a8b6f 2019-06-04 stsp
175 e20a8b6f 2019-06-04 stsp echo "zeta" > $testroot/content.expected
176 e20a8b6f 2019-06-04 stsp cat $testroot/wt/epsilon/zeta > $testroot/content
177 e20a8b6f 2019-06-04 stsp
178 e20a8b6f 2019-06-04 stsp cmp -s $testroot/content.expected $testroot/content
179 e20a8b6f 2019-06-04 stsp ret="$?"
180 e20a8b6f 2019-06-04 stsp if [ "$ret" != "0" ]; then
181 e20a8b6f 2019-06-04 stsp diff -u $testroot/content.expected $testroot/content
182 e20a8b6f 2019-06-04 stsp fi
183 e20a8b6f 2019-06-04 stsp test_done "$testroot" "$ret"
184 e20a8b6f 2019-06-04 stsp }
185 e20a8b6f 2019-06-04 stsp
186 a9fa2909 2019-07-27 stsp function test_revert_file_in_new_subdir {
187 a9fa2909 2019-07-27 stsp local testroot=`test_init revert_file_in_new_subdir`
188 a9fa2909 2019-07-27 stsp
189 a9fa2909 2019-07-27 stsp got checkout $testroot/repo $testroot/wt > /dev/null
190 a9fa2909 2019-07-27 stsp ret="$?"
191 a9fa2909 2019-07-27 stsp if [ "$ret" != "0" ]; then
192 a9fa2909 2019-07-27 stsp test_done "$testroot" "$ret"
193 a9fa2909 2019-07-27 stsp return 1
194 a9fa2909 2019-07-27 stsp fi
195 a9fa2909 2019-07-27 stsp
196 a9fa2909 2019-07-27 stsp
197 a9fa2909 2019-07-27 stsp mkdir -p $testroot/wt/newdir
198 a9fa2909 2019-07-27 stsp echo new > $testroot/wt/newdir/new
199 a9fa2909 2019-07-27 stsp (cd $testroot/wt && got add newdir/new > /dev/null)
200 a9fa2909 2019-07-27 stsp
201 a9fa2909 2019-07-27 stsp (cd $testroot/wt && got revert newdir/new > $testroot/stdout)
202 a9fa2909 2019-07-27 stsp
203 a9fa2909 2019-07-27 stsp echo "R newdir/new" > $testroot/stdout.expected
204 a9fa2909 2019-07-27 stsp cmp -s $testroot/stdout.expected $testroot/stdout
205 a9fa2909 2019-07-27 stsp ret="$?"
206 a9fa2909 2019-07-27 stsp if [ "$ret" != "0" ]; then
207 a9fa2909 2019-07-27 stsp diff -u $testroot/stdout.expected $testroot/stdout
208 a9fa2909 2019-07-27 stsp test_done "$testroot" "$ret"
209 a9fa2909 2019-07-27 stsp return 1
210 a9fa2909 2019-07-27 stsp fi
211 a9fa2909 2019-07-27 stsp
212 a9fa2909 2019-07-27 stsp (cd $testroot/wt && got status > $testroot/stdout)
213 a9fa2909 2019-07-27 stsp
214 a9fa2909 2019-07-27 stsp echo "? newdir/new" > $testroot/stdout.expected
215 a9fa2909 2019-07-27 stsp cmp -s $testroot/stdout.expected $testroot/stdout
216 a9fa2909 2019-07-27 stsp ret="$?"
217 a9fa2909 2019-07-27 stsp if [ "$ret" != "0" ]; then
218 a9fa2909 2019-07-27 stsp diff -u $testroot/stdout.expected $testroot/stdout
219 a9fa2909 2019-07-27 stsp fi
220 a9fa2909 2019-07-27 stsp test_done "$testroot" "$ret"
221 a9fa2909 2019-07-27 stsp
222 a9fa2909 2019-07-27 stsp }
223 a9fa2909 2019-07-27 stsp
224 a129376b 2019-03-28 stsp run_test test_revert_basic
225 a129376b 2019-03-28 stsp run_test test_revert_rm
226 a129376b 2019-03-28 stsp run_test test_revert_add
227 e20a8b6f 2019-06-04 stsp run_test test_revert_multiple
228 a9fa2909 2019-07-27 stsp run_test test_revert_file_in_new_subdir