# HG changeset patch # User Saurabh Singh # Date 1507167566 25200 # Node ID a6d95a8b7243635279cce9b36413aef72d5fa70b # Parent 75de5d456b606d911b5f7ae842c6ae21f17fe605 serve: make tests compatible with chg chg only supports 'hg serve' when the options to the serve command follow the 'hg serve'. For example, 'hg -R serve ..' is unsupported. This leads to issues with chg running for the following tests: - test-bundle2-exchange.t - test-clone-uncompressed.t - test-hgweb-csp.t - test-http-bad-server.t - test-http-bundle1.t - test-http-protocol.t - test-http.t There was an effort made earlier to fix this issue for chg and the tests were fixed to confirm to the compatible pattern. But the new tests did not take care of the same and hence, fail. Hopefully, there will be continuous build setup for chg after all tests are made compatible with chg so that we can avoid such issues. Test Plan: Ran the aforementioned tests with and without '--chg' option. Differential Revision: https://phab.mercurial-scm.org/D946 diff -r 75de5d456b60 -r a6d95a8b7243 tests/test-bundle2-exchange.t --- a/tests/test-bundle2-exchange.t Sun Oct 01 12:10:48 2017 -0400 +++ b/tests/test-bundle2-exchange.t Wed Oct 04 18:39:26 2017 -0700 @@ -1029,7 +1029,7 @@ > [server] > bundle1 = false > EOF - $ hg -R bundle2onlyserver serve -p $HGPORT -d --pid-file=hg.pid + $ hg serve -R bundle2onlyserver -p $HGPORT -d --pid-file=hg.pid $ cat hg.pid >> $DAEMON_PIDS $ hg --config devel.legacy.exchange=bundle1 clone http://localhost:$HGPORT not-bundle2 requesting all changes @@ -1053,7 +1053,7 @@ > [server] > bundle1gd = false > EOF - $ hg -R bundle2onlyserver serve -p $HGPORT -d --pid-file=hg.pid + $ hg serve -R bundle2onlyserver -p $HGPORT -d --pid-file=hg.pid $ cat hg.pid >> $DAEMON_PIDS $ hg --config devel.legacy.exchange=bundle1 clone http://localhost:$HGPORT/ not-bundle2 diff -r 75de5d456b60 -r a6d95a8b7243 tests/test-clone-uncompressed.t --- a/tests/test-clone-uncompressed.t Sun Oct 01 12:10:48 2017 -0400 +++ b/tests/test-clone-uncompressed.t Wed Oct 04 18:39:26 2017 -0700 @@ -74,7 +74,7 @@ Streaming of secrets can be overridden by server config $ cd server - $ hg --config server.uncompressedallowsecret=true serve -p $HGPORT -d --pid-file=hg.pid + $ hg serve --config server.uncompressedallowsecret=true -p $HGPORT -d --pid-file=hg.pid $ cat hg.pid > $DAEMON_PIDS $ cd .. @@ -90,7 +90,7 @@ Verify interaction between preferuncompressed and secret presence $ cd server - $ hg --config server.preferuncompressed=true serve -p $HGPORT -d --pid-file=hg.pid + $ hg serve --config server.preferuncompressed=true -p $HGPORT -d --pid-file=hg.pid $ cat hg.pid > $DAEMON_PIDS $ cd .. @@ -106,7 +106,7 @@ Clone not allowed when full bundles disabled and can't serve secrets $ cd server - $ hg --config server.disablefullbundle=true serve -p $HGPORT -d --pid-file=hg.pid + $ hg serve --config server.disablefullbundle=true -p $HGPORT -d --pid-file=hg.pid $ cat hg.pid > $DAEMON_PIDS $ cd .. @@ -154,7 +154,7 @@ $ touch repo/f1 $ $TESTDIR/seq.py 50000 > repo/f2 $ hg -R repo ci -Aqm "0" - $ hg -R repo serve -p $HGPORT1 -d --pid-file=hg.pid --config extensions.delayer=delayer.py + $ hg serve -R repo -p $HGPORT1 -d --pid-file=hg.pid --config extensions.delayer=delayer.py $ cat hg.pid >> $DAEMON_PIDS clone while modifying the repo between stating file with write lock and diff -r 75de5d456b60 -r a6d95a8b7243 tests/test-hgweb-csp.t --- a/tests/test-hgweb-csp.t Sun Oct 01 12:10:48 2017 -0400 +++ b/tests/test-hgweb-csp.t Wed Oct 04 18:39:26 2017 -0700 @@ -110,7 +110,7 @@ $ killdaemons.py - $ hg -R repo1 serve -p $HGPORT -d --pid-file=hg.pid --config "web.csp=image-src 'self'; script-src https://example.com/ 'nonce-%nonce%'" + $ hg serve -R repo1 -p $HGPORT -d --pid-file=hg.pid --config "web.csp=image-src 'self'; script-src https://example.com/ 'nonce-%nonce%'" $ cat hg.pid > $DAEMON_PIDS static page sends CSP diff -r 75de5d456b60 -r a6d95a8b7243 tests/test-http-bad-server.t --- a/tests/test-http-bad-server.t Sun Oct 01 12:10:48 2017 -0400 +++ b/tests/test-http-bad-server.t Wed Oct 04 18:39:26 2017 -0700 @@ -32,7 +32,7 @@ Failure to accept() socket should result in connection related error message - $ hg --config badserver.closebeforeaccept=true serve -p $HGPORT -d --pid-file=hg.pid + $ hg serve --config badserver.closebeforeaccept=true -p $HGPORT -d --pid-file=hg.pid $ cat hg.pid > $DAEMON_PIDS $ hg clone http://localhost:$HGPORT/ clone @@ -47,7 +47,7 @@ Failure immediately after accept() should yield connection related error message - $ hg --config badserver.closeafteraccept=true serve -p $HGPORT -d --pid-file=hg.pid + $ hg serve --config badserver.closeafteraccept=true -p $HGPORT -d --pid-file=hg.pid $ cat hg.pid > $DAEMON_PIDS TODO: this usually outputs good results, but sometimes emits abort: @@ -67,7 +67,7 @@ Failure to read all bytes in initial HTTP request should yield connection related error message - $ hg --config badserver.closeafterrecvbytes=1 serve -p $HGPORT -d --pid-file=hg.pid -E error.log + $ hg serve --config badserver.closeafterrecvbytes=1 -p $HGPORT -d --pid-file=hg.pid -E error.log $ cat hg.pid > $DAEMON_PIDS $ hg clone http://localhost:$HGPORT/ clone @@ -84,7 +84,7 @@ Same failure, but server reads full HTTP request line - $ hg --config badserver.closeafterrecvbytes=40 serve -p $HGPORT -d --pid-file=hg.pid -E error.log + $ hg serve --config badserver.closeafterrecvbytes=40 -p $HGPORT -d --pid-file=hg.pid -E error.log $ cat hg.pid > $DAEMON_PIDS $ hg clone http://localhost:$HGPORT/ clone abort: error: bad HTTP status line: '' @@ -101,7 +101,7 @@ Failure on subsequent HTTP request on the same socket (cmd?batch) - $ hg --config badserver.closeafterrecvbytes=210 serve -p $HGPORT -d --pid-file=hg.pid -E error.log + $ hg serve --config badserver.closeafterrecvbytes=210 -p $HGPORT -d --pid-file=hg.pid -E error.log $ cat hg.pid > $DAEMON_PIDS $ hg clone http://localhost:$HGPORT/ clone abort: error: bad HTTP status line: '' @@ -139,7 +139,7 @@ Failure to read getbundle HTTP request - $ hg --config badserver.closeafterrecvbytes=292 serve -p $HGPORT -d --pid-file=hg.pid -E error.log + $ hg serve --config badserver.closeafterrecvbytes=292 -p $HGPORT -d --pid-file=hg.pid -E error.log $ cat hg.pid > $DAEMON_PIDS $ hg clone http://localhost:$HGPORT/ clone requesting all changes @@ -196,7 +196,7 @@ Now do a variation using POST to send arguments - $ hg --config experimental.httppostargs=true --config badserver.closeafterrecvbytes=315 serve -p $HGPORT -d --pid-file=hg.pid -E error.log + $ hg serve --config experimental.httppostargs=true --config badserver.closeafterrecvbytes=315 -p $HGPORT -d --pid-file=hg.pid -E error.log $ cat hg.pid > $DAEMON_PIDS $ hg clone http://localhost:$HGPORT/ clone @@ -247,7 +247,7 @@ Server sends a single character from the HTTP response line - $ hg --config badserver.closeaftersendbytes=1 serve -p $HGPORT -d --pid-file=hg.pid -E error.log + $ hg serve --config badserver.closeaftersendbytes=1 -p $HGPORT -d --pid-file=hg.pid -E error.log $ cat hg.pid > $DAEMON_PIDS $ hg clone http://localhost:$HGPORT/ clone @@ -271,7 +271,7 @@ Server sends an incomplete capabilities response body - $ hg --config badserver.closeaftersendbytes=180 serve -p $HGPORT -d --pid-file=hg.pid -E error.log + $ hg serve --config badserver.closeaftersendbytes=180 -p $HGPORT -d --pid-file=hg.pid -E error.log $ cat hg.pid > $DAEMON_PIDS $ hg clone http://localhost:$HGPORT/ clone @@ -301,7 +301,7 @@ Server sends incomplete headers for batch request - $ hg --config badserver.closeaftersendbytes=695 serve -p $HGPORT -d --pid-file=hg.pid -E error.log + $ hg serve --config badserver.closeaftersendbytes=695 -p $HGPORT -d --pid-file=hg.pid -E error.log $ cat hg.pid > $DAEMON_PIDS TODO this output is horrible @@ -350,12 +350,17 @@ Server sends an incomplete HTTP response body to batch request - $ hg --config badserver.closeaftersendbytes=760 serve -p $HGPORT -d --pid-file=hg.pid -E error.log + $ hg serve --config badserver.closeaftersendbytes=760 -p $HGPORT -d --pid-file=hg.pid -E error.log $ cat hg.pid > $DAEMON_PIDS TODO client spews a stack due to uncaught ValueError in batch.results() +#if no-chg $ hg clone http://localhost:$HGPORT/ clone 2> /dev/null [1] +#else + $ hg clone http://localhost:$HGPORT/ clone 2> /dev/null + [255] +#endif $ killdaemons.py $DAEMON_PIDS @@ -395,7 +400,7 @@ Server sends incomplete headers for getbundle response - $ hg --config badserver.closeaftersendbytes=895 serve -p $HGPORT -d --pid-file=hg.pid -E error.log + $ hg serve --config badserver.closeaftersendbytes=895 -p $HGPORT -d --pid-file=hg.pid -E error.log $ cat hg.pid > $DAEMON_PIDS TODO this output is terrible @@ -461,7 +466,7 @@ Server sends empty HTTP body for getbundle - $ hg --config badserver.closeaftersendbytes=933 serve -p $HGPORT -d --pid-file=hg.pid -E error.log + $ hg serve --config badserver.closeaftersendbytes=933 -p $HGPORT -d --pid-file=hg.pid -E error.log $ cat hg.pid > $DAEMON_PIDS $ hg clone http://localhost:$HGPORT/ clone @@ -524,7 +529,7 @@ Server sends partial compression string - $ hg --config badserver.closeaftersendbytes=945 serve -p $HGPORT -d --pid-file=hg.pid -E error.log + $ hg serve --config badserver.closeaftersendbytes=945 -p $HGPORT -d --pid-file=hg.pid -E error.log $ cat hg.pid > $DAEMON_PIDS $ hg clone http://localhost:$HGPORT/ clone @@ -589,7 +594,7 @@ Server sends partial bundle2 header magic - $ hg --config badserver.closeaftersendbytes=954 serve -p $HGPORT -d --pid-file=hg.pid -E error.log + $ hg serve --config badserver.closeaftersendbytes=954 -p $HGPORT -d --pid-file=hg.pid -E error.log $ cat hg.pid > $DAEMON_PIDS $ hg clone http://localhost:$HGPORT/ clone @@ -613,7 +618,7 @@ Server sends incomplete bundle2 stream params length - $ hg --config badserver.closeaftersendbytes=963 serve -p $HGPORT -d --pid-file=hg.pid -E error.log + $ hg serve --config badserver.closeaftersendbytes=963 -p $HGPORT -d --pid-file=hg.pid -E error.log $ cat hg.pid > $DAEMON_PIDS $ hg clone http://localhost:$HGPORT/ clone @@ -638,7 +643,7 @@ Servers stops after bundle2 stream params header - $ hg --config badserver.closeaftersendbytes=966 serve -p $HGPORT -d --pid-file=hg.pid -E error.log + $ hg serve --config badserver.closeaftersendbytes=966 -p $HGPORT -d --pid-file=hg.pid -E error.log $ cat hg.pid > $DAEMON_PIDS $ hg clone http://localhost:$HGPORT/ clone @@ -663,7 +668,7 @@ Server stops sending after bundle2 part header length - $ hg --config badserver.closeaftersendbytes=975 serve -p $HGPORT -d --pid-file=hg.pid -E error.log + $ hg serve --config badserver.closeaftersendbytes=975 -p $HGPORT -d --pid-file=hg.pid -E error.log $ cat hg.pid > $DAEMON_PIDS $ hg clone http://localhost:$HGPORT/ clone @@ -689,7 +694,7 @@ Server stops sending after bundle2 part header - $ hg --config badserver.closeaftersendbytes=1022 serve -p $HGPORT -d --pid-file=hg.pid -E error.log + $ hg serve --config badserver.closeaftersendbytes=1022 -p $HGPORT -d --pid-file=hg.pid -E error.log $ cat hg.pid > $DAEMON_PIDS $ hg clone http://localhost:$HGPORT/ clone @@ -719,7 +724,7 @@ Server stops after bundle2 part payload chunk size - $ hg --config badserver.closeaftersendbytes=1031 serve -p $HGPORT -d --pid-file=hg.pid -E error.log + $ hg serve --config badserver.closeaftersendbytes=1031 -p $HGPORT -d --pid-file=hg.pid -E error.log $ cat hg.pid > $DAEMON_PIDS $ hg clone http://localhost:$HGPORT/ clone @@ -750,7 +755,7 @@ Server stops sending in middle of bundle2 payload chunk - $ hg --config badserver.closeaftersendbytes=1504 serve -p $HGPORT -d --pid-file=hg.pid -E error.log + $ hg serve --config badserver.closeaftersendbytes=1504 -p $HGPORT -d --pid-file=hg.pid -E error.log $ cat hg.pid > $DAEMON_PIDS $ hg clone http://localhost:$HGPORT/ clone @@ -782,7 +787,7 @@ Server stops sending after 0 length payload chunk size - $ hg --config badserver.closeaftersendbytes=1513 serve -p $HGPORT -d --pid-file=hg.pid -E error.log + $ hg serve --config badserver.closeaftersendbytes=1513 -p $HGPORT -d --pid-file=hg.pid -E error.log $ cat hg.pid > $DAEMON_PIDS $ hg clone http://localhost:$HGPORT/ clone @@ -819,7 +824,7 @@ Server stops sending after 0 part bundle part header (indicating end of bundle2 payload) This is before the 0 size chunked transfer part that signals end of HTTP response. - $ hg --config badserver.closeaftersendbytes=1710 serve -p $HGPORT -d --pid-file=hg.pid -E error.log + $ hg serve --config badserver.closeaftersendbytes=1710 -p $HGPORT -d --pid-file=hg.pid -E error.log $ cat hg.pid > $DAEMON_PIDS $ hg clone http://localhost:$HGPORT/ clone @@ -862,7 +867,7 @@ Server sends a size 0 chunked-transfer size without terminating \r\n - $ hg --config badserver.closeaftersendbytes=1713 serve -p $HGPORT -d --pid-file=hg.pid -E error.log + $ hg serve --config badserver.closeaftersendbytes=1713 -p $HGPORT -d --pid-file=hg.pid -E error.log $ cat hg.pid > $DAEMON_PIDS $ hg clone http://localhost:$HGPORT/ clone diff -r 75de5d456b60 -r a6d95a8b7243 tests/test-http-bundle1.t --- a/tests/test-http-bundle1.t Sun Oct 01 12:10:48 2017 -0400 +++ b/tests/test-http-bundle1.t Wed Oct 04 18:39:26 2017 -0700 @@ -357,7 +357,7 @@ Check error reporting while pulling/cloning $ $RUNTESTDIR/killdaemons.py - $ hg -R test serve -p $HGPORT -d --pid-file=hg3.pid -E error.log --config extensions.crash=${TESTDIR}/crashgetbundler.py + $ hg serve -R test -p $HGPORT -d --pid-file=hg3.pid -E error.log --config extensions.crash=${TESTDIR}/crashgetbundler.py $ cat hg3.pid >> $DAEMON_PIDS $ hg clone http://localhost:$HGPORT/ abort-clone requesting all changes @@ -368,7 +368,7 @@ disable pull-based clones - $ hg -R test serve -p $HGPORT1 -d --pid-file=hg4.pid -E error.log --config server.disablefullbundle=True + $ hg serve -R test -p $HGPORT1 -d --pid-file=hg4.pid -E error.log --config server.disablefullbundle=True $ cat hg4.pid >> $DAEMON_PIDS $ hg clone http://localhost:$HGPORT1/ disable-pull-clone requesting all changes diff -r 75de5d456b60 -r a6d95a8b7243 tests/test-http-protocol.t --- a/tests/test-http-protocol.t Sun Oct 01 12:10:48 2017 -0400 +++ b/tests/test-http-protocol.t Wed Oct 04 18:39:26 2017 -0700 @@ -10,7 +10,7 @@ $ hg -q commit -A -m initial $ cd .. - $ hg -R server serve -p $HGPORT -d --pid-file hg.pid + $ hg serve -R server -p $HGPORT -d --pid-file hg.pid $ cat hg.pid >> $DAEMON_PIDS compression formats are advertised in compression capability @@ -25,7 +25,7 @@ server.compressionengines can replace engines list wholesale - $ hg --config server.compressionengines=none -R server serve -p $HGPORT -d --pid-file hg.pid + $ hg serve --config server.compressionengines=none -R server -p $HGPORT -d --pid-file hg.pid $ cat hg.pid > $DAEMON_PIDS $ get-with-headers.py $LOCALIP:$HGPORT '?cmd=capabilities' | tr ' ' '\n' | grep '^compression=none$' > /dev/null @@ -33,7 +33,7 @@ Order of engines can also change - $ hg --config server.compressionengines=none,zlib -R server serve -p $HGPORT -d --pid-file hg.pid + $ hg serve --config server.compressionengines=none,zlib -R server -p $HGPORT -d --pid-file hg.pid $ cat hg.pid > $DAEMON_PIDS $ get-with-headers.py $LOCALIP:$HGPORT '?cmd=capabilities' | tr ' ' '\n' | grep '^compression=none,zlib$' > /dev/null @@ -41,7 +41,7 @@ Start a default server again - $ hg -R server serve -p $HGPORT -d --pid-file hg.pid + $ hg serve -R server -p $HGPORT -d --pid-file hg.pid $ cat hg.pid > $DAEMON_PIDS Server should send application/mercurial-0.1 to clients if no Accept is used @@ -113,7 +113,7 @@ Now test protocol preference usage $ killdaemons.py - $ hg --config server.compressionengines=none,zlib -R server serve -p $HGPORT -d --pid-file hg.pid + $ hg serve --config server.compressionengines=none,zlib -R server -p $HGPORT -d --pid-file hg.pid $ cat hg.pid > $DAEMON_PIDS No Accept will send 0.1+zlib, even though "none" is preferred b/c "none" isn't supported on 0.1 diff -r 75de5d456b60 -r a6d95a8b7243 tests/test-http.t --- a/tests/test-http.t Sun Oct 01 12:10:48 2017 -0400 +++ b/tests/test-http.t Wed Oct 04 18:39:26 2017 -0700 @@ -345,7 +345,7 @@ check abort error reporting while pulling/cloning $ $RUNTESTDIR/killdaemons.py - $ hg -R test serve -p $HGPORT -d --pid-file=hg3.pid -E error.log --config extensions.crash=${TESTDIR}/crashgetbundler.py + $ hg serve -R test -p $HGPORT -d --pid-file=hg3.pid -E error.log --config extensions.crash=${TESTDIR}/crashgetbundler.py $ cat hg3.pid >> $DAEMON_PIDS $ hg clone http://localhost:$HGPORT/ abort-clone requesting all changes @@ -356,7 +356,7 @@ disable pull-based clones - $ hg -R test serve -p $HGPORT1 -d --pid-file=hg4.pid -E error.log --config server.disablefullbundle=True + $ hg serve -R test -p $HGPORT1 -d --pid-file=hg4.pid -E error.log --config server.disablefullbundle=True $ cat hg4.pid >> $DAEMON_PIDS $ hg clone http://localhost:$HGPORT1/ disable-pull-clone requesting all changes