test-push-http.t
171 lines
| 5.3 KiB
| text/troff
|
Tads3Lexer
/ tests / test-push-http.t
Matt Mackall
|
r22046 | #require killdaemons | ||
Matt Mackall
|
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
|
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
|
r17455 | > exitstatus=$? | ||
Matt Mackall
|
r25474 | > killdaemons.py | ||
Adrian Buehlmann
|
r12743 | > echo % serve errors | ||
> cat errors.log | ||||
Yuya Nishihara
|
r17455 | > return $exitstatus | ||
Matt Mackall
|
r12483 | > } | ||
$ cd ../test | ||||
expect ssl error | ||||
$ req | ||||
Mads Kiilerich
|
r12643 | pushing to http://localhost:$HGPORT/ | ||
Matt Mackall
|
r12483 | searching for changes | ||
Yuya Nishihara
|
r17456 | abort: HTTP Error 403: ssl required | ||
Matt Mackall
|
r12483 | % serve errors | ||
Yuya Nishihara
|
r17456 | [255] | ||
Matt Mackall
|
r12483 | |||
expect authorization error | ||||
$ echo '[web]' > .hg/hgrc | ||||
$ echo 'push_ssl = false' >> .hg/hgrc | ||||
$ req | ||||
Mads Kiilerich
|
r12643 | pushing to http://localhost:$HGPORT/ | ||
Matt Mackall
|
r12483 | searching for changes | ||
abort: authorization failed | ||||
% serve errors | ||||
Yuya Nishihara
|
r17455 | [255] | ||
Matt Mackall
|
r12483 | |||
expect authorization error: must have authorized user | ||||
$ echo 'allow_push = unperson' >> .hg/hgrc | ||||
$ req | ||||
Mads Kiilerich
|
r12643 | pushing to http://localhost:$HGPORT/ | ||
Matt Mackall
|
r12483 | searching for changes | ||
abort: authorization failed | ||||
% serve errors | ||||
Yuya Nishihara
|
r17455 | [255] | ||
Matt Mackall
|
r12483 | |||
expect success | ||||
$ echo 'allow_push = *' >> .hg/hgrc | ||||
$ echo '[hooks]' >> .hg/hgrc | ||||
Matt Mackall
|
r25478 | $ echo "changegroup = printenv.py changegroup 0" >> .hg/hgrc | ||
$ echo "pushkey = printenv.py pushkey 0" >> .hg/hgrc | ||||
Matt Mackall
|
r12483 | $ req | ||
Mads Kiilerich
|
r12643 | pushing to http://localhost:$HGPORT/ | ||
Matt Mackall
|
r12483 | searching for changes | ||
remote: adding changesets | ||||
remote: adding manifests | ||||
remote: adding file changes | ||||
remote: added 1 changesets with 1 changes to 1 files | ||||
Pierre-Yves David
|
r25390 | remote: pushkey hook: HG_KEY=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_NAMESPACE=phases HG_NEW=0 HG_OLD=1 HG_RET=1 | ||
remote: changegroup hook: HG_BUNDLE2=1 HG_NODE=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_SOURCE=serve HG_TXNID=TXN:* HG_URL=remote:http:127.0.0.1: (glob) | ||||
Matt Mackall
|
r12483 | % serve errors | ||
$ hg rollback | ||||
Gilles Moris
|
r13446 | repository tip rolled back to revision 0 (undo serve) | ||
Matt Mackall
|
r12483 | |||
Steven Brown
|
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 | ||||
Pierre-Yves David
|
r25390 | remote: pushkey hook: HG_KEY=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_NAMESPACE=phases HG_NEW=0 HG_OLD=1 HG_RET=1 | ||
remote: changegroup hook: HG_BUNDLE2=1 HG_NODE=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_SOURCE=serve HG_TXNID=TXN:* HG_URL=remote:http:127.0.0.1: (glob) | ||||
Steven Brown
|
r14093 | % serve errors | ||
$ hg rollback | ||||
repository tip rolled back to revision 0 (undo serve) | ||||
Steven Brown
|
r13946 | expect success, server lacks the unbundlehash capability | ||
Steven Brown
|
r14011 | $ CAP=unbundlehash | ||
$ . "$TESTDIR/notcapable" | ||||
Steven Brown
|
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 | ||||
Pierre-Yves David
|
r25390 | remote: pushkey hook: HG_KEY=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_NAMESPACE=phases HG_NEW=0 HG_OLD=1 HG_RET=1 | ||
remote: changegroup hook: HG_BUNDLE2=1 HG_NODE=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_SOURCE=serve HG_TXNID=TXN:* HG_URL=remote:http:127.0.0.1: (glob) | ||||
Steven Brown
|
r13946 | % serve errors | ||
$ hg rollback | ||||
repository tip rolled back to revision 0 (undo serve) | ||||
Wagner Bruna
|
r17793 | expect push success, phase change failure | ||
Adrian Buehlmann
|
r17842 | $ cat > .hg/hgrc <<EOF | ||
> [web] | ||||
> push_ssl = false | ||||
> allow_push = * | ||||
> [hooks] | ||||
Matt Mackall
|
r25478 | > prepushkey = printenv.py prepushkey 1 | ||
Adrian Buehlmann
|
r17842 | > EOF | ||
Wagner Bruna
|
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 | ||||
Pierre-Yves David
|
r25390 | remote: prepushkey hook: HG_BUNDLE2=1 HG_KEY=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_NAMESPACE=phases HG_NEW=0 HG_NODE=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_OLD=1 HG_PENDING=$TESTTMP/test HG_PHASES_MOVED=1 HG_SOURCE=serve HG_TXNID=TXN:* HG_URL=remote:http:127.0.0.1: (glob) | ||
remote: pushkey-abort: prepushkey hook exited with status 1 | ||||
Pierre-Yves David
|
r25502 | remote: transaction abort! | ||
remote: rollback completed | ||||
abort: updating ba677d0156c1 to public failed | ||||
Wagner Bruna
|
r17793 | % serve errors | ||
Pierre-Yves David
|
r25502 | [255] | ||
Wagner Bruna
|
r17793 | |||
expect phase change success | ||||
Matt Mackall
|
r25478 | $ echo "prepushkey = printenv.py prepushkey 0" >> .hg/hgrc | ||
Wagner Bruna
|
r17793 | $ req | ||
pushing to http://localhost:$HGPORT/ | ||||
searching for changes | ||||
Pierre-Yves David
|
r25502 | remote: adding changesets | ||
remote: adding manifests | ||||
remote: adding file changes | ||||
remote: added 1 changesets with 1 changes to 1 files | ||||
remote: prepushkey hook: HG_BUNDLE2=1 HG_KEY=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_NAMESPACE=phases HG_NEW=0 HG_NODE=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_OLD=1 HG_PENDING=$TESTTMP/test HG_PHASES_MOVED=1 HG_SOURCE=serve HG_TXNID=TXN:* HG_URL=remote:http:127.0.0.1: (glob) | ||||
Wagner Bruna
|
r17793 | % serve errors | ||
$ hg rollback | ||||
repository tip rolled back to revision 0 (undo serve) | ||||
Matt Mackall
|
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
|
r12643 | pushing to http://localhost:$HGPORT/ | ||
Matt Mackall
|
r12483 | searching for changes | ||
abort: authorization failed | ||||
% serve errors | ||||
Yuya Nishihara
|
r17455 | [255] | ||
Matt Mackall
|
r12483 | |||
expect authorization error: some users denied, users must be authenticated | ||||
$ echo 'deny_push = unperson' >> .hg/hgrc | ||||
$ req | ||||
Mads Kiilerich
|
r12643 | pushing to http://localhost:$HGPORT/ | ||
Matt Mackall
|
r12483 | searching for changes | ||
abort: authorization failed | ||||
% serve errors | ||||
Yuya Nishihara
|
r17455 | [255] | ||
Mads Kiilerich
|
r16913 | |||
$ cd .. | ||||