From 67e074665f384601d065ee18309134e005cb8d56 Mon Sep 17 00:00:00 2001 From: Alex Balik Date: Mon, 24 Jun 2024 20:32:41 +0000 Subject: [PATCH] Escape invalid XML chars in testCase and testSuite names --- .../contrib_rules_jvm/junit5/TestCaseXmlRenderer.java | 2 +- .../contrib_rules_jvm/junit5/TestSuiteXmlRenderer.java | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/java/src/com/github/bazel_contrib/contrib_rules_jvm/junit5/TestCaseXmlRenderer.java b/java/src/com/github/bazel_contrib/contrib_rules_jvm/junit5/TestCaseXmlRenderer.java index d868c448..01a6dc91 100644 --- a/java/src/com/github/bazel_contrib/contrib_rules_jvm/junit5/TestCaseXmlRenderer.java +++ b/java/src/com/github/bazel_contrib/contrib_rules_jvm/junit5/TestCaseXmlRenderer.java @@ -47,7 +47,7 @@ public void toXml(XMLStreamWriter xml, TestData test) throws XMLStreamException } xml.writeStartElement("testcase"); - xml.writeAttribute("name", name); + xml.writeAttribute("name", escapeIllegalCharacters(name)); xml.writeAttribute("classname", LegacyReportingUtils.getClassName(testPlan, id)); /* @Nullable */ Duration maybeDuration = test.getDuration(); diff --git a/java/src/com/github/bazel_contrib/contrib_rules_jvm/junit5/TestSuiteXmlRenderer.java b/java/src/com/github/bazel_contrib/contrib_rules_jvm/junit5/TestSuiteXmlRenderer.java index 95c5b738..a1263852 100644 --- a/java/src/com/github/bazel_contrib/contrib_rules_jvm/junit5/TestSuiteXmlRenderer.java +++ b/java/src/com/github/bazel_contrib/contrib_rules_jvm/junit5/TestSuiteXmlRenderer.java @@ -1,5 +1,6 @@ package com.github.bazel_contrib.contrib_rules_jvm.junit5; +import static com.github.bazel_contrib.contrib_rules_jvm.junit5.SafeXml.escapeIllegalCharacters; import static com.github.bazel_contrib.contrib_rules_jvm.junit5.SafeXml.writeTextElement; import java.util.Collection; @@ -19,7 +20,7 @@ public void toXml(XMLStreamWriter xml, TestData suite, Collection test throws XMLStreamException { xml.writeStartElement("testsuite"); - xml.writeAttribute("name", suite.getId().getLegacyReportingName()); + xml.writeAttribute("name", escapeIllegalCharacters(suite.getId().getLegacyReportingName())); xml.writeAttribute("tests", String.valueOf(tests.size())); int errors = 0;