Mercurial > hg
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-http-protocol.t Sat Dec 24 15:21:46 2016 -0700 @@ -0,0 +1,44 @@ + $ cat >> $HGRCPATH << EOF + > [web] + > push_ssl = false + > allow_push = * + > EOF + + $ hg init server + $ cd server + $ touch a + $ hg -q commit -A -m initial + $ cd .. + + $ hg -R server serve -p $HGPORT -d --pid-file hg.pid + $ cat hg.pid >> $DAEMON_PIDS + +compression formats are advertised in compression capability + +#if zstd + $ get-with-headers.py 127.0.0.1:$HGPORT '?cmd=capabilities' | tr ' ' '\n' | grep compression + compression=zstd,zlib +#else + $ get-with-headers.py 127.0.0.1:$HGPORT '?cmd=capabilities' | tr ' ' '\n' | grep compression + compression=ZL +#endif + + $ killdaemons.py + +server.compressionengines can replace engines list wholesale + + $ hg --config server.compressionengines=none -R server serve -p $HGPORT -d --pid-file hg.pid + $ cat hg.pid > $DAEMON_PIDS + $ get-with-headers.py 127.0.0.1:$HGPORT '?cmd=capabilities' | tr ' ' '\n' | grep compression + compression=none + + $ killdaemons.py + +Order of engines can also change + + $ hg --config server.compressionengines=none,zlib -R server serve -p $HGPORT -d --pid-file hg.pid + $ cat hg.pid > $DAEMON_PIDS + $ get-with-headers.py 127.0.0.1:$HGPORT '?cmd=capabilities' | tr ' ' '\n' | grep compression + compression=none,zlib + + $ killdaemons.py