comparison tests/run-tests.py @ 32714:ef8d24539612

run-tests: wrap failures in an XUnit 'failure' element This is closer to what most XUnit consumers can understand.
author Siddharth Agarwal <sid0@fb.com>
date Wed, 07 Jun 2017 15:47:06 -0700
parents 04c19c808241
children a4d0e816a672
comparison
equal deleted inserted replaced
32713:28240b75e880 32714:ef8d24539612
2022 cuser, csys, real, start, end = tdata[1:6] 2022 cuser, csys, real, start, end = tdata[1:6]
2023 self.stream.writeln(cols % (start, end, cuser, csys, real, test)) 2023 self.stream.writeln(cols % (start, end, cuser, csys, real, test))
2024 2024
2025 @staticmethod 2025 @staticmethod
2026 def _writexunit(result, outf): 2026 def _writexunit(result, outf):
2027 # See http://llg.cubic.org/docs/junit/ for a reference.
2027 timesd = dict((t[0], t[3]) for t in result.times) 2028 timesd = dict((t[0], t[3]) for t in result.times)
2028 doc = minidom.Document() 2029 doc = minidom.Document()
2029 s = doc.createElement('testsuite') 2030 s = doc.createElement('testsuite')
2030 s.setAttribute('name', 'run-tests') 2031 s.setAttribute('name', 'run-tests')
2031 s.setAttribute('tests', str(result.testsRun)) 2032 s.setAttribute('tests', str(result.testsRun))
2050 # createCDATASection expects a unicode or it will 2051 # createCDATASection expects a unicode or it will
2051 # convert using default conversion rules, which will 2052 # convert using default conversion rules, which will
2052 # fail if string isn't ASCII. 2053 # fail if string isn't ASCII.
2053 err = cdatasafe(err).decode('utf-8', 'replace') 2054 err = cdatasafe(err).decode('utf-8', 'replace')
2054 cd = doc.createCDATASection(err) 2055 cd = doc.createCDATASection(err)
2055 t.appendChild(cd) 2056 # Use 'failure' here instead of 'error' to match errors = 0,
2057 # failures = len(result.failures) in the testsuite element.
2058 failelem = doc.createElement('failure')
2059 failelem.setAttribute('message', 'output changed')
2060 failelem.setAttribute('type', 'output-mismatch')
2061 failelem.appendChild(cd)
2062 t.appendChild(failelem)
2056 s.appendChild(t) 2063 s.appendChild(t)
2057 outf.write(doc.toprettyxml(indent=' ', encoding='utf-8')) 2064 outf.write(doc.toprettyxml(indent=' ', encoding='utf-8'))
2058 2065
2059 @staticmethod 2066 @staticmethod
2060 def _writejson(result, outf): 2067 def _writejson(result, outf):