tests: fix up test-run-tests failures on Python 3.6
Some of the recent work on run-tests.py didn't work on Python 3. This
fixes the regressions.
Differential Revision: https://phab.mercurial-scm.org/D270
--- a/tests/run-tests.py Wed Aug 02 11:32:25 2017 +0200
+++ b/tests/run-tests.py Tue Aug 08 15:07:05 2017 -0400
@@ -105,9 +105,13 @@
PYTHON3 = True
xrange = range # we use xrange in one place, and we'd rather not use range
def _bytespath(p):
+ if p is None:
+ return p
return p.encode('utf-8')
def _strpath(p):
+ if p is None:
+ return p
return p.decode('utf-8')
elif sys.version_info >= (3, 0, 0):
@@ -1383,7 +1387,8 @@
else:
m = optline.match(el)
if m:
- conditions = [c for c in m.group(2).split(' ')]
+ conditions = [
+ c for c in m.group(2).split(b' ')]
if not self._hghave(conditions)[0]:
optional.append(i)
@@ -1497,7 +1502,7 @@
else:
m = optline.match(el)
if m:
- conditions = [c for c in m.group(2).split(' ')]
+ conditions = [c for c in m.group(2).split(b' ')]
el = m.group(1) + b"\n"
if not self._hghave(conditions)[0]:
--- a/tests/test-run-tests.py Wed Aug 02 11:32:25 2017 +0200
+++ b/tests/test-run-tests.py Tue Aug 08 15:07:05 2017 -0400
@@ -39,7 +39,7 @@
and output.endswith(b'\n')), 'missing newline'
assert not re.search(br'[^ \w\\/\r\n()*?]', expected + output), \
b'single backslash or unknown char'
- test = run_tests.TTest('test-run-test.t', '.', '.')
+ test = run_tests.TTest(b'test-run-test.t', b'.', b'.')
match = test.linematch(expected, output)
if isinstance(match, str):
return 'special: ' + match