From 6a85ad2bf698225d31732a343341c1787e30b451 Mon Sep 17 00:00:00 2001 From: Dan Shi Date: Mon, 13 Jul 2020 22:23:01 +0000 Subject: Revert "Avoid double escaping due to Serializer" This reverts commit 4643ee1654907414c993876a5d2668533c1b3264. Escape XML tags again in case test message has un-escaped xml tags. Bug: 160932821 Change-Id: I255d32ac8f0fffe82557fecc2d493f7d549c17f6 Merged-In: I255d32ac8f0fffe82557fecc2d493f7d549c17f6 --- .../android/tradefed/result/suite/XmlSuiteResultFormatter.java | 4 ++-- .../tradefed/result/suite/XmlSuiteResultFormatterTest.java | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/com/android/tradefed/result/suite/XmlSuiteResultFormatter.java b/src/com/android/tradefed/result/suite/XmlSuiteResultFormatter.java index 06592b2ef..772075b6b 100644 --- a/src/com/android/tradefed/result/suite/XmlSuiteResultFormatter.java +++ b/src/com/android/tradefed/result/suite/XmlSuiteResultFormatter.java @@ -34,6 +34,7 @@ import com.android.tradefed.util.StreamUtil; import com.android.tradefed.util.proto.TfMetricProtoUtil; import com.google.common.base.Strings; +import com.google.common.xml.XmlEscapers; import com.google.gson.Gson; import org.xmlpull.v1.XmlPullParser; @@ -707,7 +708,6 @@ public class XmlSuiteResultFormatter implements IFormatterGenerator { @VisibleForTesting static String sanitizeXmlContent(String s) { - // Replace c++ \0 null since Serializer doesn't handle it. - return s.replace("\0", "[Null]"); + return XmlEscapers.xmlContentEscaper().escape(s); } } diff --git a/tests/src/com/android/tradefed/result/suite/XmlSuiteResultFormatterTest.java b/tests/src/com/android/tradefed/result/suite/XmlSuiteResultFormatterTest.java index 67a623a5c..647db0b7e 100644 --- a/tests/src/com/android/tradefed/result/suite/XmlSuiteResultFormatterTest.java +++ b/tests/src/com/android/tradefed/result/suite/XmlSuiteResultFormatterTest.java @@ -170,7 +170,7 @@ public class XmlSuiteResultFormatterTest { assertXmlContainsValue( content, "Result/Module/TestCase/Test/Failure/StackTrace", - "module1 failed.\nstack\nstack[Null]"); + XmlSuiteResultFormatter.sanitizeXmlContent("module1 failed.\nstack\nstack\0")); // Test that we can read back the informations SuiteResultHolder holder = mFormatter.parseResults(mResultDir, false); assertEquals(holder.completeModules, mResultHolder.completeModules); @@ -224,7 +224,7 @@ public class XmlSuiteResultFormatterTest { assertXmlContainsValue( content, "Result/Module/TestCase/Test/Failure/StackTrace", - "module1 failed.\nstack\nstack[Null]"); + XmlSuiteResultFormatter.sanitizeXmlContent("module1 failed.\nstack\nstack\0")); // Test that we can read back the informations SuiteResultHolder holder = mFormatter.parseResults(mResultDir, false); assertEquals(holder.completeModules, mResultHolder.completeModules); @@ -477,7 +477,7 @@ public class XmlSuiteResultFormatterTest { assertXmlContainsValue( content, "Result/Module/TestCase/Test/Failure/StackTrace", - "module1 failed.\nstack\nstack[Null]"); + XmlSuiteResultFormatter.sanitizeXmlContent("module1 failed.\nstack\nstack\0")); // Test that we can read back the informations SuiteResultHolder holder = mFormatter.parseResults(mResultDir, true); assertEquals(holder.completeModules, mResultHolder.completeModules); @@ -671,7 +671,7 @@ public class XmlSuiteResultFormatterTest { new TestDescription("com.class." + runName, runName + ".failed" + i); fakeRes.testStarted(description); // Include a null character \0 that is not XML supported - fakeRes.testFailed(description, runName + " failed.\nstack\nstack\0"); + fakeRes.testFailed(description, runName + " failed.\nstack\nstack\0"); HashMap metrics = new HashMap(); if (withMetrics) { metrics.put("metric0" + i, TfMetricProtoUtil.stringToMetric("value0" + i)); -- cgit v1.2.3