diff options
author | Chris Matthews <cmatthews5@apple.com> | 2018-05-11 22:18:22 +0000 |
---|---|---|
committer | Chris Matthews <cmatthews5@apple.com> | 2018-05-11 22:18:22 +0000 |
commit | 6b3db8519d80d6292f84f744ea7673187b4efda8 (patch) | |
tree | c4b3363aed431a1fffab3cc85a82b907b495bd60 | |
parent | f094885a9ea4d20873ba86f4e57fb73f1cf1a797 (diff) | |
download | bcm5719-llvm-6b3db8519d80d6292f84f744ea7673187b4efda8.tar.gz bcm5719-llvm-6b3db8519d80d6292f84f744ea7673187b4efda8.zip |
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.
llvm-svn: 332148
-rw-r--r-- | llvm/utils/lit/lit/Test.py | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/llvm/utils/lit/lit/Test.py b/llvm/utils/lit/lit/Test.py index c6ab5056b4d..6bebb733d69 100644 --- a/llvm/utils/lit/lit/Test.py +++ b/llvm/utils/lit/lit/Test.py @@ -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("/>") |