diff options
| -rw-r--r-- | meta/lib/oeqa/buildperf/base.py | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/meta/lib/oeqa/buildperf/base.py b/meta/lib/oeqa/buildperf/base.py index de0ee40a23..efbe20c500 100644 --- a/meta/lib/oeqa/buildperf/base.py +++ b/meta/lib/oeqa/buildperf/base.py | |||
| @@ -269,6 +269,7 @@ class BuildPerfTestResult(unittest.TextTestResult): | |||
| 269 | 269 | ||
| 270 | test_cnt = 0 | 270 | test_cnt = 0 |
| 271 | for status, (test, reason) in self.all_results(): | 271 | for status, (test, reason) in self.all_results(): |
| 272 | test_cnt += 1 | ||
| 272 | testcase = ET.SubElement(suite, 'testcase') | 273 | testcase = ET.SubElement(suite, 'testcase') |
| 273 | testcase.set('classname', test.__module__ + '.' + test.__class__.__name__) | 274 | testcase.set('classname', test.__module__ + '.' + test.__class__.__name__) |
| 274 | testcase.set('name', test.name) | 275 | testcase.set('name', test.name) |
| @@ -287,7 +288,27 @@ class BuildPerfTestResult(unittest.TextTestResult): | |||
| 287 | result.text = reason | 288 | result.text = reason |
| 288 | elif status not in ('SUCCESS', 'UNEXPECTED_SUCCESS'): | 289 | elif status not in ('SUCCESS', 'UNEXPECTED_SUCCESS'): |
| 289 | raise TypeError("BUG: invalid test status '%s'" % status) | 290 | raise TypeError("BUG: invalid test status '%s'" % status) |
| 290 | test_cnt += 1 | 291 | |
| 292 | for data in test.measurements: | ||
| 293 | measurement = ET.SubElement(testcase, data['type']) | ||
| 294 | measurement.set('name', data['name']) | ||
| 295 | measurement.set('legend', data['legend']) | ||
| 296 | vals = data['values'] | ||
| 297 | if data['type'] == BuildPerfTestCase.SYSRES: | ||
| 298 | ET.SubElement(measurement, 'time', | ||
| 299 | timestamp=vals['start_time'].isoformat()).text = \ | ||
| 300 | str(vals['elapsed_time'].total_seconds()) | ||
| 301 | if 'buildstats_file' in vals: | ||
| 302 | ET.SubElement(measurement, 'buildstats_file').text = vals['buildstats_file'] | ||
| 303 | attrib = dict((k, str(v)) for k, v in vals['iostat'].items()) | ||
| 304 | ET.SubElement(measurement, 'iostat', attrib=attrib) | ||
| 305 | attrib = dict((k, str(v)) for k, v in vals['rusage'].items()) | ||
| 306 | ET.SubElement(measurement, 'rusage', attrib=attrib) | ||
| 307 | elif data['type'] == BuildPerfTestCase.DISKUSAGE: | ||
| 308 | ET.SubElement(measurement, 'size').text = str(vals['size']) | ||
| 309 | else: | ||
| 310 | raise TypeError('BUG: unsupported measurement type') | ||
| 311 | |||
| 291 | suite.set('tests', str(test_cnt)) | 312 | suite.set('tests', str(test_cnt)) |
| 292 | 313 | ||
| 293 | # Use minidom for pretty-printing | 314 | # Use minidom for pretty-printing |
