test-push-cgi.t
93 lines
| 2.6 KiB
| text/troff
|
Tads3Lexer
/ tests / test-push-cgi.t
Matt Mackall
|
r22046 | #require no-msys # MSYS will translate web paths as if they were file paths | ||
Mads Kiilerich
|
r15567 | |||
Steven Brown
|
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 | ||||
> from mercurial import demandimport; demandimport.enable() | ||||
> from mercurial.hgweb import hgweb | ||||
> from mercurial.hgweb import wsgicgi | ||||
Pulkit Goyal
|
r39657 | > application = hgweb(b'.', b'test repository') | ||
Steven Brown
|
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
|
r26865 | $ hg bundle --type v1 --all bundle.hg | ||
Steven Brown
|
r13397 | 1 changesets found | ||
$ CONTENT_LENGTH=279; export CONTENT_LENGTH; | ||||
Mads Kiilerich
|
r18957 | expect failure because heads doesn't match (formerly known as 'unsynced changes') | ||
Steven Brown
|
r13397 | |||
$ QUERY_STRING="cmd=unbundle&heads=0000000000000000000000000000000000000000"; export QUERY_STRING | ||||
Matt Harbison
|
r39743 | $ "$PYTHON" hgweb.cgi <bundle.hg >page1 2>&1 | ||
Steven Brown
|
r13397 | $ cat page1 | ||
Status: 200 Script output follows\r (esc) | ||||
Content-Type: application/mercurial-0.1\r (esc) | ||||
Mads Kiilerich
|
r18957 | Content-Length: 64\r (esc) | ||
Steven Brown
|
r13397 | \r (esc) | ||
0 | ||||
Mads Kiilerich
|
r18957 | repository changed while preparing changes - please try again | ||
Steven Brown
|
r13397 | |||
successful force push | ||||
$ QUERY_STRING="cmd=unbundle&heads=666f726365"; export QUERY_STRING | ||||
Matt Harbison
|
r39743 | $ "$PYTHON" hgweb.cgi <bundle.hg >page2 2>&1 | ||
Steven Brown
|
r13397 | $ cat page2 | ||
Status: 200 Script output follows\r (esc) | ||||
Content-Type: application/mercurial-0.1\r (esc) | ||||
Mads Kiilerich
|
r18346 | Content-Length: 102\r (esc) | ||
Steven Brown
|
r13397 | \r (esc) | ||
1 | ||||
adding changesets | ||||
adding manifests | ||||
adding file changes | ||||
added 0 changesets with 0 changes to 1 files | ||||
Steven Brown
|
r13946 | successful push, list of heads | ||
Steven Brown
|
r13397 | |||
$ QUERY_STRING="cmd=unbundle&heads=f7b1eb17ad24730a1651fccd46c43826d1bbc2ac"; export QUERY_STRING | ||||
Matt Harbison
|
r39743 | $ "$PYTHON" hgweb.cgi <bundle.hg >page3 2>&1 | ||
Steven Brown
|
r13397 | $ cat page3 | ||
Status: 200 Script output follows\r (esc) | ||||
Content-Type: application/mercurial-0.1\r (esc) | ||||
Mads Kiilerich
|
r18346 | Content-Length: 102\r (esc) | ||
Steven Brown
|
r13397 | \r (esc) | ||
1 | ||||
adding changesets | ||||
adding manifests | ||||
adding file changes | ||||
added 0 changesets with 0 changes to 1 files | ||||
Steven Brown
|
r13946 | |||
successful push, SHA1 hash of heads (unbundlehash capability) | ||||
$ QUERY_STRING="cmd=unbundle&heads=686173686564 5a785a5f9e0d433b88ed862b206b011b0c3a9d13"; export QUERY_STRING | ||||
Matt Harbison
|
r39743 | $ "$PYTHON" hgweb.cgi <bundle.hg >page4 2>&1 | ||
Steven Brown
|
r13946 | $ cat page4 | ||
Status: 200 Script output follows\r (esc) | ||||
Content-Type: application/mercurial-0.1\r (esc) | ||||
Mads Kiilerich
|
r18346 | Content-Length: 102\r (esc) | ||
Steven Brown
|
r13946 | \r (esc) | ||
1 | ||||
adding changesets | ||||
adding manifests | ||||
adding file changes | ||||
added 0 changesets with 0 changes to 1 files | ||||
Mads Kiilerich
|
r16913 | |||
$ cd .. | ||||