comparison tests/test-http-protocol.t @ 30762:35b516f800e0

wireproto: advertise supported media types and compression formats This commit introduces support for advertising a server's support for media types and compression formats in accordance with the spec defined in internals.wireproto. The bulk of the new code is a helper function in wireproto.py to obtain a prioritized list of compression engines available to the wire protocol. While not utilized yet, we implement support for obtaining the list of compression engines advertised by the client. The upcoming HTTP protocol enhancements are a bit lower-level than existing tests (most existing tests are command centric). So, this commit establishes a new test file that will be appropriate for holding tests around the functionality of the HTTP protocol itself. Rounding out this change, `hg debuginstall` now prints compression engines available to the server.
author Gregory Szorc <gregory.szorc@gmail.com>
date Sat, 24 Dec 2016 15:21:46 -0700
parents
children e75463e3179f
comparison
equal deleted inserted replaced
30761:7283719e2bfd 30762:35b516f800e0
1 $ cat >> $HGRCPATH << EOF
2 > [web]
3 > push_ssl = false
4 > allow_push = *
5 > EOF
6
7 $ hg init server
8 $ cd server
9 $ touch a
10 $ hg -q commit -A -m initial
11 $ cd ..
12
13 $ hg -R server serve -p $HGPORT -d --pid-file hg.pid
14 $ cat hg.pid >> $DAEMON_PIDS
15
16 compression formats are advertised in compression capability
17
18 #if zstd
19 $ get-with-headers.py 127.0.0.1:$HGPORT '?cmd=capabilities' | tr ' ' '\n' | grep compression
20 compression=zstd,zlib
21 #else
22 $ get-with-headers.py 127.0.0.1:$HGPORT '?cmd=capabilities' | tr ' ' '\n' | grep compression
23 compression=ZL
24 #endif
25
26 $ killdaemons.py
27
28 server.compressionengines can replace engines list wholesale
29
30 $ hg --config server.compressionengines=none -R server serve -p $HGPORT -d --pid-file hg.pid
31 $ cat hg.pid > $DAEMON_PIDS
32 $ get-with-headers.py 127.0.0.1:$HGPORT '?cmd=capabilities' | tr ' ' '\n' | grep compression
33 compression=none
34
35 $ killdaemons.py
36
37 Order of engines can also change
38
39 $ hg --config server.compressionengines=none,zlib -R server serve -p $HGPORT -d --pid-file hg.pid
40 $ cat hg.pid > $DAEMON_PIDS
41 $ get-with-headers.py 127.0.0.1:$HGPORT '?cmd=capabilities' | tr ' ' '\n' | grep compression
42 compression=none,zlib
43
44 $ killdaemons.py