tests/test-oldcgi.t
author Eric Eisner <ede@mit.edu>
Sun, 28 Nov 2010 17:19:23 -0500
changeset 13087 cca0779b4832
parent 12472 17c62039cadd
child 13269 aa3f726a2bdb
permissions -rw-r--r--
subrepo: lazily update git's local tracking branches This continues the strategy of separation between hg pull and hg update in git subrepos by only dealing with git's branches on an update. This behavior tries to cover the bare essentials of the semantics of git pull in the subrepo when the parent repo does hg pull and hg update.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12472
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
     1
This tests if CGI files from before d0db3462d568 still work.
2533
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
     2
12472
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
     3
  $ hg init test
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
     4
  $ cat >hgweb.cgi <<HGWEB
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
     5
  > #!/usr/bin/env python
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
     6
  > #
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
     7
  > # An example CGI script to use hgweb, edit as necessary
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
     8
  > 
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
     9
  > import cgitb, os, sys
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    10
  > cgitb.enable()
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    11
  > 
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    12
  > # sys.path.insert(0, "/path/to/python/lib") # if not a system-wide install
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    13
  > from mercurial import hgweb
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    14
  > 
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    15
  > h = hgweb.hgweb("test", "Empty test repository")
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    16
  > h.run()
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    17
  > HGWEB
2533
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    18
12472
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    19
  $ chmod 755 hgweb.cgi
2533
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    20
12472
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    21
  $ cat >hgweb.config <<HGWEBDIRCONF
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    22
  > [paths]
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    23
  > test = test
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    24
  > HGWEBDIRCONF
2533
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    25
12472
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    26
  $ cat >hgwebdir.cgi <<HGWEBDIR
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    27
  > #!/usr/bin/env python
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    28
  > #
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    29
  > # An example CGI script to export multiple hgweb repos, edit as necessary
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    30
  > 
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    31
  > import cgitb, sys
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    32
  > cgitb.enable()
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    33
  > 
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    34
  > # sys.path.insert(0, "/path/to/python/lib") # if not a system-wide install
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    35
  > from mercurial import hgweb
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    36
  > 
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    37
  > # The config file looks like this.  You can have paths to individual
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    38
  > # repos, collections of repos in a directory tree, or both.
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    39
  > #
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    40
  > # [paths]
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    41
  > # virtual/path = /real/path
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    42
  > # virtual/path = /real/path
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    43
  > #
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    44
  > # [collections]
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    45
  > # /prefix/to/strip/off = /root/of/tree/full/of/repos
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    46
  > #
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    47
  > # collections example: say directory tree /foo contains repos /foo/bar,
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    48
  > # /foo/quux/baz.  Give this config section:
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    49
  > #   [collections]
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    50
  > #   /foo = /foo
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    51
  > # Then repos will list as bar and quux/baz.
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    52
  > 
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    53
  > # Alternatively you can pass a list of ('virtual/path', '/real/path') tuples
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    54
  > # or use a dictionary with entries like 'virtual/path': '/real/path'
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    55
  > 
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    56
  > h = hgweb.hgwebdir("hgweb.config")
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    57
  > h.run()
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    58
  > HGWEBDIR
2533
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    59
12472
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    60
  $ chmod 755 hgwebdir.cgi
2533
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    61
12472
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    62
  $ DOCUMENT_ROOT="/var/www/hg"; export DOCUMENT_ROOT
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    63
  $ GATEWAY_INTERFACE="CGI/1.1"; export GATEWAY_INTERFACE
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    64
  $ HTTP_ACCEPT="text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"; export HTTP_ACCEPT
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    65
  $ HTTP_ACCEPT_CHARSET="ISO-8859-1,utf-8;q=0.7,*;q=0.7"; export HTTP_ACCEPT_CHARSET
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    66
  $ HTTP_ACCEPT_ENCODING="gzip,deflate"; export HTTP_ACCEPT_ENCODING
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    67
  $ HTTP_ACCEPT_LANGUAGE="en-us,en;q=0.5"; export HTTP_ACCEPT_LANGUAGE
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    68
  $ HTTP_CACHE_CONTROL="max-age=0"; export HTTP_CACHE_CONTROL
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    69
  $ HTTP_CONNECTION="keep-alive"; export HTTP_CONNECTION
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    70
  $ HTTP_HOST="hg.omnifarious.org"; export HTTP_HOST
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    71
  $ HTTP_KEEP_ALIVE="300"; export HTTP_KEEP_ALIVE
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    72
  $ HTTP_USER_AGENT="Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.8.0.4) Gecko/20060608 Ubuntu/dapper-security Firefox/1.5.0.4"; export HTTP_USER_AGENT
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    73
  $ PATH_INFO="/"; export PATH_INFO
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    74
  $ PATH_TRANSLATED="/var/www/hg/index.html"; export PATH_TRANSLATED
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    75
  $ QUERY_STRING=""; export QUERY_STRING
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    76
  $ REMOTE_ADDR="127.0.0.2"; export REMOTE_ADDR
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    77
  $ REMOTE_PORT="44703"; export REMOTE_PORT
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    78
  $ REQUEST_METHOD="GET"; export REQUEST_METHOD
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    79
  $ REQUEST_URI="/test/"; export REQUEST_URI
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    80
  $ SCRIPT_FILENAME="/home/hopper/hg_public/test.cgi"; export SCRIPT_FILENAME
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    81
  $ SCRIPT_NAME="/test"; export SCRIPT_NAME
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    82
  $ SCRIPT_URI="http://hg.omnifarious.org/test/"; export SCRIPT_URI
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    83
  $ SCRIPT_URL="/test/"; export SCRIPT_URL
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    84
  $ SERVER_ADDR="127.0.0.1"; export SERVER_ADDR
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    85
  $ SERVER_ADMIN="eric@localhost"; export SERVER_ADMIN
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    86
  $ SERVER_NAME="hg.omnifarious.org"; export SERVER_NAME
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    87
  $ SERVER_PORT="80"; export SERVER_PORT
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    88
  $ SERVER_PROTOCOL="HTTP/1.1"; export SERVER_PROTOCOL
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    89
  $ SERVER_SIGNATURE="<address>Apache/2.0.53 (Fedora) Server at hg.omnifarious.org Port 80</address>"; export SERVER_SIGNATURE
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    90
  $ SERVER_SOFTWARE="Apache/2.0.53 (Fedora)"; export SERVER_SOFTWARE
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    91
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    92
  $ python hgweb.cgi > page1
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    93
  $ python hgwebdir.cgi > page2
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    94
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    95
  $ PATH_INFO="/test/"
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    96
  $ PATH_TRANSLATED="/var/something/test.cgi"
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    97
  $ REQUEST_URI="/test/test/"
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    98
  $ SCRIPT_URI="http://hg.omnifarious.org/test/test/"
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    99
  $ SCRIPT_URL="/test/test/"
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
   100
  $ python hgwebdir.cgi > page3
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
   101
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
   102
  $ grep -i error page1 page2 page3
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
   103
  [1]