# HG changeset patch # User Gregory Szorc # Date 1518976834 28800 # Node ID 477280637646fdc9bc33b7158b223b7034e56841 # Parent fefd57bd957314acd20be2558b8fdeb1b9305e7d tests: consolidate test-push-http.t and test-push-http-bundle1.t These tests were initially copies of each other. Now that we have #testcases support in .t tests, we can consolidate them. The changes to test-push-http.t reflect the differences between that file and test-push-http-bundle1.t. The variances in phases push behavior are the biggest differences. The test will be updated in a subsequent commit to make the differences more clear and to expand test coverage. For now, let's just port the differences verbatim to get the tests consolidated. diff -r fefd57bd9573 -r 477280637646 tests/test-push-http-bundle1.t --- a/tests/test-push-http-bundle1.t Sun Feb 18 08:52:57 2018 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,216 +0,0 @@ -#require killdaemons - -This test checks behavior related to bundle1 that changed or is likely -to change with bundle2. Feel free to factor out any part of the test -which does not need to exist to keep bundle1 working. - - $ cat << EOF >> $HGRCPATH - > [devel] - > # This test is dedicated to interaction through old bundle - > legacy.exchange = bundle1 - > EOF - - $ hg init test - $ cd test - $ echo a > a - $ hg ci -Ama - adding a - $ cd .. - $ hg clone test test2 - updating to branch default - 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - $ cd test2 - $ echo a >> a - $ hg ci -mb - $ req() { - > hg serve -p $HGPORT -d --pid-file=hg.pid -E errors.log - > cat hg.pid >> $DAEMON_PIDS - > hg --cwd ../test2 push http://localhost:$HGPORT/ - > exitstatus=$? - > killdaemons.py - > echo % serve errors - > cat errors.log - > return $exitstatus - > } - $ cd ../test - -expect ssl error - - $ req - pushing to http://localhost:$HGPORT/ - searching for changes - abort: HTTP Error 403: ssl required - % serve errors - [255] - -expect authorization error - - $ echo '[web]' > .hg/hgrc - $ echo 'push_ssl = false' >> .hg/hgrc - $ req - pushing to http://localhost:$HGPORT/ - searching for changes - abort: authorization failed - % serve errors - [255] - -expect authorization error: must have authorized user - - $ echo 'allow_push = unperson' >> .hg/hgrc - $ req - pushing to http://localhost:$HGPORT/ - searching for changes - abort: authorization failed - % serve errors - [255] - -expect success - - $ cat > $TESTTMP/hook.sh <<'EOF' - > echo "phase-move: $HG_NODE: $HG_OLDPHASE -> $HG_PHASE" - > EOF - - $ cat >> .hg/hgrc < allow_push = * - > [hooks] - > changegroup = sh -c "printenv.py changegroup 0" - > pushkey = sh -c "printenv.py pushkey 0" - > txnclose-phase.test = sh $TESTTMP/hook.sh - > EOF - $ req - pushing to http://localhost:$HGPORT/ - searching for changes - remote: adding changesets - remote: adding manifests - remote: adding file changes - remote: added 1 changesets with 1 changes to 1 files - remote: phase-move: cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b: draft -> public - remote: phase-move: ba677d0156c1196c1a699fa53f390dcfc3ce3872: -> public - remote: changegroup hook: HG_HOOKNAME=changegroup HG_HOOKTYPE=changegroup HG_NODE=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_NODE_LAST=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_SOURCE=serve HG_TXNID=TXN:$ID$ HG_URL=remote:http:$LOCALIP: (glob) - % serve errors - $ hg rollback - repository tip rolled back to revision 0 (undo serve) - -expect success, server lacks the httpheader capability - - $ CAP=httpheader - $ . "$TESTDIR/notcapable" - $ req - pushing to http://localhost:$HGPORT/ - searching for changes - remote: adding changesets - remote: adding manifests - remote: adding file changes - remote: added 1 changesets with 1 changes to 1 files - remote: phase-move: cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b: draft -> public - remote: phase-move: ba677d0156c1196c1a699fa53f390dcfc3ce3872: -> public - remote: changegroup hook: HG_HOOKNAME=changegroup HG_HOOKTYPE=changegroup HG_NODE=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_NODE_LAST=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_SOURCE=serve HG_TXNID=TXN:$ID$ HG_URL=remote:http:$LOCALIP: (glob) - % serve errors - $ hg rollback - repository tip rolled back to revision 0 (undo serve) - -expect success, server lacks the unbundlehash capability - - $ CAP=unbundlehash - $ . "$TESTDIR/notcapable" - $ req - pushing to http://localhost:$HGPORT/ - searching for changes - remote: adding changesets - remote: adding manifests - remote: adding file changes - remote: added 1 changesets with 1 changes to 1 files - remote: phase-move: cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b: draft -> public - remote: phase-move: ba677d0156c1196c1a699fa53f390dcfc3ce3872: -> public - remote: changegroup hook: HG_HOOKNAME=changegroup HG_HOOKTYPE=changegroup HG_NODE=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_NODE_LAST=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_SOURCE=serve HG_TXNID=TXN:$ID$ HG_URL=remote:http:$LOCALIP: (glob) - % serve errors - $ hg rollback - repository tip rolled back to revision 0 (undo serve) - -expect success, pre-d1b16a746db6 server supports the unbundle capability, but -has no parameter - - $ cat < notcapable-unbundleparam.py - > from mercurial import extensions, httppeer - > def capable(orig, self, name): - > if name == 'unbundle': - > return True - > return orig(self, name) - > def uisetup(ui): - > extensions.wrapfunction(httppeer.httppeer, 'capable', capable) - > EOF - $ cp $HGRCPATH $HGRCPATH.orig - $ cat <> $HGRCPATH - > [extensions] - > notcapable-unbundleparam = `pwd`/notcapable-unbundleparam.py - > EOF - $ req - pushing to http://localhost:$HGPORT/ - searching for changes - remote: adding changesets - remote: adding manifests - remote: adding file changes - remote: added 1 changesets with 1 changes to 1 files - remote: phase-move: cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b: draft -> public - remote: phase-move: ba677d0156c1196c1a699fa53f390dcfc3ce3872: -> public - remote: changegroup hook: * (glob) - % serve errors - $ hg rollback - repository tip rolled back to revision 0 (undo serve) - $ mv $HGRCPATH.orig $HGRCPATH - -expect push success, phase change failure - - $ cat > .hg/hgrc < [web] - > push_ssl = false - > allow_push = * - > [hooks] - > prepushkey = sh -c "printenv.py prepushkey 1" - > EOF - $ req - pushing to http://localhost:$HGPORT/ - searching for changes - remote: adding changesets - remote: adding manifests - remote: adding file changes - remote: added 1 changesets with 1 changes to 1 files - % serve errors - -expect phase change success - - $ cat >> .hg/hgrc < prepushkey = sh -c "printenv.py prepushkey 0" - > EOF - $ req - pushing to http://localhost:$HGPORT/ - searching for changes - no changes found - % serve errors - [1] - $ hg rollback - repository tip rolled back to revision 0 (undo serve) - -expect authorization error: all users denied - - $ echo '[web]' > .hg/hgrc - $ echo 'push_ssl = false' >> .hg/hgrc - $ echo 'deny_push = *' >> .hg/hgrc - $ req - pushing to http://localhost:$HGPORT/ - searching for changes - abort: authorization failed - % serve errors - [255] - -expect authorization error: some users denied, users must be authenticated - - $ echo 'deny_push = unperson' >> .hg/hgrc - $ req - pushing to http://localhost:$HGPORT/ - searching for changes - abort: authorization failed - % serve errors - [255] - - $ cd .. diff -r fefd57bd9573 -r 477280637646 tests/test-push-http.t --- a/tests/test-push-http.t Sun Feb 18 08:52:57 2018 -0800 +++ b/tests/test-push-http.t Sun Feb 18 10:00:34 2018 -0800 @@ -1,5 +1,15 @@ #require killdaemons +#testcases bundle1 bundle2 + +#if bundle1 + $ cat << EOF >> $HGRCPATH + > [devel] + > # This test is dedicated to interaction through old bundle + > legacy.exchange = bundle1 + > EOF +#endif + $ hg init test $ cd test $ echo a > a @@ -76,7 +86,8 @@ remote: added 1 changesets with 1 changes to 1 files remote: phase-move: cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b: draft -> public remote: phase-move: ba677d0156c1196c1a699fa53f390dcfc3ce3872: -> public - remote: changegroup hook: HG_BUNDLE2=1 HG_HOOKNAME=changegroup HG_HOOKTYPE=changegroup HG_NODE=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_NODE_LAST=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_SOURCE=serve HG_TXNID=TXN:$ID$ HG_URL=remote:http:$LOCALIP: (glob) + remote: changegroup hook: HG_HOOKNAME=changegroup HG_HOOKTYPE=changegroup HG_NODE=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_NODE_LAST=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_SOURCE=serve HG_TXNID=TXN:$ID$ HG_URL=remote:http:$LOCALIP: (glob) (bundle1 !) + remote: changegroup hook: HG_BUNDLE2=1 HG_HOOKNAME=changegroup HG_HOOKTYPE=changegroup HG_NODE=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_NODE_LAST=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_SOURCE=serve HG_TXNID=TXN:$ID$ HG_URL=remote:http:$LOCALIP: (glob) (bundle2 !) % serve errors $ hg rollback repository tip rolled back to revision 0 (undo serve) @@ -94,7 +105,8 @@ remote: added 1 changesets with 1 changes to 1 files remote: phase-move: cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b: draft -> public remote: phase-move: ba677d0156c1196c1a699fa53f390dcfc3ce3872: -> public - remote: changegroup hook: HG_BUNDLE2=1 HG_HOOKNAME=changegroup HG_HOOKTYPE=changegroup HG_NODE=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_NODE_LAST=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_SOURCE=serve HG_TXNID=TXN:$ID$ HG_URL=remote:http:$LOCALIP: (glob) + remote: changegroup hook: HG_HOOKNAME=changegroup HG_HOOKTYPE=changegroup HG_NODE=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_NODE_LAST=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_SOURCE=serve HG_TXNID=TXN:$ID$ HG_URL=remote:http:$LOCALIP: (glob) (bundle1 !) + remote: changegroup hook: HG_BUNDLE2=1 HG_HOOKNAME=changegroup HG_HOOKTYPE=changegroup HG_NODE=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_NODE_LAST=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_SOURCE=serve HG_TXNID=TXN:$ID$ HG_URL=remote:http:$LOCALIP: (glob) (bundle2 !) % serve errors $ hg rollback repository tip rolled back to revision 0 (undo serve) @@ -112,7 +124,8 @@ remote: added 1 changesets with 1 changes to 1 files remote: phase-move: cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b: draft -> public remote: phase-move: ba677d0156c1196c1a699fa53f390dcfc3ce3872: -> public - remote: changegroup hook: HG_BUNDLE2=1 HG_HOOKNAME=changegroup HG_HOOKTYPE=changegroup HG_NODE=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_NODE_LAST=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_SOURCE=serve HG_TXNID=TXN:$ID$ HG_URL=remote:http:$LOCALIP: (glob) + remote: changegroup hook: HG_HOOKNAME=changegroup HG_HOOKTYPE=changegroup HG_NODE=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_NODE_LAST=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_SOURCE=serve HG_TXNID=TXN:$ID$ HG_URL=remote:http:$LOCALIP: (glob) (bundle1 !) + remote: changegroup hook: HG_BUNDLE2=1 HG_HOOKNAME=changegroup HG_HOOKTYPE=changegroup HG_NODE=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_NODE_LAST=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_SOURCE=serve HG_TXNID=TXN:$ID$ HG_URL=remote:http:$LOCALIP: (glob) (bundle2 !) % serve errors $ hg rollback repository tip rolled back to revision 0 (undo serve) @@ -160,6 +173,22 @@ > [devel] > legacy.exchange=phases > EOF + +#if bundle1 + + $ req + pushing to http://localhost:$HGPORT/ + searching for changes + remote: adding changesets + remote: adding manifests + remote: adding file changes + remote: added 1 changesets with 1 changes to 1 files + % serve errors + +#endif + +#if bundle2 + $ req pushing to http://localhost:$HGPORT/ searching for changes @@ -175,13 +204,32 @@ % serve errors [255] +#endif + expect phase change success $ cat >> .hg/hgrc < [hooks] > prepushkey = sh -c "printenv.py prepushkey 0" > [devel] > legacy.exchange= > EOF + +#if bundle1 + + $ req + pushing to http://localhost:$HGPORT/ + searching for changes + no changes found + % serve errors + [1] + $ hg rollback + repository tip rolled back to revision 0 (undo serve) + +#endif + +#if bundle2 + $ req pushing to http://localhost:$HGPORT/ searching for changes @@ -193,6 +241,8 @@ $ hg rollback repository tip rolled back to revision 0 (undo serve) +#endif + expect authorization error: all users denied $ echo '[web]' > .hg/hgrc @@ -215,6 +265,8 @@ % serve errors [255] +#if bundle2 + $ cat > .hg/hgrc < [web] > push_ssl = false @@ -231,4 +283,6 @@ remote: added 1 changesets with 1 changes to 1 files % serve errors +#endif + $ cd ..