annotate tests/test-oldcgi.t @ 51610:6c39edd1d348 stable

re2: make errors quiet By default, the re2 library will output error on its own instead of keeping the error in an exception. This make re2 printing spurious error before fallback to the stdlib remodule that may accept the pattern or also fails to parse it and raise a proper error that will be handled by Mercurial. So we also pass an Option object that changes this default.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Thu, 02 May 2024 02:20:42 +0200
parents d5cd1fd690f3
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
22046
7a9cbb315d84 tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents: 15567
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
12472
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
3 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
4
12472
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
5 $ hg init test
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
6 $ cat >hgweb.cgi <<HGWEB
39707
5abc47d4ca6b tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents: 39621
diff changeset
7 > #!"$PYTHON"
12472
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 > # An example CGI script to use hgweb, edit as necessary
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
10 >
50734
d5cd1fd690f3 hgweb: drop references to deprecated cgitb
Mads Kiilerich <mads@kiilerich.com>
parents: 41412
diff changeset
11 > import os, sys
12472
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
12 >
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
13 > # 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
14 > from mercurial import hgweb
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
15 >
39621
23b749b84b8a py3: call hgweb.hgweb() with bytes values
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 33262
diff changeset
16 > h = hgweb.hgweb(b"test", b"Empty test repository")
12472
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
17 > h.run()
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
18 > HGWEB
2533
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
19
12472
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
20 $ 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
21
12472
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
22 $ cat >hgweb.config <<HGWEBDIRCONF
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
23 > [paths]
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
24 > test = test
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
25 > HGWEBDIRCONF
2533
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
26
12472
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
27 $ cat >hgwebdir.cgi <<HGWEBDIR
39707
5abc47d4ca6b tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents: 39621
diff changeset
28 > #!"$PYTHON"
12472
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
29 > #
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
30 > # 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
31 >
50734
d5cd1fd690f3 hgweb: drop references to deprecated cgitb
Mads Kiilerich <mads@kiilerich.com>
parents: 41412
diff changeset
32 > import sys
12472
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 >
41412
f5cb822625cc tests: add b'' to config file name
Gregory Szorc <gregory.szorc@gmail.com>
parents: 39707
diff changeset
56 > h = hgweb.hgwebdir(b"hgweb.config")
12472
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
13269
aa3f726a2bdb tests: remove duplication of the CGI environment variables
StevenGBrown
parents: 12472
diff changeset
62 $ . "$TESTDIR/cgienv"
39707
5abc47d4ca6b tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents: 39621
diff changeset
63 $ "$PYTHON" hgweb.cgi > page1
5abc47d4ca6b tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents: 39621
diff changeset
64 $ "$PYTHON" hgwebdir.cgi > page2
12472
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
65
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
66 $ PATH_INFO="/test/"
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
67 $ PATH_TRANSLATED="/var/something/test.cgi"
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
68 $ REQUEST_URI="/test/test/"
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
69 $ SCRIPT_URI="http://hg.omnifarious.org/test/test/"
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
70 $ SCRIPT_URL="/test/test/"
39707
5abc47d4ca6b tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents: 39621
diff changeset
71 $ "$PYTHON" hgwebdir.cgi > page3
12472
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
72
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
73 $ grep -i error page1 page2 page3
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
74 [1]