##// END OF EJS Templates
errors: stop passing non-strings to Abort's constructor...
errors: stop passing non-strings to Abort's constructor The next patch will change `Abort`'s constructor and `__bytes__` functions and they will start assuming that the first argument is the messages as `bytes`. Differential Revision: https://phab.mercurial-scm.org/D9178

File last commit:

r39743:5abc47d4 default
r46273:a736ab68 default
Show More
test-push-cgi.t
95 lines | 2.7 KiB | text/troff | Tads3Lexer
Matt Mackall
tests: replace exit 80 with #require
r22046 #require no-msys # MSYS will translate web paths as if they were file paths
Mads Kiilerich
tests: introduce 'hghave msys' to skip tests that would fail because of msys
r15567
Steven Brown
tests: push wire protocol over CGI-based hgweb
r13397 This is a test of the push wire protocol over CGI-based hgweb.
initialize repository
$ hg init r
$ cd r
$ echo a > a
$ hg ci -A -m "0"
adding a
$ echo '[web]' > .hg/hgrc
$ echo 'allow_push = *' >> .hg/hgrc
$ echo 'push_ssl = false' >> .hg/hgrc
create hgweb invocation script
$ cat >hgweb.cgi <<HGWEB
> import cgitb
> cgitb.enable()
> from mercurial import demandimport; demandimport.enable()
> from mercurial.hgweb import hgweb
> from mercurial.hgweb import wsgicgi
Pulkit Goyal
py3: call hgweb.hgweb() with bytes values...
r39657 > application = hgweb(b'.', b'test repository')
Steven Brown
tests: push wire protocol over CGI-based hgweb
r13397 > wsgicgi.launch(application)
> HGWEB
$ chmod 755 hgweb.cgi
test preparation
$ . "$TESTDIR/cgienv"
$ REQUEST_METHOD="POST"; export REQUEST_METHOD
$ CONTENT_TYPE="application/octet-stream"; export CONTENT_TYPE
Pierre-Yves David
test: enforce bundle1 in 'test-push-cgi.t'...
r26865 $ hg bundle --type v1 --all bundle.hg
Steven Brown
tests: push wire protocol over CGI-based hgweb
r13397 1 changesets found
$ CONTENT_LENGTH=279; export CONTENT_LENGTH;
Mads Kiilerich
wireproto: clarify cryptic 'remote: unsynced changes' error message on push...
r18957 expect failure because heads doesn't match (formerly known as 'unsynced changes')
Steven Brown
tests: push wire protocol over CGI-based hgweb
r13397
$ QUERY_STRING="cmd=unbundle&heads=0000000000000000000000000000000000000000"; export QUERY_STRING
Matt Harbison
tests: quote PYTHON usage...
r39743 $ "$PYTHON" hgweb.cgi <bundle.hg >page1 2>&1
Steven Brown
tests: push wire protocol over CGI-based hgweb
r13397 $ cat page1
Status: 200 Script output follows\r (esc)
Content-Type: application/mercurial-0.1\r (esc)
Mads Kiilerich
wireproto: clarify cryptic 'remote: unsynced changes' error message on push...
r18957 Content-Length: 64\r (esc)
Steven Brown
tests: push wire protocol over CGI-based hgweb
r13397 \r (esc)
0
Mads Kiilerich
wireproto: clarify cryptic 'remote: unsynced changes' error message on push...
r18957 repository changed while preparing changes - please try again
Steven Brown
tests: push wire protocol over CGI-based hgweb
r13397
successful force push
$ QUERY_STRING="cmd=unbundle&heads=666f726365"; export QUERY_STRING
Matt Harbison
tests: quote PYTHON usage...
r39743 $ "$PYTHON" hgweb.cgi <bundle.hg >page2 2>&1
Steven Brown
tests: push wire protocol over CGI-based hgweb
r13397 $ cat page2
Status: 200 Script output follows\r (esc)
Content-Type: application/mercurial-0.1\r (esc)
Mads Kiilerich
hgweb: use Content-Length for pushres...
r18346 Content-Length: 102\r (esc)
Steven Brown
tests: push wire protocol over CGI-based hgweb
r13397 \r (esc)
1
adding changesets
adding manifests
adding file changes
added 0 changesets with 0 changes to 1 files
Steven Brown
tests: new test cases for the unbundlehash capability
r13946 successful push, list of heads
Steven Brown
tests: push wire protocol over CGI-based hgweb
r13397
$ QUERY_STRING="cmd=unbundle&heads=f7b1eb17ad24730a1651fccd46c43826d1bbc2ac"; export QUERY_STRING
Matt Harbison
tests: quote PYTHON usage...
r39743 $ "$PYTHON" hgweb.cgi <bundle.hg >page3 2>&1
Steven Brown
tests: push wire protocol over CGI-based hgweb
r13397 $ cat page3
Status: 200 Script output follows\r (esc)
Content-Type: application/mercurial-0.1\r (esc)
Mads Kiilerich
hgweb: use Content-Length for pushres...
r18346 Content-Length: 102\r (esc)
Steven Brown
tests: push wire protocol over CGI-based hgweb
r13397 \r (esc)
1
adding changesets
adding manifests
adding file changes
added 0 changesets with 0 changes to 1 files
Steven Brown
tests: new test cases for the unbundlehash capability
r13946
successful push, SHA1 hash of heads (unbundlehash capability)
$ QUERY_STRING="cmd=unbundle&heads=686173686564 5a785a5f9e0d433b88ed862b206b011b0c3a9d13"; export QUERY_STRING
Matt Harbison
tests: quote PYTHON usage...
r39743 $ "$PYTHON" hgweb.cgi <bundle.hg >page4 2>&1
Steven Brown
tests: new test cases for the unbundlehash capability
r13946 $ cat page4
Status: 200 Script output follows\r (esc)
Content-Type: application/mercurial-0.1\r (esc)
Mads Kiilerich
hgweb: use Content-Length for pushres...
r18346 Content-Length: 102\r (esc)
Steven Brown
tests: new test cases for the unbundlehash capability
r13946 \r (esc)
1
adding changesets
adding manifests
adding file changes
added 0 changesets with 0 changes to 1 files
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913
$ cd ..