aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Lib/test/libregrtest/single.py
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2024-05-20 17:05:39 -0400
committerGitHub <noreply@github.com>2024-05-20 17:05:39 -0400
commit9257731f5d3e9d4f99e314b23a14506563e167d7 (patch)
treea98db26b692c3f952d4919e4aa0851a3ed863503 /Lib/test/libregrtest/single.py
parentbf17986096491b9ca14c214ed4885340e7857e12 (diff)
downloadcpython-9257731f5d3e9d4f99e314b23a14506563e167d7.tar.gz
cpython-9257731f5d3e9d4f99e314b23a14506563e167d7.zip
gh-119050: Add XML support to libregrtest refleak checker (#119148)
regrtest test runner: Add XML support to the refleak checker (-R option). * run_unittest() now stores XML elements as string, rather than objects, in support.junit_xml_list. * runtest_refleak() now saves/restores XML strings before/after checking for reference leaks. Save XML into a temporary file.
Diffstat (limited to 'Lib/test/libregrtest/single.py')
-rw-r--r--Lib/test/libregrtest/single.py9
1 files changed, 5 insertions, 4 deletions
diff --git a/Lib/test/libregrtest/single.py b/Lib/test/libregrtest/single.py
index fc2f2716ad4..adc8f1f4555 100644
--- a/Lib/test/libregrtest/single.py
+++ b/Lib/test/libregrtest/single.py
@@ -57,7 +57,10 @@ def _run_suite(suite):
result = runner.run(suite)
if support.junit_xml_list is not None:
- support.junit_xml_list.append(result.get_xml_element())
+ import xml.etree.ElementTree as ET
+ xml_elem = result.get_xml_element()
+ xml_str = ET.tostring(xml_elem).decode('ascii')
+ support.junit_xml_list.append(xml_str)
if not result.testsRun and not result.skipped and not result.errors:
raise support.TestDidNotRun
@@ -280,9 +283,7 @@ def _runtest(result: TestResult, runtests: RunTests) -> None:
xml_list = support.junit_xml_list
if xml_list:
- import xml.etree.ElementTree as ET
- result.xml_data = [ET.tostring(x).decode('us-ascii')
- for x in xml_list]
+ result.xml_data = xml_list
finally:
if use_timeout:
faulthandler.cancel_dump_traceback_later()