Mercurial > hg
diff tests/test-unified-test.t @ 45013:bd0f122f3f51 stable
run-tests: fix escapes with conditions
Before this fix, escapes with conditions in tests failed like this on Python 3:
$ $PYTHON -c 'from mercurial.utils.procutil import stdout; stdout.write(b"\xff")'
- \xff (no-eol) (esc) (true !)
+ \xff (no-eol) (esc)
The unicode_escape encoding decodes br'\xff' to u'\xff'. To convert the first
256 code points to bytes with the same ordinal, the latin-1 encoding must be
used.
Escapes without conditions already worked before on Python 3, but not through
`el == l` a few lines below the changed line in run-tests.py. I didn’t
investigate further.
author | Manuel Jacob <me@manueljacob.de> |
---|---|
date | Mon, 29 Jun 2020 02:05:12 +0200 |
parents | e504fa630860 |
children | 1d075b857c90 |
line wrap: on
line diff
--- a/tests/test-unified-test.t Sun Jun 28 18:02:45 2020 +0200 +++ b/tests/test-unified-test.t Mon Jun 29 02:05:12 2020 +0200 @@ -75,6 +75,16 @@ crlf\r (esc) #endif +Escapes: + + $ $PYTHON -c 'from mercurial.utils.procutil import stdout; stdout.write(b"\xff")' + \xff (no-eol) (esc) + +Escapes with conditions: + + $ $PYTHON -c 'from mercurial.utils.procutil import stdout; stdout.write(b"\xff")' + \xff (no-eol) (esc) (true !) + Combining esc with other markups - and handling lines ending with \r instead of \n: $ printf 'foo/bar\r'