Mercurial > hg
annotate tests/test-oldcgi @ 9582:a25af3af941c
tests: add -k to test scripts matching keywords
argument is a space-separated list of keywords that are searched for
in the name and body of each test. This makes it easy to run only
tests related to tags, hgweb, revert, etc. (eg -k "tag hgweb revert").
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Mon, 12 Oct 2009 14:52:53 -0500 |
parents | f429e0e067a8 |
children |
rev | line source |
---|---|
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 |