[ https://issues.jenkins-ci.org/browse/JENKINS-12898?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=159576#comment-159576 ]
Chris Withers commented on JENKINS-12898: ----------------------------------------- If it helps, here's a chunk of python that does "the right thing" with valgrind's xml output to get it to pass happily into xUnit's JUnit plugin: import xml.etree.ElementTree as ET doc = ET.parse('/home/cwithers/Downloads/valgrind-59.xml') errors = doc.findall('.//error') suite = ET.Element('testsuite', name='cppunit') suite.set('failures', '0') for error in errors: what = error.find('what') kind = error.find('kind').text if what == None: what = error.find('xwhat/text') test = ET.SubElement(suite, 'testcase', classname="valgrind") err = ET.SubElement(test, 'error', type=kind, message=what.text) stack = [] test_name = None for frame in error.find('stack'): fn_node = frame.find('fn') file_node = frame.find('file') if file_node is None: file_node = frame.find('obj') else: test_name = file_node.text line_node = frame.find('line') stack.append( ' %s (%s:%s)' % ( fn_node.text if fn_node is not None else '???', file_node.text if file_node is not None else '<unknown>', line_node.text if line_node is not None else '???', )) err.text = '\n'.join(stack) suffix = kind + ' ' + error.find('unique').text if test_name is None: test_name = suffix else: test_name = test_name + ' ' + suffix test.set('name', test_name) if not errors: test = ET.SubElement(suite, 'testcase', classname="valgrind", name="memcheck", time="0") suite.set('tests', str(len(suite.findall('.//testcase')))) suite.set('errors', str(len(errors))) with open("valgrind-junit.xml", 'w') as f: f.write(u'<?xml version="1.0" encoding="UTF-8"?>') f.write(ET.tostring(suite, encoding='utf-8')) > Option for Valgrind report to include each problem as a test failure > -------------------------------------------------------------------- > > Key: JENKINS-12898 > URL: https://issues.jenkins-ci.org/browse/JENKINS-12898 > Project: Jenkins > Issue Type: Improvement > Components: xunit > Reporter: Chris Withers > Assignee: gbois > Priority: Minor > > It would be great if Valgrind xml could be turned into > one-test-failure-per-error as an option. > The current support turns the whole valgrind run into one test, which either > passes or fails. > This is great if you're starting from a zero-problem situation, however, if > you're starting from a 1000s-of-problems situation, it would be great to be > able to see the trend graph going down over time. > I believe the proposal I make will address this, and might only need an xslt, > but I don't have the xml skills to make that work... -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jenkins-ci.org/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira