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
# Strip the trailing newline and any extra whitespace.
return ln.strip()
# 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
def parseIntegratedTestScript(test, require_script=True):
"""parseIntegratedTestScript - Scan an LLVM/Clang style integrated test