[PATCH] D50397: [lit, python3] Update lit error logging to work correctly in python3 and other test fixes

Stella Stamenova via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 7 13:55:27 PDT 2018


This revision was not accepted when it landed; it landed in state "Needs Review".
This revision was automatically updated to reflect the committed changes.
Closed by commit rL339179: [lit, python3] Update lit error logging to work correctly in python3 and other… (authored by stella.stamenova, committed by ).

Changed prior to commit:
  https://reviews.llvm.org/D50397?vs=159538&id=159592#toc

Repository:
  rL LLVM

https://reviews.llvm.org/D50397

Files:
  llvm/trunk/utils/lit/lit/Test.py
  llvm/trunk/utils/lit/lit/llvm/config.py
  llvm/trunk/utils/lit/tests/Inputs/shtest-env/lit.cfg
  llvm/trunk/utils/lit/tests/Inputs/shtest-shell/lit.cfg
  llvm/trunk/utils/lit/tests/Inputs/shtest-timeout/lit.cfg
  llvm/trunk/utils/lit/tests/lit.cfg
  llvm/trunk/utils/lit/tests/shtest-timeout.py


Index: llvm/trunk/utils/lit/lit/llvm/config.py
===================================================================
--- llvm/trunk/utils/lit/lit/llvm/config.py
+++ llvm/trunk/utils/lit/lit/llvm/config.py
@@ -299,7 +299,7 @@
                 'count'), verbatim=True, unresolved='fatal'),
             ToolSubst(r'\| \bnot\b', command=FindTool('not'), verbatim=True, unresolved='fatal')]
 
-        self.config.substitutions.append(('%python', "'%s'" % (sys.executable)))
+        self.config.substitutions.append(('%python', '"%s"' % (sys.executable)))
 
         self.add_tool_substitutions(
             tool_patterns, [self.config.llvm_tools_dir])
Index: llvm/trunk/utils/lit/lit/Test.py
===================================================================
--- llvm/trunk/utils/lit/lit/Test.py
+++ llvm/trunk/utils/lit/lit/Test.py
@@ -378,10 +378,15 @@
         fil.write(testcase_xml)
         if self.result.code.isFailure:
             fil.write(">\n\t<failure ><![CDATA[")
-            if type(self.result.output) == unicode:
-                encoded_output = self.result.output.encode("utf-8", 'ignore')
-            else:
+            # In Python2, 'str' and 'unicode' are distinct types, but in Python3, the type 'unicode' does not exist
+            # and instead 'bytes' is distinct
+            # in Python3, there's no unicode
+            if isinstance(self.result.output, str):
                 encoded_output = self.result.output
+            elif isinstance(self.result.output, bytes):
+                encoded_output = self.result.output.decode("utf-8", 'ignore')
+            else:
+                encoded_output = self.result.output.encode("utf-8", 'ignore')
             # In the unlikely case that the output contains the CDATA terminator
             # we wrap it by creating a new CDATA block
             fil.write(encoded_output.replace("]]>", "]]]]><![CDATA[>"))
Index: llvm/trunk/utils/lit/tests/lit.cfg
===================================================================
--- llvm/trunk/utils/lit/tests/lit.cfg
+++ llvm/trunk/utils/lit/tests/lit.cfg
@@ -40,7 +40,7 @@
             src_root, 'tests', 'Inputs')))
 config.substitutions.append(('%{lit}', "%%{python} %s" % (
             os.path.join(lit_path, 'lit.py'),)))
-config.substitutions.append(('%{python}', "'%s'" % (sys.executable)))
+config.substitutions.append(('%{python}', '"%s"' % (sys.executable)))
 
 
 # Enable coverage.py reporting, assuming the coverage module has been installed
Index: llvm/trunk/utils/lit/tests/shtest-timeout.py
===================================================================
--- llvm/trunk/utils/lit/tests/shtest-timeout.py
+++ llvm/trunk/utils/lit/tests/shtest-timeout.py
@@ -1,8 +1,5 @@
 # REQUIRES: python-psutil
 
-# PR33944
-# XFAIL: windows
-
 # FIXME: This test is fragile because it relies on time which can
 # be affected by system performance. In particular we are currently
 # assuming that `short.py` can be successfully executed within 2
Index: llvm/trunk/utils/lit/tests/Inputs/shtest-env/lit.cfg
===================================================================
--- llvm/trunk/utils/lit/tests/Inputs/shtest-env/lit.cfg
+++ llvm/trunk/utils/lit/tests/Inputs/shtest-env/lit.cfg
@@ -6,4 +6,4 @@
 config.test_exec_root = None
 config.environment['FOO'] = '1'
 config.environment['BAR'] = '2'
-config.substitutions.append(('%{python}', "'%s'" % (sys.executable)))
+config.substitutions.append(('%{python}', '"%s"' % (sys.executable)))
Index: llvm/trunk/utils/lit/tests/Inputs/shtest-timeout/lit.cfg
===================================================================
--- llvm/trunk/utils/lit/tests/Inputs/shtest-timeout/lit.cfg
+++ llvm/trunk/utils/lit/tests/Inputs/shtest-timeout/lit.cfg
@@ -29,4 +29,4 @@
 config.target_triple = '(unused)'
 src_root = os.path.join(config.test_source_root, '..')
 config.environment['PYTHONPATH'] = src_root
-config.substitutions.append(('%{python}', "'%s'" % (sys.executable)))
+config.substitutions.append(('%{python}', '"%s"' % (sys.executable)))
Index: llvm/trunk/utils/lit/tests/Inputs/shtest-shell/lit.cfg
===================================================================
--- llvm/trunk/utils/lit/tests/Inputs/shtest-shell/lit.cfg
+++ llvm/trunk/utils/lit/tests/Inputs/shtest-shell/lit.cfg
@@ -4,4 +4,4 @@
 config.test_format = lit.formats.ShTest()
 config.test_source_root = None
 config.test_exec_root = None
-config.substitutions.append(('%{python}', "'%s'" % (sys.executable)))
+config.substitutions.append(('%{python}', '"%s"' % (sys.executable)))


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D50397.159592.patch
Type: text/x-patch
Size: 4529 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180807/18290a24/attachment.bin>


More information about the llvm-commits mailing list