From: Dan Liew Date: Thu, 19 Nov 2015 11:35:42 +0000 (+0000) Subject: [lit] Fix bug when using Python3 where a failing test would not show X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=commitdiff_plain;h=23915cf59ebb7209de0d3aa75139da705d640b46 [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 --- diff --git a/utils/lit/lit/TestRunner.py b/utils/lit/lit/TestRunner.py index 19e2514f7c0..37e0dd35340 100644 --- a/utils/lit/lit/TestRunner.py +++ b/utils/lit/lit/TestRunner.py @@ -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