tests/test-clone-cgi.t
author David Soria Parra <davidsp@fb.com>
Wed, 06 Aug 2014 13:26:04 -0700
changeset 22149 16ef2c485f03
parent 22046 7a9cbb315d84
child 32958 75be14993fda
permissions -rw-r--r--
repoview: split _gethiddenblockers Split up _gethiddenblockers into two categories: (1) "static' blockers that solely rely on the contents of obstore and are visible children of hidden changsets. (2) "dynamic" blockers, appearing by having wd parents, bookmarks or tags pointing to hidden changesets. We assume that (1) doesn't change often and can be easily cached with a good invalidation strategy. (2) change often, but barely produce blockers, so we can recompute them if necessary.

#require no-msys # MSYS will translate web paths as if they were file paths

This is a test of the wire protocol over CGI-based hgweb.
initialize repository

  $ hg init test
  $ cd test
  $ echo a > a
  $ hg ci -Ama
  adding a
  $ cd ..
  $ cat >hgweb.cgi <<HGWEB
  > #
  > # An example CGI script to use hgweb, edit as necessary
  > import cgitb
  > cgitb.enable()
  > from mercurial import demandimport; demandimport.enable()
  > from mercurial.hgweb import hgweb
  > from mercurial.hgweb import wsgicgi
  > application = hgweb("test", "Empty test repository")
  > wsgicgi.launch(application)
  > HGWEB
  $ chmod 755 hgweb.cgi

try hgweb request

  $ . "$TESTDIR/cgienv"
  $ QUERY_STRING="cmd=changegroup&roots=0000000000000000000000000000000000000000"; export QUERY_STRING
  $ python hgweb.cgi >page1 2>&1
  $ python "$TESTDIR/md5sum.py" page1
  1f424bb22ec05c3c6bc866b6e67efe43  page1

make sure headers are sent even when there is no body

  $ QUERY_STRING="cmd=listkeys&namespace=nosuchnamespace" python hgweb.cgi
  Status: 200 Script output follows\r (esc)
  Content-Type: application/mercurial-0.1\r (esc)
  Content-Length: 0\r (esc)
  \r (esc)