tests/test-oldcgi
author Nicolas Dumazet <nicdumz.commits@gmail.com>
Sat, 03 Jul 2010 18:11:15 +0900
changeset 11608 183e63112698
parent 5580 f429e0e067a8
permissions -rwxr-xr-x
log: remove increasing windows usage in fastpath The purpose of increasing windows is to allow backwards iteration on the filelog at a reasonable cost. But is it needed? - if follow is False, we have no reason to iterate backwards. We basically just want to walk the complete filelog and yield all revisions within the revision range. We can do this forward or backwards, as it only reads the index. - when follow is True, we need to examine the contents of the filelog, and to do this efficiently we need to read the filelog forward. And on the other hand, to track ancestors and copies, we need to process revisions backwards. But is it necessary to use increasing windows for this? We can iterate over the complete filelog forward, stack the revisions, and read the reversed(pile), it does the same thing with a more readable code.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2533
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
     1
#!/bin/sh
5580
f429e0e067a8 Fix style nit and add some comments to tests.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 5076
diff changeset
     2
# 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
     3
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
     4
hg init test
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
     5
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
     6
cat >hgweb.cgi <<HGWEB
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
     7
#!/usr/bin/env python
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
     8
#
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
     9
# An example CGI script to use hgweb, edit as necessary
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    10
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    11
import cgitb, os, sys
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    12
cgitb.enable()
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    13
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    14
# sys.path.insert(0, "/path/to/python/lib") # if not a system-wide install
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    15
from mercurial import hgweb
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    16
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    17
h = hgweb.hgweb("test", "Empty test repository")
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    18
h.run()
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    19
HGWEB
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    20
chmod 755 hgweb.cgi
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    21
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    22
cat >hgweb.config <<HGWEBDIRCONF
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    23
[paths]
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    24
test = test
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    25
HGWEBDIRCONF
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    26
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    27
cat >hgwebdir.cgi <<HGWEBDIR
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    28
#!/usr/bin/env python
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    29
#
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    30
# An example CGI script to export multiple hgweb repos, edit as necessary
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    31
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    32
import cgitb, sys
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    33
cgitb.enable()
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    34
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    35
# sys.path.insert(0, "/path/to/python/lib") # if not a system-wide install
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    36
from mercurial import hgweb
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    37
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    38
# The config file looks like this.  You can have paths to individual
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    39
# repos, collections of repos in a directory tree, or both.
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    40
#
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    41
# [paths]
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    42
# virtual/path = /real/path
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    43
# virtual/path = /real/path
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    44
#
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    45
# [collections]
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    46
# /prefix/to/strip/off = /root/of/tree/full/of/repos
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    47
#
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    48
# collections example: say directory tree /foo contains repos /foo/bar,
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    49
# /foo/quux/baz.  Give this config section:
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    50
#   [collections]
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    51
#   /foo = /foo
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    52
# Then repos will list as bar and quux/baz.
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    53
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    54
# Alternatively you can pass a list of ('virtual/path', '/real/path') tuples
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    55
# or use a dictionary with entries like 'virtual/path': '/real/path'
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    56
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    57
h = hgweb.hgwebdir("hgweb.config")
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    58
h.run()
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    59
HGWEBDIR
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    60
chmod 755 hgwebdir.cgi
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    61
2540
800a582e2405 Don't use non-sh declare in test-oldcgi.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2536
diff changeset
    62
DOCUMENT_ROOT="/var/www/hg"; export DOCUMENT_ROOT
800a582e2405 Don't use non-sh declare in test-oldcgi.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2536
diff changeset
    63
GATEWAY_INTERFACE="CGI/1.1"; export GATEWAY_INTERFACE
800a582e2405 Don't use non-sh declare in test-oldcgi.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2536
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
800a582e2405 Don't use non-sh declare in test-oldcgi.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2536
diff changeset
    65
HTTP_ACCEPT_CHARSET="ISO-8859-1,utf-8;q=0.7,*;q=0.7"; export HTTP_ACCEPT_CHARSET
800a582e2405 Don't use non-sh declare in test-oldcgi.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2536
diff changeset
    66
HTTP_ACCEPT_ENCODING="gzip,deflate"; export HTTP_ACCEPT_ENCODING
800a582e2405 Don't use non-sh declare in test-oldcgi.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2536
diff changeset
    67
HTTP_ACCEPT_LANGUAGE="en-us,en;q=0.5"; export HTTP_ACCEPT_LANGUAGE
800a582e2405 Don't use non-sh declare in test-oldcgi.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2536
diff changeset
    68
HTTP_CACHE_CONTROL="max-age=0"; export HTTP_CACHE_CONTROL
800a582e2405 Don't use non-sh declare in test-oldcgi.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2536
diff changeset
    69
HTTP_CONNECTION="keep-alive"; export HTTP_CONNECTION
800a582e2405 Don't use non-sh declare in test-oldcgi.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2536
diff changeset
    70
HTTP_HOST="hg.omnifarious.org"; export HTTP_HOST
800a582e2405 Don't use non-sh declare in test-oldcgi.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2536
diff changeset
    71
HTTP_KEEP_ALIVE="300"; export HTTP_KEEP_ALIVE
800a582e2405 Don't use non-sh declare in test-oldcgi.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2536
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
800a582e2405 Don't use non-sh declare in test-oldcgi.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2536
diff changeset
    73
PATH_INFO="/"; export PATH_INFO
800a582e2405 Don't use non-sh declare in test-oldcgi.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2536
diff changeset
    74
PATH_TRANSLATED="/var/www/hg/index.html"; export PATH_TRANSLATED
800a582e2405 Don't use non-sh declare in test-oldcgi.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2536
diff changeset
    75
QUERY_STRING=""; export QUERY_STRING
800a582e2405 Don't use non-sh declare in test-oldcgi.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2536
diff changeset
    76
REMOTE_ADDR="127.0.0.2"; export REMOTE_ADDR
800a582e2405 Don't use non-sh declare in test-oldcgi.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2536
diff changeset
    77
REMOTE_PORT="44703"; export REMOTE_PORT
800a582e2405 Don't use non-sh declare in test-oldcgi.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2536
diff changeset
    78
REQUEST_METHOD="GET"; export REQUEST_METHOD
800a582e2405 Don't use non-sh declare in test-oldcgi.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2536
diff changeset
    79
REQUEST_URI="/test/"; export REQUEST_URI
800a582e2405 Don't use non-sh declare in test-oldcgi.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2536
diff changeset
    80
SCRIPT_FILENAME="/home/hopper/hg_public/test.cgi"; export SCRIPT_FILENAME
800a582e2405 Don't use non-sh declare in test-oldcgi.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2536
diff changeset
    81
SCRIPT_NAME="/test"; export SCRIPT_NAME
800a582e2405 Don't use non-sh declare in test-oldcgi.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2536
diff changeset
    82
SCRIPT_URI="http://hg.omnifarious.org/test/"; export SCRIPT_URI
800a582e2405 Don't use non-sh declare in test-oldcgi.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2536
diff changeset
    83
SCRIPT_URL="/test/"; export SCRIPT_URL
800a582e2405 Don't use non-sh declare in test-oldcgi.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2536
diff changeset
    84
SERVER_ADDR="127.0.0.1"; export SERVER_ADDR
800a582e2405 Don't use non-sh declare in test-oldcgi.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2536
diff changeset
    85
SERVER_ADMIN="eric@localhost"; export SERVER_ADMIN
800a582e2405 Don't use non-sh declare in test-oldcgi.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2536
diff changeset
    86
SERVER_NAME="hg.omnifarious.org"; export SERVER_NAME
800a582e2405 Don't use non-sh declare in test-oldcgi.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2536
diff changeset
    87
SERVER_PORT="80"; export SERVER_PORT
800a582e2405 Don't use non-sh declare in test-oldcgi.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2536
diff changeset
    88
SERVER_PROTOCOL="HTTP/1.1"; export SERVER_PROTOCOL
800a582e2405 Don't use non-sh declare in test-oldcgi.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2536
diff changeset
    89
SERVER_SIGNATURE="<address>Apache/2.0.53 (Fedora) Server at hg.omnifarious.org Port 80</address>\; export SERVER_SIGNATURE
2533
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    90
"
2540
800a582e2405 Don't use non-sh declare in test-oldcgi.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2536
diff changeset
    91
SERVER_SOFTWARE="Apache/2.0.53 (Fedora)"; export SERVER_SOFTWARE
5076
4f37ce544c16 test-oldcgi: replace shebangs with explicit python calls to help pysh.
Patrick Mezard <pmezard@gmail.com>
parents: 2541
diff changeset
    92
python hgweb.cgi >page1 2>&1 ; echo $?
4f37ce544c16 test-oldcgi: replace shebangs with explicit python calls to help pysh.
Patrick Mezard <pmezard@gmail.com>
parents: 2541
diff changeset
    93
python hgwebdir.cgi >page2 2>&1 ; echo $?
2536
8106e477f584 Fix new tests to be better. In particular, fix webraw test to
Eric Hopper <hopper@omnifarious.org>
parents: 2533
diff changeset
    94
PATH_INFO="/test/"
8106e477f584 Fix new tests to be better. In particular, fix webraw test to
Eric Hopper <hopper@omnifarious.org>
parents: 2533
diff changeset
    95
PATH_TRANSLATED="/var/something/test.cgi"
8106e477f584 Fix new tests to be better. In particular, fix webraw test to
Eric Hopper <hopper@omnifarious.org>
parents: 2533
diff changeset
    96
REQUEST_URI="/test/test/"
8106e477f584 Fix new tests to be better. In particular, fix webraw test to
Eric Hopper <hopper@omnifarious.org>
parents: 2533
diff changeset
    97
SCRIPT_URI="http://hg.omnifarious.org/test/test/"
8106e477f584 Fix new tests to be better. In particular, fix webraw test to
Eric Hopper <hopper@omnifarious.org>
parents: 2533
diff changeset
    98
SCRIPT_URL="/test/test/"
5076
4f37ce544c16 test-oldcgi: replace shebangs with explicit python calls to help pysh.
Patrick Mezard <pmezard@gmail.com>
parents: 2541
diff changeset
    99
python hgwebdir.cgi >page3 2>&1 ; echo $?
2536
8106e477f584 Fix new tests to be better. In particular, fix webraw test to
Eric Hopper <hopper@omnifarious.org>
parents: 2533
diff changeset
   100
fgrep -i error page1 page2 page3 && exit 1
2533
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
   101
exit 0