diff --git a/jenkins/scripts/generate_timeout_xml.py b/jenkins/scripts/generate_timeout_xml.py index 921e12622c..b99ee775b7 100644 --- a/jenkins/scripts/generate_timeout_xml.py +++ b/jenkins/scripts/generate_timeout_xml.py @@ -1,5 +1,6 @@ import argparse import sys +from html import escape def parse_xml_classname_name_file_from_testname(testname, stage_name): @@ -43,14 +44,28 @@ def parse_xml_classname_name_file_from_testname(testname, stage_name): def generate_timeout_xml(testList, stage_name): - xmlContent = f""" - """ + num_tests = len(testList) + # Escape stage_name for XML safety + stage_name_escaped = escape(stage_name, quote=True) + xmlContent = ( + f'\n' + f' ' + ) for test in testList: classname, name, file = parse_xml_classname_name_file_from_testname(test, stage_name) - xmlContent += f""" - Test terminated unexpectedly - """ + # Escape all XML attribute values + classname_escaped = escape(classname, quote=True) + name_escaped = escape(name, quote=True) + file_escaped = escape(file, quote=True) + xmlContent += ( + f'\n' + f' ' + f' Test terminated unexpectedly\n' + f' ' + ) xmlContent += "" print(xmlContent)