[lit] Fix bug when using Python3 where a failing test would not show

the script when running a ShTest with an external or internal shell.

This bug is caused by use of the ``map`` function in Python 3 which
returns an iterable (rather than a list in Python 2). After the iterable
is exhausted it won't return any more output and consequently when
``_runShTest()`` tries to access the ``script`` which has already been
iterated over it is empty. Converting to a list immediatley after
calling ``map()`` fixes this.

This fixes the ``tests/shtest-format.py`` test when running under
Python3 which was previously failing.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253556 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Dan Liew 2015-11-19 11:35:42 +00:00
parent fed4c6eb16
commit 23915cf59e

View File

@ -469,7 +469,9 @@ def applySubstitutions(script, substitutions):
# Strip the trailing newline and any extra whitespace.
return ln.strip()
return map(processLine, script)
# Note Python 3 map() gives an iterator rather than a list so explicitly
# convert to list before returning.
return list(map(processLine, script))
def parseIntegratedTestScript(test, require_script=True):
"""parseIntegratedTestScript - Scan an LLVM/Clang style integrated test