##// END OF EJS Templates
tests: stabilize ssh tests on Windows...
Matt Harbison -
r36007:c64b9adf default
parent child Browse files
Show More
@@ -1,404 +1,405
1 1 $ cat << EOF >> $HGRCPATH
2 2 > [ui]
3 3 > interactive=yes
4 4 > [format]
5 5 > usegeneraldelta=yes
6 6 > EOF
7 7
8 8 $ hg init debugrevlog
9 9 $ cd debugrevlog
10 10 $ echo a > a
11 11 $ hg ci -Am adda
12 12 adding a
13 13 $ hg debugrevlog -m
14 14 format : 1
15 15 flags : inline, generaldelta
16 16
17 17 revisions : 1
18 18 merges : 0 ( 0.00%)
19 19 normal : 1 (100.00%)
20 20 revisions : 1
21 21 full : 1 (100.00%)
22 22 deltas : 0 ( 0.00%)
23 23 revision size : 44
24 24 full : 44 (100.00%)
25 25 deltas : 0 ( 0.00%)
26 26
27 27 chunks : 1
28 28 0x75 (u) : 1 (100.00%)
29 29 chunks size : 44
30 30 0x75 (u) : 44 (100.00%)
31 31
32 32 avg chain length : 0
33 33 max chain length : 0
34 34 max chain reach : 44
35 35 compression ratio : 0
36 36
37 37 uncompressed data size (min/max/avg) : 43 / 43 / 43
38 38 full revision size (min/max/avg) : 44 / 44 / 44
39 39 delta size (min/max/avg) : 0 / 0 / 0
40 40
41 41 Test debugindex, with and without the --debug flag
42 42 $ hg debugindex a
43 43 rev offset length ..... linkrev nodeid p1 p2 (re)
44 44 0 0 3 .... 0 b789fdd96dc2 000000000000 000000000000 (re)
45 45 $ hg --debug debugindex a
46 46 rev offset length ..... linkrev nodeid p1 p2 (re)
47 47 0 0 3 .... 0 b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 (re)
48 48 $ hg debugindex -f 1 a
49 49 rev flag offset length size ..... link p1 p2 nodeid (re)
50 50 0 0000 0 3 2 .... 0 -1 -1 b789fdd96dc2 (re)
51 51 $ hg --debug debugindex -f 1 a
52 52 rev flag offset length size ..... link p1 p2 nodeid (re)
53 53 0 0000 0 3 2 .... 0 -1 -1 b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 (re)
54 54
55 55 debugdelta chain basic output
56 56
57 57 $ hg debugdeltachain -m
58 58 rev chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio
59 59 0 1 1 -1 base 44 43 44 1.02326 44 0 0.00000
60 60
61 61 $ hg debugdeltachain -m -T '{rev} {chainid} {chainlen}\n'
62 62 0 1 1
63 63
64 64 $ hg debugdeltachain -m -Tjson
65 65 [
66 66 {
67 67 "chainid": 1,
68 68 "chainlen": 1,
69 69 "chainratio": 1.02325581395,
70 70 "chainsize": 44,
71 71 "compsize": 44,
72 72 "deltatype": "base",
73 73 "extradist": 0,
74 74 "extraratio": 0.0,
75 75 "lindist": 44,
76 76 "prevrev": -1,
77 77 "rev": 0,
78 78 "uncompsize": 43
79 79 }
80 80 ]
81 81
82 82 debugdelta chain with sparse read enabled
83 83
84 84 $ cat >> $HGRCPATH <<EOF
85 85 > [experimental]
86 86 > sparse-read = True
87 87 > EOF
88 88 $ hg debugdeltachain -m
89 89 rev chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio readsize largestblk rddensity srchunks
90 90 0 1 1 -1 base 44 43 44 1.02326 44 0 0.00000 44 44 1.00000 1
91 91
92 92 $ hg debugdeltachain -m -T '{rev} {chainid} {chainlen} {readsize} {largestblock} {readdensity}\n'
93 93 0 1 1 44 44 1.0
94 94
95 95 $ hg debugdeltachain -m -Tjson
96 96 [
97 97 {
98 98 "chainid": 1,
99 99 "chainlen": 1,
100 100 "chainratio": 1.02325581395,
101 101 "chainsize": 44,
102 102 "compsize": 44,
103 103 "deltatype": "base",
104 104 "extradist": 0,
105 105 "extraratio": 0.0,
106 106 "largestblock": 44,
107 107 "lindist": 44,
108 108 "prevrev": -1,
109 109 "readdensity": 1.0,
110 110 "readsize": 44,
111 111 "rev": 0,
112 112 "srchunks": 1,
113 113 "uncompsize": 43
114 114 }
115 115 ]
116 116
117 117 $ printf "This test checks things.\n" >> a
118 118 $ hg ci -m a
119 119 $ hg branch other
120 120 marked working directory as branch other
121 121 (branches are permanent and global, did you want a bookmark?)
122 122 $ for i in `$TESTDIR/seq.py 5`; do
123 123 > printf "shorter ${i}" >> a
124 124 > hg ci -m "a other:$i"
125 125 > hg up -q default
126 126 > printf "for the branch default we want longer chains: ${i}" >> a
127 127 > hg ci -m "a default:$i"
128 128 > hg up -q other
129 129 > done
130 130 $ hg debugdeltachain a -T '{rev} {srchunks}\n' \
131 131 > --config experimental.sparse-read.density-threshold=0.50 \
132 132 > --config experimental.sparse-read.min-gap-size=0
133 133 0 1
134 134 1 1
135 135 2 1
136 136 3 1
137 137 4 1
138 138 5 1
139 139 6 1
140 140 7 1
141 141 8 1
142 142 9 1
143 143 10 2
144 144 11 1
145 145 $ hg --config extensions.strip= strip --no-backup -r 1
146 146 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
147 147
148 148 Test max chain len
149 149 $ cat >> $HGRCPATH << EOF
150 150 > [format]
151 151 > maxchainlen=4
152 152 > EOF
153 153
154 154 $ printf "This test checks if maxchainlen config value is respected also it can serve as basic test for debugrevlog -d <file>.\n" >> a
155 155 $ hg ci -m a
156 156 $ printf "b\n" >> a
157 157 $ hg ci -m a
158 158 $ printf "c\n" >> a
159 159 $ hg ci -m a
160 160 $ printf "d\n" >> a
161 161 $ hg ci -m a
162 162 $ printf "e\n" >> a
163 163 $ hg ci -m a
164 164 $ printf "f\n" >> a
165 165 $ hg ci -m a
166 166 $ printf 'g\n' >> a
167 167 $ hg ci -m a
168 168 $ printf 'h\n' >> a
169 169 $ hg ci -m a
170 170 $ hg debugrevlog -d a
171 171 # rev p1rev p2rev start end deltastart base p1 p2 rawsize totalsize compression heads chainlen
172 172 0 -1 -1 0 ??? 0 0 0 0 ??? ???? ? 1 0 (glob)
173 173 1 0 -1 ??? ??? 0 0 0 0 ??? ???? ? 1 1 (glob)
174 174 2 1 -1 ??? ??? ??? ??? ??? 0 ??? ???? ? 1 2 (glob)
175 175 3 2 -1 ??? ??? ??? ??? ??? 0 ??? ???? ? 1 3 (glob)
176 176 4 3 -1 ??? ??? ??? ??? ??? 0 ??? ???? ? 1 4 (glob)
177 177 5 4 -1 ??? ??? ??? ??? ??? 0 ??? ???? ? 1 0 (glob)
178 178 6 5 -1 ??? ??? ??? ??? ??? 0 ??? ???? ? 1 1 (glob)
179 179 7 6 -1 ??? ??? ??? ??? ??? 0 ??? ???? ? 1 2 (glob)
180 180 8 7 -1 ??? ??? ??? ??? ??? 0 ??? ???? ? 1 3 (glob)
181 181
182 182 Test debuglocks command:
183 183
184 184 $ hg debuglocks
185 185 lock: free
186 186 wlock: free
187 187
188 188 * Test setting the lock
189 189
190 190 waitlock <file> will wait for file to be created. If it isn't in a reasonable
191 191 amount of time, displays error message and returns 1
192 192 $ waitlock() {
193 193 > start=`date +%s`
194 194 > timeout=5
195 195 > while [ \( ! -f $1 \) -a \( ! -L $1 \) ]; do
196 196 > now=`date +%s`
197 197 > if [ "`expr $now - $start`" -gt $timeout ]; then
198 198 > echo "timeout: $1 was not created in $timeout seconds"
199 199 > return 1
200 200 > fi
201 201 > sleep 0.1
202 202 > done
203 203 > }
204 204 $ dolock() {
205 205 > {
206 206 > waitlock .hg/unlock
207 207 > rm -f .hg/unlock
208 208 > echo y
209 209 > } | hg debuglocks "$@" > /dev/null
210 210 > }
211 211 $ dolock -s &
212 212 $ waitlock .hg/store/lock
213 213
214 214 $ hg debuglocks
215 215 lock: user *, process * (*s) (glob)
216 216 wlock: free
217 217 [1]
218 218 $ touch .hg/unlock
219 219 $ wait
220 220 $ [ -f .hg/store/lock ] || echo "There is no lock"
221 221 There is no lock
222 222
223 223 * Test setting the wlock
224 224
225 225 $ dolock -S &
226 226 $ waitlock .hg/wlock
227 227
228 228 $ hg debuglocks
229 229 lock: free
230 230 wlock: user *, process * (*s) (glob)
231 231 [1]
232 232 $ touch .hg/unlock
233 233 $ wait
234 234 $ [ -f .hg/wlock ] || echo "There is no wlock"
235 235 There is no wlock
236 236
237 237 * Test setting both locks
238 238
239 239 $ dolock -Ss &
240 240 $ waitlock .hg/wlock && waitlock .hg/store/lock
241 241
242 242 $ hg debuglocks
243 243 lock: user *, process * (*s) (glob)
244 244 wlock: user *, process * (*s) (glob)
245 245 [2]
246 246
247 247 * Test failing to set a lock
248 248
249 249 $ hg debuglocks -s
250 250 abort: lock is already held
251 251 [255]
252 252
253 253 $ hg debuglocks -S
254 254 abort: wlock is already held
255 255 [255]
256 256
257 257 $ touch .hg/unlock
258 258 $ wait
259 259
260 260 $ hg debuglocks
261 261 lock: free
262 262 wlock: free
263 263
264 264 * Test forcing the lock
265 265
266 266 $ dolock -s &
267 267 $ waitlock .hg/store/lock
268 268
269 269 $ hg debuglocks
270 270 lock: user *, process * (*s) (glob)
271 271 wlock: free
272 272 [1]
273 273
274 274 $ hg debuglocks -L
275 275
276 276 $ hg debuglocks
277 277 lock: free
278 278 wlock: free
279 279
280 280 $ touch .hg/unlock
281 281 $ wait
282 282
283 283 * Test forcing the wlock
284 284
285 285 $ dolock -S &
286 286 $ waitlock .hg/wlock
287 287
288 288 $ hg debuglocks
289 289 lock: free
290 290 wlock: user *, process * (*s) (glob)
291 291 [1]
292 292
293 293 $ hg debuglocks -W
294 294
295 295 $ hg debuglocks
296 296 lock: free
297 297 wlock: free
298 298
299 299 $ touch .hg/unlock
300 300 $ wait
301 301
302 302 Test WdirUnsupported exception
303 303
304 304 $ hg debugdata -c ffffffffffffffffffffffffffffffffffffffff
305 305 abort: working directory revision cannot be specified
306 306 [255]
307 307
308 308 Test cache warming command
309 309
310 310 $ rm -rf .hg/cache/
311 311 $ hg debugupdatecaches --debug
312 312 updating the branch cache
313 313 $ ls -r .hg/cache/*
314 314 .hg/cache/rbc-revs-v1
315 315 .hg/cache/rbc-names-v1
316 316 .hg/cache/branch2-served
317 317
318 318 $ cd ..
319 319
320 320 Test internal debugstacktrace command
321 321
322 322 $ cat > debugstacktrace.py << EOF
323 323 > from __future__ import absolute_import
324 324 > import sys
325 325 > from mercurial import util
326 326 > def f():
327 327 > util.debugstacktrace(f=sys.stdout)
328 328 > g()
329 329 > def g():
330 330 > util.dst('hello from g\\n', skip=1)
331 331 > h()
332 332 > def h():
333 333 > util.dst('hi ...\\nfrom h hidden in g', 1, depth=2)
334 334 > f()
335 335 > EOF
336 336 $ $PYTHON debugstacktrace.py
337 337 stacktrace at:
338 338 debugstacktrace.py:12 in * (glob)
339 339 debugstacktrace.py:5 in f
340 340 hello from g at:
341 341 debugstacktrace.py:12 in * (glob)
342 342 debugstacktrace.py:6 in f
343 343 hi ...
344 344 from h hidden in g at:
345 345 debugstacktrace.py:6 in f
346 346 debugstacktrace.py:9 in g
347 347
348 348 Test debugcapabilities command:
349 349
350 350 $ hg debugcapabilities ./debugrevlog/
351 351 Main capabilities:
352 352 branchmap
353 353 $USUAL_BUNDLE2_CAPS$
354 354 getbundle
355 355 known
356 356 lookup
357 357 pushkey
358 358 unbundle
359 359 Bundle2 capabilities:
360 360 HG20
361 361 bookmarks
362 362 changegroup
363 363 01
364 364 02
365 365 digests
366 366 md5
367 367 sha1
368 368 sha512
369 369 error
370 370 abort
371 371 unsupportedcontent
372 372 pushraced
373 373 pushkey
374 374 hgtagsfnodes
375 375 listkeys
376 376 phases
377 377 heads
378 378 pushkey
379 379 remote-changegroup
380 380 http
381 381 https
382 382 stream
383 383 v2
384 384
385 385 Test debugpeer
386 386
387 387 $ hg --config ui.ssh="\"$PYTHON\" \"$TESTDIR/dummyssh\"" debugpeer ssh://user@dummy/debugrevlog
388 388 url: ssh://user@dummy/debugrevlog
389 389 local: no
390 390 pushable: yes
391 391
392 392 $ hg --config ui.ssh="\"$PYTHON\" \"$TESTDIR/dummyssh\"" --debug debugpeer ssh://user@dummy/debugrevlog
393 running "*" "*/tests/dummyssh" 'user@dummy' 'hg -R debugrevlog serve --stdio' (glob)
393 running "*" "*/tests/dummyssh" 'user@dummy' 'hg -R debugrevlog serve --stdio' (glob) (no-windows !)
394 running "*" "*\tests/dummyssh" "user@dummy" "hg -R debugrevlog serve --stdio" (glob) (windows !)
394 395 devel-peer-request: hello
395 396 sending hello command
396 397 devel-peer-request: between
397 398 devel-peer-request: pairs: 81 bytes
398 399 sending between command
399 400 remote: 384
400 401 remote: capabilities: lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
401 402 remote: 1
402 403 url: ssh://user@dummy/debugrevlog
403 404 local: no
404 405 pushable: yes
@@ -1,494 +1,502
1 1 $ cat >> $HGRCPATH << EOF
2 2 > [ui]
3 3 > ssh = $PYTHON "$TESTDIR/dummyssh"
4 4 > [devel]
5 5 > debug.peer-request = true
6 6 > [extensions]
7 7 > sshprotoext = $TESTDIR/sshprotoext.py
8 8 > EOF
9 9
10 10 $ hg init server
11 11 $ cd server
12 12 $ echo 0 > foo
13 13 $ hg -q add foo
14 14 $ hg commit -m initial
15 15 $ cd ..
16 16
17 17 Test a normal behaving server, for sanity
18 18
19 19 $ hg --debug debugpeer ssh://user@dummy/server
20 running * "*/tests/dummyssh" 'user@dummy' 'hg -R server serve --stdio' (glob)
20 running * "*/tests/dummyssh" 'user@dummy' 'hg -R server serve --stdio' (glob) (no-windows !)
21 running * "*\tests/dummyssh" "user@dummy" "hg -R server serve --stdio" (glob) (windows !)
21 22 devel-peer-request: hello
22 23 sending hello command
23 24 devel-peer-request: between
24 25 devel-peer-request: pairs: 81 bytes
25 26 sending between command
26 27 remote: 384
27 28 remote: capabilities: lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
28 29 remote: 1
29 30 url: ssh://user@dummy/server
30 31 local: no
31 32 pushable: yes
32 33
33 34 Server should answer the "hello" command in isolation
34 35
35 36 $ hg -R server serve --stdio << EOF
36 37 > hello
37 38 > EOF
38 39 384
39 40 capabilities: lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
40 41
41 42 >=0.9.1 clients send a "hello" + "between" for the null range as part of handshake.
42 43 Server should reply with capabilities and should send "1\n\n" as a successful
43 44 reply with empty response to the "between".
44 45
45 46 $ hg -R server serve --stdio << EOF
46 47 > hello
47 48 > between
48 49 > pairs 81
49 50 > 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
50 51 > EOF
51 52 384
52 53 capabilities: lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
53 54 1
54 55
55 56
56 57 SSH banner is not printed by default, ignored by clients
57 58
58 59 $ SSHSERVERMODE=banner hg debugpeer ssh://user@dummy/server
59 60 url: ssh://user@dummy/server
60 61 local: no
61 62 pushable: yes
62 63
63 64 --debug will print the banner
64 65
65 66 $ SSHSERVERMODE=banner hg --debug debugpeer ssh://user@dummy/server
66 running * "*/tests/dummyssh" 'user@dummy' 'hg -R server serve --stdio' (glob)
67 running * "*/tests/dummyssh" 'user@dummy' 'hg -R server serve --stdio' (glob) (no-windows !)
68 running * "*\tests/dummyssh" "user@dummy" "hg -R server serve --stdio" (glob) (windows !)
67 69 devel-peer-request: hello
68 70 sending hello command
69 71 devel-peer-request: between
70 72 devel-peer-request: pairs: 81 bytes
71 73 sending between command
72 74 remote: banner: line 0
73 75 remote: banner: line 1
74 76 remote: banner: line 2
75 77 remote: banner: line 3
76 78 remote: banner: line 4
77 79 remote: banner: line 5
78 80 remote: banner: line 6
79 81 remote: banner: line 7
80 82 remote: banner: line 8
81 83 remote: banner: line 9
82 84 remote: 384
83 85 remote: capabilities: lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
84 86 remote: 1
85 87 url: ssh://user@dummy/server
86 88 local: no
87 89 pushable: yes
88 90
89 91 And test the banner with the raw protocol
90 92
91 93 $ SSHSERVERMODE=banner hg -R server serve --stdio << EOF
92 94 > hello
93 95 > between
94 96 > pairs 81
95 97 > 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
96 98 > EOF
97 99 banner: line 0
98 100 banner: line 1
99 101 banner: line 2
100 102 banner: line 3
101 103 banner: line 4
102 104 banner: line 5
103 105 banner: line 6
104 106 banner: line 7
105 107 banner: line 8
106 108 banner: line 9
107 109 384
108 110 capabilities: lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
109 111 1
110 112
111 113
112 114 Connecting to a <0.9.1 server that doesn't support the hello command.
113 115 The client should refuse, as we dropped support for connecting to such
114 116 servers.
115 117
116 118 $ SSHSERVERMODE=no-hello hg --debug debugpeer ssh://user@dummy/server
117 running * "*/tests/dummyssh" 'user@dummy' 'hg -R server serve --stdio' (glob)
119 running * "*/tests/dummyssh" 'user@dummy' 'hg -R server serve --stdio' (glob) (no-windows !)
120 running * "*\tests/dummyssh" "user@dummy" "hg -R server serve --stdio" (glob) (windows !)
118 121 devel-peer-request: hello
119 122 sending hello command
120 123 devel-peer-request: between
121 124 devel-peer-request: pairs: 81 bytes
122 125 sending between command
123 126 remote: 0
124 127 remote: 1
125 128 abort: no suitable response from remote hg!
126 129 [255]
127 130
128 131 Sending an unknown command to the server results in an empty response to that command
129 132
130 133 $ hg -R server serve --stdio << EOF
131 134 > pre-hello
132 135 > hello
133 136 > between
134 137 > pairs 81
135 138 > 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
136 139 > EOF
137 140 0
138 141 384
139 142 capabilities: lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
140 143 1
141 144
142 145
143 146 $ hg --config sshpeer.mode=extra-handshake-commands --config sshpeer.handshake-mode=pre-no-args --debug debugpeer ssh://user@dummy/server
144 running * "*/tests/dummyssh" 'user@dummy' 'hg -R server serve --stdio' (glob)
147 running * "*/tests/dummyssh" 'user@dummy' 'hg -R server serve --stdio' (glob) (no-windows !)
148 running * "*\tests/dummyssh" "user@dummy" "hg -R server serve --stdio" (glob) (windows !)
145 149 sending no-args command
146 150 devel-peer-request: hello
147 151 sending hello command
148 152 devel-peer-request: between
149 153 devel-peer-request: pairs: 81 bytes
150 154 sending between command
151 155 remote: 0
152 156 remote: 384
153 157 remote: capabilities: lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
154 158 remote: 1
155 159 url: ssh://user@dummy/server
156 160 local: no
157 161 pushable: yes
158 162
159 163 Send multiple unknown commands before hello
160 164
161 165 $ hg -R server serve --stdio << EOF
162 166 > unknown1
163 167 > unknown2
164 168 > unknown3
165 169 > hello
166 170 > between
167 171 > pairs 81
168 172 > 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
169 173 > EOF
170 174 0
171 175 0
172 176 0
173 177 384
174 178 capabilities: lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
175 179 1
176 180
177 181
178 182 $ hg --config sshpeer.mode=extra-handshake-commands --config sshpeer.handshake-mode=pre-multiple-no-args --debug debugpeer ssh://user@dummy/server
179 running * "*/tests/dummyssh" 'user@dummy' 'hg -R server serve --stdio' (glob)
183 running * "*/tests/dummyssh" 'user@dummy' 'hg -R server serve --stdio' (glob) (no-windows !)
184 running * "*\tests/dummyssh" "user@dummy" "hg -R server serve --stdio" (glob) (windows !)
180 185 sending unknown1 command
181 186 sending unknown2 command
182 187 sending unknown3 command
183 188 devel-peer-request: hello
184 189 sending hello command
185 190 devel-peer-request: between
186 191 devel-peer-request: pairs: 81 bytes
187 192 sending between command
188 193 remote: 0
189 194 remote: 0
190 195 remote: 0
191 196 remote: 384
192 197 remote: capabilities: lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
193 198 remote: 1
194 199 url: ssh://user@dummy/server
195 200 local: no
196 201 pushable: yes
197 202
198 203 Send an unknown command before hello that has arguments
199 204
200 205 $ hg -R server serve --stdio << EOF
201 206 > with-args
202 207 > foo 13
203 208 > value for foo
204 209 > bar 13
205 210 > value for bar
206 211 > hello
207 212 > between
208 213 > pairs 81
209 214 > 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
210 215 > EOF
211 216 0
212 217 0
213 218 0
214 219 0
215 220 0
216 221 384
217 222 capabilities: lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
218 223 1
219 224
220 225
221 226 Send an unknown command having an argument that looks numeric
222 227
223 228 $ hg -R server serve --stdio << EOF
224 229 > unknown
225 230 > foo 1
226 231 > 0
227 232 > hello
228 233 > between
229 234 > pairs 81
230 235 > 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
231 236 > EOF
232 237 0
233 238 0
234 239 0
235 240 384
236 241 capabilities: lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
237 242 1
238 243
239 244
240 245 $ hg -R server serve --stdio << EOF
241 246 > unknown
242 247 > foo 1
243 248 > 1
244 249 > hello
245 250 > between
246 251 > pairs 81
247 252 > 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
248 253 > EOF
249 254 0
250 255 0
251 256 0
252 257 384
253 258 capabilities: lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
254 259 1
255 260
256 261
257 262 When sending a dict argument value, it is serialized to
258 263 "<arg> <item count>" followed by "<key> <len>\n<value>" for each item
259 264 in the dict.
260 265
261 266 Dictionary value for unknown command
262 267
263 268 $ hg -R server serve --stdio << EOF
264 269 > unknown
265 270 > dict 3
266 271 > key1 3
267 272 > foo
268 273 > key2 3
269 274 > bar
270 275 > key3 3
271 276 > baz
272 277 > hello
273 278 > EOF
274 279 0
275 280 0
276 281 0
277 282 0
278 283 0
279 284 0
280 285 0
281 286 0
282 287 384
283 288 capabilities: lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
284 289
285 290 Incomplete dictionary send
286 291
287 292 $ hg -R server serve --stdio << EOF
288 293 > unknown
289 294 > dict 3
290 295 > key1 3
291 296 > foo
292 297 > EOF
293 298 0
294 299 0
295 300 0
296 301 0
297 302
298 303 Incomplete value send
299 304
300 305 $ hg -R server serve --stdio << EOF
301 306 > unknown
302 307 > dict 3
303 308 > key1 3
304 309 > fo
305 310 > EOF
306 311 0
307 312 0
308 313 0
309 314 0
310 315
311 316 Send a command line with spaces
312 317
313 318 $ hg -R server serve --stdio << EOF
314 319 > unknown withspace
315 320 > hello
316 321 > between
317 322 > pairs 81
318 323 > 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
319 324 > EOF
320 325 0
321 326 384
322 327 capabilities: lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
323 328 1
324 329
325 330
326 331 $ hg -R server serve --stdio << EOF
327 332 > unknown with multiple spaces
328 333 > hello
329 334 > between
330 335 > pairs 81
331 336 > 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
332 337 > EOF
333 338 0
334 339 384
335 340 capabilities: lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
336 341 1
337 342
338 343
339 344 $ hg -R server serve --stdio << EOF
340 345 > unknown with spaces
341 346 > key 10
342 347 > some value
343 348 > hello
344 349 > between
345 350 > pairs 81
346 351 > 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
347 352 > EOF
348 353 0
349 354 0
350 355 0
351 356 384
352 357 capabilities: lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
353 358 1
354 359
355 360
356 361 Send an unknown command after the "between"
357 362
358 363 $ hg -R server serve --stdio << EOF
359 364 > hello
360 365 > between
361 366 > pairs 81
362 367 > 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000unknown
363 368 > EOF
364 369 384
365 370 capabilities: lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
366 371 1
367 372
368 373 0
369 374
370 375 And one with arguments
371 376
372 377 $ hg -R server serve --stdio << EOF
373 378 > hello
374 379 > between
375 380 > pairs 81
376 381 > 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000unknown
377 382 > foo 5
378 383 > value
379 384 > bar 3
380 385 > baz
381 386 > EOF
382 387 384
383 388 capabilities: lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
384 389 1
385 390
386 391 0
387 392 0
388 393 0
389 394 0
390 395 0
391 396
392 397 Send an upgrade request to a server that doesn't support that command
393 398
394 399 $ hg -R server serve --stdio << EOF
395 400 > upgrade 2e82ab3f-9ce3-4b4e-8f8c-6fd1c0e9e23a proto=irrelevant1%2Cirrelevant2
396 401 > hello
397 402 > between
398 403 > pairs 81
399 404 > 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
400 405 > EOF
401 406 0
402 407 384
403 408 capabilities: lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
404 409 1
405 410
406 411
407 412 $ hg --config experimental.sshpeer.advertise-v2=true --debug debugpeer ssh://user@dummy/server
408 running * "*/tests/dummyssh" 'user@dummy' 'hg -R server serve --stdio' (glob)
413 running * "*/tests/dummyssh" 'user@dummy' 'hg -R server serve --stdio' (glob) (no-windows !)
414 running * "*\tests/dummyssh" "user@dummy" "hg -R server serve --stdio" (glob) (windows !)
409 415 sending upgrade request: * proto=exp-ssh-v2-0001 (glob)
410 416 devel-peer-request: hello
411 417 sending hello command
412 418 devel-peer-request: between
413 419 devel-peer-request: pairs: 81 bytes
414 420 sending between command
415 421 remote: 0
416 422 remote: 384
417 423 remote: capabilities: lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
418 424 remote: 1
419 425 url: ssh://user@dummy/server
420 426 local: no
421 427 pushable: yes
422 428
423 429 Send an upgrade request to a server that supports upgrade
424 430
425 431 $ SSHSERVERMODE=upgradev2 hg -R server serve --stdio << EOF
426 432 > upgrade this-is-some-token proto=exp-ssh-v2-0001
427 433 > hello
428 434 > between
429 435 > pairs 81
430 436 > 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
431 437 > EOF
432 438 upgraded this-is-some-token exp-ssh-v2-0001
433 439 383
434 440 capabilities: lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
435 441
436 442 $ SSHSERVERMODE=upgradev2 hg --config experimental.sshpeer.advertise-v2=true --debug debugpeer ssh://user@dummy/server
437 running * "*/tests/dummyssh" 'user@dummy' 'hg -R server serve --stdio' (glob)
443 running * "*/tests/dummyssh" 'user@dummy' 'hg -R server serve --stdio' (glob) (no-windows !)
444 running * "*\tests/dummyssh" "user@dummy" "hg -R server serve --stdio" (glob) (windows !)
438 445 sending upgrade request: * proto=exp-ssh-v2-0001 (glob)
439 446 devel-peer-request: hello
440 447 sending hello command
441 448 devel-peer-request: between
442 449 devel-peer-request: pairs: 81 bytes
443 450 sending between command
444 451 protocol upgraded to exp-ssh-v2-0001
445 452 url: ssh://user@dummy/server
446 453 local: no
447 454 pushable: yes
448 455
449 456 Verify the peer has capabilities
450 457
451 458 $ SSHSERVERMODE=upgradev2 hg --config experimental.sshpeer.advertise-v2=true --debug debugcapabilities ssh://user@dummy/server
452 running * "*/tests/dummyssh" 'user@dummy' 'hg -R server serve --stdio' (glob)
459 running * "*/tests/dummyssh" 'user@dummy' 'hg -R server serve --stdio' (glob) (no-windows !)
460 running * "*\tests/dummyssh" "user@dummy" "hg -R server serve --stdio" (glob) (windows !)
453 461 sending upgrade request: * proto=exp-ssh-v2-0001 (glob)
454 462 devel-peer-request: hello
455 463 sending hello command
456 464 devel-peer-request: between
457 465 devel-peer-request: pairs: 81 bytes
458 466 sending between command
459 467 protocol upgraded to exp-ssh-v2-0001
460 468 Main capabilities:
461 469 batch
462 470 branchmap
463 471 $USUAL_BUNDLE2_CAPS_SERVER$
464 472 changegroupsubset
465 473 getbundle
466 474 known
467 475 lookup
468 476 pushkey
469 477 streamreqs=generaldelta,revlogv1
470 478 unbundle=HG10GZ,HG10BZ,HG10UN
471 479 unbundlehash
472 480 Bundle2 capabilities:
473 481 HG20
474 482 bookmarks
475 483 changegroup
476 484 01
477 485 02
478 486 digests
479 487 md5
480 488 sha1
481 489 sha512
482 490 error
483 491 abort
484 492 unsupportedcontent
485 493 pushraced
486 494 pushkey
487 495 hgtagsfnodes
488 496 listkeys
489 497 phases
490 498 heads
491 499 pushkey
492 500 remote-changegroup
493 501 http
494 502 https
General Comments 0
You need to be logged in to leave comments. Login now