##// END OF EJS Templates
tests: consolidate test-push-http.t and test-push-http-bundle1.t...
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.

File last commit:

r36319:47728063 stable
r36319:47728063 stable
Show More
test-push-http.t
288 lines | 8.7 KiB | text/troff | Tads3Lexer
Matt Mackall
tests: replace exit 80 with #require
r22046 #require killdaemons
Matt Mackall
tests: unify test-push-http
r12483
Gregory Szorc
tests: consolidate test-push-http.t and test-push-http-bundle1.t...
r36319 #testcases bundle1 bundle2
#if bundle1
$ cat << EOF >> $HGRCPATH
> [devel]
> # This test is dedicated to interaction through old bundle
> legacy.exchange = bundle1
> EOF
#endif
Matt Mackall
tests: unify test-push-http
r12483 $ 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() {
Adrian Buehlmann
check-code: add 'no tab indent' check for unified tests...
r12743 > hg serve -p $HGPORT -d --pid-file=hg.pid -E errors.log
> cat hg.pid >> $DAEMON_PIDS
> hg --cwd ../test2 push http://localhost:$HGPORT/
Yuya Nishihara
test-push-http: include exit status of hg push
r17455 > exitstatus=$?
Matt Mackall
tests: drop DAEMON_PIDS from killdaemons calls
r25474 > killdaemons.py
Adrian Buehlmann
check-code: add 'no tab indent' check for unified tests...
r12743 > echo % serve errors
> cat errors.log
Yuya Nishihara
test-push-http: include exit status of hg push
r17455 > return $exitstatus
Matt Mackall
tests: unify test-push-http
r12483 > }
$ cd ../test
expect ssl error
$ req
Mads Kiilerich
tests: reintroduce ":$HGPORT" in test output...
r12643 pushing to http://localhost:$HGPORT/
Matt Mackall
tests: unify test-push-http
r12483 searching for changes
Yuya Nishihara
hgweb: respond 403 forbidden for ssl required error...
r17456 abort: HTTP Error 403: ssl required
Matt Mackall
tests: unify test-push-http
r12483 % serve errors
Yuya Nishihara
hgweb: respond 403 forbidden for ssl required error...
r17456 [255]
Matt Mackall
tests: unify test-push-http
r12483
expect authorization error
$ echo '[web]' > .hg/hgrc
$ echo 'push_ssl = false' >> .hg/hgrc
$ req
Mads Kiilerich
tests: reintroduce ":$HGPORT" in test output...
r12643 pushing to http://localhost:$HGPORT/
Matt Mackall
tests: unify test-push-http
r12483 searching for changes
abort: authorization failed
% serve errors
Yuya Nishihara
test-push-http: include exit status of hg push
r17455 [255]
Matt Mackall
tests: unify test-push-http
r12483
expect authorization error: must have authorized user
$ echo 'allow_push = unperson' >> .hg/hgrc
$ req
Mads Kiilerich
tests: reintroduce ":$HGPORT" in test output...
r12643 pushing to http://localhost:$HGPORT/
Matt Mackall
tests: unify test-push-http
r12483 searching for changes
abort: authorization failed
% serve errors
Yuya Nishihara
test-push-http: include exit status of hg push
r17455 [255]
Matt Mackall
tests: unify test-push-http
r12483
expect success
Matt Harbison
tests: adjust hooks for Windows...
r34939 $ cat > $TESTTMP/hook.sh <<'EOF'
> echo "phase-move: $HG_NODE: $HG_OLDPHASE -> $HG_PHASE"
> EOF
FUJIWARA Katsunori
tests: invoke printenv.py via sh -c for test portability...
r30234 $ cat >> .hg/hgrc <<EOF
> allow_push = *
> [hooks]
> changegroup = sh -c "printenv.py changegroup 0"
> pushkey = sh -c "printenv.py pushkey 0"
Matt Harbison
tests: adjust hooks for Windows...
r34939 > txnclose-phase.test = sh $TESTTMP/hook.sh
FUJIWARA Katsunori
tests: invoke printenv.py via sh -c for test portability...
r30234 > EOF
Matt Mackall
tests: unify test-push-http
r12483 $ req
Mads Kiilerich
tests: reintroduce ":$HGPORT" in test output...
r12643 pushing to http://localhost:$HGPORT/
Matt Mackall
tests: unify test-push-http
r12483 searching for changes
remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 1 changesets with 1 changes to 1 files
Kevin Bullock
phases: pass phase names to hooks instead of internal values
r34877 remote: phase-move: cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b: draft -> public
remote: phase-move: ba677d0156c1196c1a699fa53f390dcfc3ce3872: -> public
Gregory Szorc
tests: consolidate test-push-http.t and test-push-http-bundle1.t...
r36319 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 !)
Matt Mackall
tests: unify test-push-http
r12483 % serve errors
$ hg rollback
Gilles Moris
rollback: clarifies the message about the reverted state (issue2628)...
r13446 repository tip rolled back to revision 0 (undo serve)
Matt Mackall
tests: unify test-push-http
r12483
Steven Brown
httprepo: long arguments support (issue2126)...
r14093 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
Kevin Bullock
phases: pass phase names to hooks instead of internal values
r34877 remote: phase-move: cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b: draft -> public
remote: phase-move: ba677d0156c1196c1a699fa53f390dcfc3ce3872: -> public
Gregory Szorc
tests: consolidate test-push-http.t and test-push-http-bundle1.t...
r36319 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 !)
Steven Brown
httprepo: long arguments support (issue2126)...
r14093 % serve errors
$ hg rollback
repository tip rolled back to revision 0 (undo serve)
Steven Brown
tests: new test cases for the unbundlehash capability
r13946 expect success, server lacks the unbundlehash capability
Steven Brown
tests: add script to disable a selected wire protocol capability...
r14011 $ CAP=unbundlehash
$ . "$TESTDIR/notcapable"
Steven Brown
tests: new test cases for the unbundlehash capability
r13946 $ 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
Kevin Bullock
phases: pass phase names to hooks instead of internal values
r34877 remote: phase-move: cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b: draft -> public
remote: phase-move: ba677d0156c1196c1a699fa53f390dcfc3ce3872: -> public
Gregory Szorc
tests: consolidate test-push-http.t and test-push-http-bundle1.t...
r36319 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 !)
Steven Brown
tests: new test cases for the unbundlehash capability
r13946 % serve errors
$ hg rollback
repository tip rolled back to revision 0 (undo serve)
Gregory Szorc
tests: port value-less unbundle capability test to test-push-http.t...
r36318 expect success, pre-d1b16a746db6 server supports the unbundle capability, but
has no parameter
$ cat <<EOF > 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 <<EOF >> $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
Wagner Bruna
wireproto: fix pushkey hook failure and output on remote http repo...
r17793 expect push success, phase change failure
Adrian Buehlmann
test-push-http: fix failing test on Windows...
r17842 $ cat > .hg/hgrc <<EOF
> [web]
> push_ssl = false
> allow_push = *
> [hooks]
FUJIWARA Katsunori
tests: invoke printenv.py via sh -c for test portability...
r30234 > prepushkey = sh -c "printenv.py prepushkey 1"
Boris Feld
phase: use a binary phase part to push through bundle2 (BC)...
r34837 > [devel]
> legacy.exchange=phases
Adrian Buehlmann
test-push-http: fix failing test on Windows...
r17842 > EOF
Gregory Szorc
tests: consolidate test-push-http.t and test-push-http-bundle1.t...
r36319
#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
Wagner Bruna
wireproto: fix pushkey hook failure and output on remote http repo...
r17793 $ 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
Augie Fackler
tests: fix missing (glob) annotations in test-push-http.t
r31815 remote: prepushkey hook: HG_BUNDLE2=1 HG_HOOKNAME=prepushkey HG_HOOKTYPE=prepushkey HG_KEY=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_NAMESPACE=phases HG_NEW=0 HG_NODE=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_NODE_LAST=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_OLD=1 HG_PENDING=$TESTTMP/test HG_PHASES_MOVED=1 HG_SOURCE=serve HG_TXNID=TXN:$ID$ HG_URL=remote:http:$LOCALIP: (glob)
Pierre-Yves David
test: use bundle2 in test-push-http...
r25390 remote: pushkey-abort: prepushkey hook exited with status 1
Pierre-Yves David
phases: abort the whole push if phases fail to update (BC)...
r25502 remote: transaction abort!
remote: rollback completed
abort: updating ba677d0156c1 to public failed
Wagner Bruna
wireproto: fix pushkey hook failure and output on remote http repo...
r17793 % serve errors
Pierre-Yves David
phases: abort the whole push if phases fail to update (BC)...
r25502 [255]
Wagner Bruna
wireproto: fix pushkey hook failure and output on remote http repo...
r17793
Gregory Szorc
tests: consolidate test-push-http.t and test-push-http-bundle1.t...
r36319 #endif
Wagner Bruna
wireproto: fix pushkey hook failure and output on remote http repo...
r17793 expect phase change success
FUJIWARA Katsunori
tests: invoke printenv.py via sh -c for test portability...
r30234 $ cat >> .hg/hgrc <<EOF
Gregory Szorc
tests: consolidate test-push-http.t and test-push-http-bundle1.t...
r36319 > [hooks]
FUJIWARA Katsunori
tests: invoke printenv.py via sh -c for test portability...
r30234 > prepushkey = sh -c "printenv.py prepushkey 0"
Boris Feld
phase: use a binary phase part to push through bundle2 (BC)...
r34837 > [devel]
> legacy.exchange=
FUJIWARA Katsunori
tests: invoke printenv.py via sh -c for test portability...
r30234 > EOF
Gregory Szorc
tests: consolidate test-push-http.t and test-push-http-bundle1.t...
r36319
#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
Wagner Bruna
wireproto: fix pushkey hook failure and output on remote http repo...
r17793 $ req
pushing to http://localhost:$HGPORT/
searching for changes
Pierre-Yves David
phases: abort the whole push if phases fail to update (BC)...
r25502 remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 1 changesets with 1 changes to 1 files
Wagner Bruna
wireproto: fix pushkey hook failure and output on remote http repo...
r17793 % serve errors
$ hg rollback
repository tip rolled back to revision 0 (undo serve)
Gregory Szorc
tests: consolidate test-push-http.t and test-push-http-bundle1.t...
r36319 #endif
Matt Mackall
tests: unify test-push-http
r12483 expect authorization error: all users denied
$ echo '[web]' > .hg/hgrc
$ echo 'push_ssl = false' >> .hg/hgrc
$ echo 'deny_push = *' >> .hg/hgrc
$ req
Mads Kiilerich
tests: reintroduce ":$HGPORT" in test output...
r12643 pushing to http://localhost:$HGPORT/
Matt Mackall
tests: unify test-push-http
r12483 searching for changes
abort: authorization failed
% serve errors
Yuya Nishihara
test-push-http: include exit status of hg push
r17455 [255]
Matt Mackall
tests: unify test-push-http
r12483
expect authorization error: some users denied, users must be authenticated
$ echo 'deny_push = unperson' >> .hg/hgrc
$ req
Mads Kiilerich
tests: reintroduce ":$HGPORT" in test output...
r12643 pushing to http://localhost:$HGPORT/
Matt Mackall
tests: unify test-push-http
r12483 searching for changes
abort: authorization failed
% serve errors
Yuya Nishihara
test-push-http: include exit status of hg push
r17455 [255]
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913
Gregory Szorc
tests: consolidate test-push-http.t and test-push-http-bundle1.t...
r36319 #if bundle2
Augie Fackler
http: add a test of actually pushing with httppostargs...
r33664 $ cat > .hg/hgrc <<EOF
> [web]
> push_ssl = false
> allow_push = *
> [experimental]
> httppostargs=true
> 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
Gregory Szorc
tests: consolidate test-push-http.t and test-push-http-bundle1.t...
r36319 #endif
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913 $ cd ..