tests/test-clone-cgi.t
author Yuya Nishihara <yuya@tcha.org>
Wed, 26 Oct 2016 22:50:06 +0900
branchstable
changeset 30230 46a0203dfb89
parent 22046 7a9cbb315d84
child 32940 75be14993fda
permissions -rw-r--r--
tests: run "cwd was removed" test only if cwd can actually be removed On some platforms, cwd can't be removed. In which case, util.unlinkpath() continues with no error since the failure of directory removal isn't critical. So it doesn't make sense to run the test added by 90a6c18a7c1d on those platforms. OTOH, we need to run the test in test-rebase-scenario-global.t since the repository is referenced after that.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
22046
7a9cbb315d84 tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents: 18552
diff changeset
     1
#require no-msys # MSYS will translate web paths as if they were file paths
15567
8b84d040d9f9 tests: introduce 'hghave msys' to skip tests that would fail because of msys
Mads Kiilerich <mads@kiilerich.com>
parents: 13269
diff changeset
     2
12410
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
     3
This is a test of the wire protocol over CGI-based hgweb.
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
     4
initialize repository
6922
1ec2d227a521 hgweb: fix WSGI iterators handling in CGI adapter (issue1254)
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
     5
12410
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
     6
  $ hg init test
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
     7
  $ cd test
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
     8
  $ echo a > a
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
     9
  $ hg ci -Ama
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
    10
  adding a
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
    11
  $ cd ..
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
    12
  $ cat >hgweb.cgi <<HGWEB
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
    13
  > #
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
    14
  > # An example CGI script to use hgweb, edit as necessary
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
    15
  > import cgitb
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
    16
  > cgitb.enable()
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
    17
  > from mercurial import demandimport; demandimport.enable()
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
    18
  > from mercurial.hgweb import hgweb
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
    19
  > from mercurial.hgweb import wsgicgi
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
    20
  > application = hgweb("test", "Empty test repository")
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
    21
  > wsgicgi.launch(application)
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
    22
  > HGWEB
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
    23
  $ chmod 755 hgweb.cgi
6922
1ec2d227a521 hgweb: fix WSGI iterators handling in CGI adapter (issue1254)
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    24
12410
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
    25
try hgweb request
6922
1ec2d227a521 hgweb: fix WSGI iterators handling in CGI adapter (issue1254)
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    26
13269
aa3f726a2bdb tests: remove duplication of the CGI environment variables
StevenGBrown
parents: 12410
diff changeset
    27
  $ . "$TESTDIR/cgienv"
12410
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
    28
  $ QUERY_STRING="cmd=changegroup&roots=0000000000000000000000000000000000000000"; export QUERY_STRING
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
    29
  $ python hgweb.cgi >page1 2>&1
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
    30
  $ python "$TESTDIR/md5sum.py" page1
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
    31
  1f424bb22ec05c3c6bc866b6e67efe43  page1
18552
e8efcc8ff5c0 hgweb.cgi: fix internal WSGI emulation (issue3804)
Mads Kiilerich <madski@unity3d.com>
parents: 15567
diff changeset
    32
e8efcc8ff5c0 hgweb.cgi: fix internal WSGI emulation (issue3804)
Mads Kiilerich <madski@unity3d.com>
parents: 15567
diff changeset
    33
make sure headers are sent even when there is no body
e8efcc8ff5c0 hgweb.cgi: fix internal WSGI emulation (issue3804)
Mads Kiilerich <madski@unity3d.com>
parents: 15567
diff changeset
    34
e8efcc8ff5c0 hgweb.cgi: fix internal WSGI emulation (issue3804)
Mads Kiilerich <madski@unity3d.com>
parents: 15567
diff changeset
    35
  $ QUERY_STRING="cmd=listkeys&namespace=nosuchnamespace" python hgweb.cgi
e8efcc8ff5c0 hgweb.cgi: fix internal WSGI emulation (issue3804)
Mads Kiilerich <madski@unity3d.com>
parents: 15567
diff changeset
    36
  Status: 200 Script output follows\r (esc)
e8efcc8ff5c0 hgweb.cgi: fix internal WSGI emulation (issue3804)
Mads Kiilerich <madski@unity3d.com>
parents: 15567
diff changeset
    37
  Content-Type: application/mercurial-0.1\r (esc)
e8efcc8ff5c0 hgweb.cgi: fix internal WSGI emulation (issue3804)
Mads Kiilerich <madski@unity3d.com>
parents: 15567
diff changeset
    38
  Content-Length: 0\r (esc)
e8efcc8ff5c0 hgweb.cgi: fix internal WSGI emulation (issue3804)
Mads Kiilerich <madski@unity3d.com>
parents: 15567
diff changeset
    39
  \r (esc)