[llvm] r332148 - Overhaul unicode handling in xunit output
Chris Matthews via llvm-commits
llvm-commits at lists.llvm.org
Fri May 11 15:18:23 PDT 2018
Author: cmatthews
Date: Fri May 11 15:18:22 2018
New Revision: 332148
URL: http://llvm.org/viewvc/llvm-project?rev=332148&view=rev
Log:
Overhaul unicode handling in xunit output
I have seen a lot of errors where the xunit does not encode unicode
test output correctly. Handle that explicitly now.
Modified:
llvm/trunk/utils/lit/lit/Test.py
Modified: llvm/trunk/utils/lit/lit/Test.py
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/lit/lit/Test.py?rev=332148&r1=332147&r2=332148&view=diff
==============================================================================
--- llvm/trunk/utils/lit/lit/Test.py (original)
+++ llvm/trunk/utils/lit/lit/Test.py Fri May 11 15:18:22 2018
@@ -371,15 +371,19 @@ class Test:
class_name = safe_name + "." + "/".join(safe_test_path)
else:
class_name = safe_name + "." + safe_name
- testcase_template = u"<testcase classname='{class_name}' name='{test_name}' time='{time:.2f}'"
+ testcase_template = "<testcase classname='{class_name}' name='{test_name}' time='{time:.2f}'"
elapsed_time = self.result.elapsed if self.result.elapsed is not None else 0.0
testcase_xml = testcase_template.format(class_name=class_name, test_name=test_name, time=elapsed_time)
fil.write(testcase_xml)
if self.result.code.isFailure:
- fil.write(u">\n\t<failure ><![CDATA[")
- fil.write(self.result.output)
- fil.write(u"]]></failure>\n</testcase>")
+ fil.write(">\n\t<failure ><![CDATA[")
+ if type(self.result.output) == unicode:
+ encoded_output = self.result.output.encode("utf-8", 'ignore')
+ else:
+ encoded_output = self.result.output
+ fil.write(encoded_output)
+ fil.write("]]></failure>\n</testcase>")
elif self.result.code == UNSUPPORTED:
- fil.write(u">\n\t<skipped />\n</testcase>\n")
+ fil.write(">\n\t<skipped />\n</testcase>\n")
else:
- fil.write(u"/>")
+ fil.write("/>")
More information about the llvm-commits
mailing list