run-tests.py: don't let hg run interactively in debug mode
In normal test mode stdin is closed and hg is thus not interactive. In --debug
mode stdin is inherited from the running console and to the tests, and hg could
thus wait in prompts when running on Windows.
See http://selenic.com/pipermail/mercurial-devel/2013-January/047548.html .
Instead set ui.interactive=False to make Mercurial non-interactive. Other
commands might still work differently in the --debug environment.
This should solve the problem with hg waiting for input but still make it
possible to add --debugger to hg in a test and run run-tests.py with --debug.
[ original upstream message ]
import sys
globalvars = {}
localvars = {}
lines = sys.stdin.readlines()
while lines:
l = lines.pop(0)
if l.startswith('SALT'):
print l[:-1]
elif l.startswith('>>> '):
snippet = l[4:]
while lines and lines[0].startswith('... '):
l = lines.pop(0)
snippet += "\n" + l[4:]
c = compile(snippet, '<heredoc>', 'single')
try:
exec c in globalvars, localvars
except Exception, inst:
print repr(inst)