Mercurial > hg
annotate tests/test-wsgicgi.t @ 51983:46afce95e5a5
tests: skip `test-wsgicgi.t` on MSYS
The test is attempting to set `PATH_INFO="/rev/\xe2\x80\x94"` into the
environment, which it does. The problem is that when MSYS sees a leading '/' in
an environment variable, it thinks it's a unix filesystem path, so it "helpfully"
prepends the Windows path to the MSYS root directory before running a non-MSYS
process. hgweb would then split this value on '/', so it would get 'C:' instead
of 'rev', and return a 400 since that isn't a valid web command.
I tried generating a *.bat file, but had trouble running that via `cmd.exe`
inside the test. I also tried generating an equivalent *.py launcher that would
set the environment variables itself. But there is no `os.environb` on Windows,
and the value was getting mangled when put into the script. So, I give up. If
it's encoding stuff on Windows, it's probably broken.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Mon, 07 Oct 2024 13:19:16 -0400 |
parents | 04bfcb416745 |
children |
rev | line source |
---|---|
51983
46afce95e5a5
tests: skip `test-wsgicgi.t` on MSYS
Matt Harbison <matt_harbison@yahoo.com>
parents:
50937
diff
changeset
|
1 #require no-msys |
46afce95e5a5
tests: skip `test-wsgicgi.t` on MSYS
Matt Harbison <matt_harbison@yahoo.com>
parents:
50937
diff
changeset
|
2 |
50937
04bfcb416745
hgweb: pass strings in WSGI environment correctly from wsgicgi
Manuel Jacob <me@manueljacob.de>
parents:
diff
changeset
|
3 $ hg init test |
04bfcb416745
hgweb: pass strings in WSGI environment correctly from wsgicgi
Manuel Jacob <me@manueljacob.de>
parents:
diff
changeset
|
4 $ cat >hgweb.cgi <<HGWEB |
04bfcb416745
hgweb: pass strings in WSGI environment correctly from wsgicgi
Manuel Jacob <me@manueljacob.de>
parents:
diff
changeset
|
5 > #!$PYTHON |
04bfcb416745
hgweb: pass strings in WSGI environment correctly from wsgicgi
Manuel Jacob <me@manueljacob.de>
parents:
diff
changeset
|
6 > from mercurial import demandimport; demandimport.enable() |
04bfcb416745
hgweb: pass strings in WSGI environment correctly from wsgicgi
Manuel Jacob <me@manueljacob.de>
parents:
diff
changeset
|
7 > from mercurial.hgweb import hgweb |
04bfcb416745
hgweb: pass strings in WSGI environment correctly from wsgicgi
Manuel Jacob <me@manueljacob.de>
parents:
diff
changeset
|
8 > from mercurial.hgweb import wsgicgi |
04bfcb416745
hgweb: pass strings in WSGI environment correctly from wsgicgi
Manuel Jacob <me@manueljacob.de>
parents:
diff
changeset
|
9 > application = hgweb(b"test", b"Empty test repository") |
04bfcb416745
hgweb: pass strings in WSGI environment correctly from wsgicgi
Manuel Jacob <me@manueljacob.de>
parents:
diff
changeset
|
10 > wsgicgi.launch(application) |
04bfcb416745
hgweb: pass strings in WSGI environment correctly from wsgicgi
Manuel Jacob <me@manueljacob.de>
parents:
diff
changeset
|
11 > HGWEB |
04bfcb416745
hgweb: pass strings in WSGI environment correctly from wsgicgi
Manuel Jacob <me@manueljacob.de>
parents:
diff
changeset
|
12 $ chmod 755 hgweb.cgi |
04bfcb416745
hgweb: pass strings in WSGI environment correctly from wsgicgi
Manuel Jacob <me@manueljacob.de>
parents:
diff
changeset
|
13 |
04bfcb416745
hgweb: pass strings in WSGI environment correctly from wsgicgi
Manuel Jacob <me@manueljacob.de>
parents:
diff
changeset
|
14 Check that non-ASCII bytes roundtrip correctly. |
04bfcb416745
hgweb: pass strings in WSGI environment correctly from wsgicgi
Manuel Jacob <me@manueljacob.de>
parents:
diff
changeset
|
15 |
04bfcb416745
hgweb: pass strings in WSGI environment correctly from wsgicgi
Manuel Jacob <me@manueljacob.de>
parents:
diff
changeset
|
16 $ . "$TESTDIR/cgienv" |
04bfcb416745
hgweb: pass strings in WSGI environment correctly from wsgicgi
Manuel Jacob <me@manueljacob.de>
parents:
diff
changeset
|
17 $ PATH_INFO="/rev/$(python -c 'import sys; sys.stdout.buffer.write(b"\xe2\x80\x94")')"; export PATH_INFO |
04bfcb416745
hgweb: pass strings in WSGI environment correctly from wsgicgi
Manuel Jacob <me@manueljacob.de>
parents:
diff
changeset
|
18 $ QUERY_STRING="style=raw"; export QUERY_STRING |
04bfcb416745
hgweb: pass strings in WSGI environment correctly from wsgicgi
Manuel Jacob <me@manueljacob.de>
parents:
diff
changeset
|
19 $ "$PYTHON" ./hgweb.cgi | grep error |
04bfcb416745
hgweb: pass strings in WSGI environment correctly from wsgicgi
Manuel Jacob <me@manueljacob.de>
parents:
diff
changeset
|
20 error: unknown revision '\xe2\x80\x94' (esc) |