Author: hans
Date: Mon Aug 13 01:15:58 2018
New Revision: 339542

URL: http://llvm.org/viewvc/llvm-project?rev=339542&view=rev
Log:
Merging r339179 and r339184:
------------------------------------------------------------------------
r339179 | stella.stamenova | 2018-08-07 22:54:38 +0200 (Tue, 07 Aug 2018) | 12 
lines

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

Summary:
In Python2 'unicode' is a distinct type from 'str', but in Python3 'unicode' 
does not exist and instead all 'str' objects are Unicode string. This change 
updates the logic in the test logging for lit to correctly process each of the 
types, and more importantly, to not just fail in Python3.

This change also reverses the use of quotes in several of the cfg files. By 
using '""' we are guaranteeing that the resulting path will work correctly on 
Windows while "''" only works correctly sometimes. This also fixes one of the 
failing tests.

Reviewers: asmith, zturner

Subscribers: stella.stamenova, delcypher, llvm-commits

Differential Revision: https://reviews.llvm.org/D50397
------------------------------------------------------------------------

------------------------------------------------------------------------
r339184 | stella.stamenova | 2018-08-07 23:21:30 +0200 (Tue, 07 Aug 2018) | 3 
lines

[lit] Disable shtest-timeout on Windows

This test passes on Windows when using Python 3 but fails when using Python 2, 
so it needs more investigation before it can be enabled as the bots use Python 
2.
------------------------------------------------------------------------

Modified:
    llvm/branches/release_70/   (props changed)
    llvm/branches/release_70/utils/lit/lit/Test.py
    llvm/branches/release_70/utils/lit/lit/llvm/config.py
    llvm/branches/release_70/utils/lit/tests/Inputs/shtest-env/lit.cfg
    llvm/branches/release_70/utils/lit/tests/Inputs/shtest-shell/lit.cfg
    llvm/branches/release_70/utils/lit/tests/Inputs/shtest-timeout/lit.cfg
    llvm/branches/release_70/utils/lit/tests/lit.cfg

Propchange: llvm/branches/release_70/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Aug 13 01:15:58 2018
@@ -1,3 +1,3 @@
 /llvm/branches/Apple/Pertwee:110850,110961
 /llvm/branches/type-system-rewrite:133420-134817
-/llvm/trunk:155241,338552,338554,338569,338599,338610,338658,338665,338682,338703,338709,338716,338751,338762,338817,338902,338915,338968,339073,339190,339225,339316,339319
+/llvm/trunk:155241,338552,338554,338569,338599,338610,338658,338665,338682,338703,338709,338716,338751,338762,338817,338902,338915,338968,339073,339179,339184,339190,339225,339316,339319

Modified: llvm/branches/release_70/utils/lit/lit/Test.py
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_70/utils/lit/lit/Test.py?rev=339542&r1=339541&r2=339542&view=diff
==============================================================================
--- llvm/branches/release_70/utils/lit/lit/Test.py (original)
+++ llvm/branches/release_70/utils/lit/lit/Test.py Mon Aug 13 01:15:58 2018
@@ -378,10 +378,15 @@ class Test:
         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[>"))

Modified: llvm/branches/release_70/utils/lit/lit/llvm/config.py
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_70/utils/lit/lit/llvm/config.py?rev=339542&r1=339541&r2=339542&view=diff
==============================================================================
--- llvm/branches/release_70/utils/lit/lit/llvm/config.py (original)
+++ llvm/branches/release_70/utils/lit/lit/llvm/config.py Mon Aug 13 01:15:58 
2018
@@ -299,7 +299,7 @@ class LLVMConfig(object):
                 '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])

Modified: llvm/branches/release_70/utils/lit/tests/Inputs/shtest-env/lit.cfg
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_70/utils/lit/tests/Inputs/shtest-env/lit.cfg?rev=339542&r1=339541&r2=339542&view=diff
==============================================================================
--- llvm/branches/release_70/utils/lit/tests/Inputs/shtest-env/lit.cfg 
(original)
+++ llvm/branches/release_70/utils/lit/tests/Inputs/shtest-env/lit.cfg Mon Aug 
13 01:15:58 2018
@@ -6,4 +6,4 @@ config.test_source_root = None
 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)))

Modified: llvm/branches/release_70/utils/lit/tests/Inputs/shtest-shell/lit.cfg
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_70/utils/lit/tests/Inputs/shtest-shell/lit.cfg?rev=339542&r1=339541&r2=339542&view=diff
==============================================================================
--- llvm/branches/release_70/utils/lit/tests/Inputs/shtest-shell/lit.cfg 
(original)
+++ llvm/branches/release_70/utils/lit/tests/Inputs/shtest-shell/lit.cfg Mon 
Aug 13 01:15:58 2018
@@ -4,4 +4,4 @@ config.suffixes = ['.txt']
 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)))

Modified: llvm/branches/release_70/utils/lit/tests/Inputs/shtest-timeout/lit.cfg
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_70/utils/lit/tests/Inputs/shtest-timeout/lit.cfg?rev=339542&r1=339541&r2=339542&view=diff
==============================================================================
--- llvm/branches/release_70/utils/lit/tests/Inputs/shtest-timeout/lit.cfg 
(original)
+++ llvm/branches/release_70/utils/lit/tests/Inputs/shtest-timeout/lit.cfg Mon 
Aug 13 01:15:58 2018
@@ -29,4 +29,4 @@ config.test_exec_root = config.test_sour
 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)))

Modified: llvm/branches/release_70/utils/lit/tests/lit.cfg
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_70/utils/lit/tests/lit.cfg?rev=339542&r1=339541&r2=339542&view=diff
==============================================================================
--- llvm/branches/release_70/utils/lit/tests/lit.cfg (original)
+++ llvm/branches/release_70/utils/lit/tests/lit.cfg Mon Aug 13 01:15:58 2018
@@ -40,7 +40,7 @@ config.substitutions.append(('%{inputs}'
             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


_______________________________________________
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to