tests/test-push-cgi.t
author Pierre-Yves David <pierre-yves.david@logilab.fr>
Fri, 27 Jul 2012 18:32:56 +0200
branchstable
changeset 17295 1f08ecc7febb
parent 16913 f2719b387380
child 18346 6c2563b2c1c6
permissions -rw-r--r--
pushkey: splits obsolete marker exchange into multiple keys Obsolete markers are now exchanged in smaller pieces that fit in a http header. This changes is done to avoid 400 bad request error when exchanging obsolete puskey over http. The last key pushed is always hold by the "dump0" key to ensure an easy place to hook for people who need it.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
15567
8b84d040d9f9 tests: introduce 'hghave msys' to skip tests that would fail because of msys
Mads Kiilerich <mads@kiilerich.com>
parents: 13946
diff changeset
     1
  $ "$TESTDIR/hghave" no-msys || exit 80 # MSYS will translate web paths as if they were file paths
8b84d040d9f9 tests: introduce 'hghave msys' to skip tests that would fail because of msys
Mads Kiilerich <mads@kiilerich.com>
parents: 13946
diff changeset
     2
13397
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
     3
This is a test of the push wire protocol over CGI-based hgweb.
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
     4
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
     5
initialize repository
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
     6
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
     7
  $ hg init r
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
     8
  $ cd r
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
     9
  $ echo a > a
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    10
  $ hg ci -A -m "0"
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    11
  adding a
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    12
  $ echo '[web]' > .hg/hgrc
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    13
  $ echo 'allow_push = *' >> .hg/hgrc
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    14
  $ echo 'push_ssl = false' >> .hg/hgrc
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    15
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    16
create hgweb invocation script
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    17
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    18
  $ cat >hgweb.cgi <<HGWEB
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    19
  > import cgitb
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    20
  > cgitb.enable()
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    21
  > from mercurial import demandimport; demandimport.enable()
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    22
  > from mercurial.hgweb import hgweb
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    23
  > from mercurial.hgweb import wsgicgi
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    24
  > application = hgweb('.', 'test repository')
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    25
  > wsgicgi.launch(application)
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    26
  > HGWEB
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    27
  $ chmod 755 hgweb.cgi
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    28
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    29
test preparation
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    30
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    31
  $ . "$TESTDIR/cgienv"
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    32
  $ REQUEST_METHOD="POST"; export REQUEST_METHOD
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    33
  $ CONTENT_TYPE="application/octet-stream"; export CONTENT_TYPE
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    34
  $ hg bundle --all bundle.hg
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    35
  1 changesets found
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    36
  $ CONTENT_LENGTH=279; export CONTENT_LENGTH;
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    37
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    38
expect unsynced changes
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    39
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    40
  $ QUERY_STRING="cmd=unbundle&heads=0000000000000000000000000000000000000000"; export QUERY_STRING
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    41
  $ python hgweb.cgi <bundle.hg >page1 2>&1
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    42
  $ cat page1
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    43
  Status: 200 Script output follows\r (esc)
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    44
  Content-Type: application/mercurial-0.1\r (esc)
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    45
  Content-Length: 19\r (esc)
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    46
  \r (esc)
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    47
  0
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    48
  unsynced changes
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    49
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    50
successful force push
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    51
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    52
  $ QUERY_STRING="cmd=unbundle&heads=666f726365"; export QUERY_STRING
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    53
  $ python hgweb.cgi <bundle.hg >page2 2>&1
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    54
  $ cat page2
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    55
  Status: 200 Script output follows\r (esc)
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    56
  Content-Type: application/mercurial-0.1\r (esc)
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    57
  \r (esc)
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    58
  1
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    59
  adding changesets
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    60
  adding manifests
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    61
  adding file changes
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    62
  added 0 changesets with 0 changes to 1 files
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    63
13946
3c2f9f611ef6 tests: new test cases for the unbundlehash capability
Steven Brown <StevenGBrown@gmail.com>
parents: 13397
diff changeset
    64
successful push, list of heads
13397
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    65
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    66
  $ QUERY_STRING="cmd=unbundle&heads=f7b1eb17ad24730a1651fccd46c43826d1bbc2ac"; export QUERY_STRING
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    67
  $ python hgweb.cgi <bundle.hg >page3 2>&1
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    68
  $ cat page3
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    69
  Status: 200 Script output follows\r (esc)
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    70
  Content-Type: application/mercurial-0.1\r (esc)
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    71
  \r (esc)
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    72
  1
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    73
  adding changesets
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    74
  adding manifests
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    75
  adding file changes
6f9616a46f7c tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff changeset
    76
  added 0 changesets with 0 changes to 1 files
13946
3c2f9f611ef6 tests: new test cases for the unbundlehash capability
Steven Brown <StevenGBrown@gmail.com>
parents: 13397
diff changeset
    77
3c2f9f611ef6 tests: new test cases for the unbundlehash capability
Steven Brown <StevenGBrown@gmail.com>
parents: 13397
diff changeset
    78
successful push, SHA1 hash of heads (unbundlehash capability)
3c2f9f611ef6 tests: new test cases for the unbundlehash capability
Steven Brown <StevenGBrown@gmail.com>
parents: 13397
diff changeset
    79
3c2f9f611ef6 tests: new test cases for the unbundlehash capability
Steven Brown <StevenGBrown@gmail.com>
parents: 13397
diff changeset
    80
  $ QUERY_STRING="cmd=unbundle&heads=686173686564 5a785a5f9e0d433b88ed862b206b011b0c3a9d13"; export QUERY_STRING
3c2f9f611ef6 tests: new test cases for the unbundlehash capability
Steven Brown <StevenGBrown@gmail.com>
parents: 13397
diff changeset
    81
  $ python hgweb.cgi <bundle.hg >page4 2>&1
3c2f9f611ef6 tests: new test cases for the unbundlehash capability
Steven Brown <StevenGBrown@gmail.com>
parents: 13397
diff changeset
    82
  $ cat page4
3c2f9f611ef6 tests: new test cases for the unbundlehash capability
Steven Brown <StevenGBrown@gmail.com>
parents: 13397
diff changeset
    83
  Status: 200 Script output follows\r (esc)
3c2f9f611ef6 tests: new test cases for the unbundlehash capability
Steven Brown <StevenGBrown@gmail.com>
parents: 13397
diff changeset
    84
  Content-Type: application/mercurial-0.1\r (esc)
3c2f9f611ef6 tests: new test cases for the unbundlehash capability
Steven Brown <StevenGBrown@gmail.com>
parents: 13397
diff changeset
    85
  \r (esc)
3c2f9f611ef6 tests: new test cases for the unbundlehash capability
Steven Brown <StevenGBrown@gmail.com>
parents: 13397
diff changeset
    86
  1
3c2f9f611ef6 tests: new test cases for the unbundlehash capability
Steven Brown <StevenGBrown@gmail.com>
parents: 13397
diff changeset
    87
  adding changesets
3c2f9f611ef6 tests: new test cases for the unbundlehash capability
Steven Brown <StevenGBrown@gmail.com>
parents: 13397
diff changeset
    88
  adding manifests
3c2f9f611ef6 tests: new test cases for the unbundlehash capability
Steven Brown <StevenGBrown@gmail.com>
parents: 13397
diff changeset
    89
  adding file changes
3c2f9f611ef6 tests: new test cases for the unbundlehash capability
Steven Brown <StevenGBrown@gmail.com>
parents: 13397
diff changeset
    90
  added 0 changesets with 0 changes to 1 files
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 15567
diff changeset
    91
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 15567
diff changeset
    92
  $ cd ..