run-tests: add 'diff' entry in json report

This patch adds to the json report the "diff" between expected and observed
result. This diff can be useful for automatically filing bug report on failing
tests.
This commit is contained in:
Laurent Charignon 2016-01-05 13:33:09 -08:00
parent c341de89c9
commit 693c12d5a7
2 changed files with 9 additions and 1 deletions

View File

@ -1731,7 +1731,9 @@ class TextTestRunner(unittest.TextTestRunner):
'cuser': ('%0.3f' % timesd[tc.name][0]),
'csys': ('%0.3f' % timesd[tc.name][1]),
'start': ('%0.3f' % timesd[tc.name][3]),
'end': ('%0.3f' % timesd[tc.name][4])}
'end': ('%0.3f' % timesd[tc.name][4]),
'diff': result.faildata.get(tc.name, ''),
}
outcome[tc.name] = tres
jsonout = json.dumps(outcome, sort_keys=True, indent=4)
fp.writelines(("testreport =", jsonout))

View File

@ -530,6 +530,7 @@ test for --json
"test-failure.t": [\{] (re)
"csys": "\s*[\d\.]{4,5}", ? (re)
"cuser": "\s*[\d\.]{4,5}", ? (re)
"diff": "---.+\+\+\+.+", ? (re)
"end": "\s*[\d\.]{4,5}", ? (re)
"result": "failure", ? (re)
"start": "\s*[\d\.]{4,5}", ? (re)
@ -538,6 +539,7 @@ test for --json
"test-skip.t": {
"csys": "\s*[\d\.]{4,5}", ? (re)
"cuser": "\s*[\d\.]{4,5}", ? (re)
"diff": "", ? (re)
"end": "\s*[\d\.]{4,5}", ? (re)
"result": "skip", ? (re)
"start": "\s*[\d\.]{4,5}", ? (re)
@ -546,6 +548,7 @@ test for --json
"test-success.t": [\{] (re)
"csys": "\s*[\d\.]{4,5}", ? (re)
"cuser": "\s*[\d\.]{4,5}", ? (re)
"diff": "", ? (re)
"end": "\s*[\d\.]{4,5}", ? (re)
"result": "success", ? (re)
"start": "\s*[\d\.]{4,5}", ? (re)
@ -575,6 +578,7 @@ Test that failed test accepted through interactive are properly reported:
"test-failure.t": [\{] (re)
"csys": "\s*[\d\.]{4,5}", ? (re)
"cuser": "\s*[\d\.]{4,5}", ? (re)
"diff": "", ? (re)
"end": "\s*[\d\.]{4,5}", ? (re)
"result": "success", ? (re)
"start": "\s*[\d\.]{4,5}", ? (re)
@ -583,6 +587,7 @@ Test that failed test accepted through interactive are properly reported:
"test-skip.t": {
"csys": "\s*[\d\.]{4,5}", ? (re)
"cuser": "\s*[\d\.]{4,5}", ? (re)
"diff": "", ? (re)
"end": "\s*[\d\.]{4,5}", ? (re)
"result": "skip", ? (re)
"start": "\s*[\d\.]{4,5}", ? (re)
@ -591,6 +596,7 @@ Test that failed test accepted through interactive are properly reported:
"test-success.t": [\{] (re)
"csys": "\s*[\d\.]{4,5}", ? (re)
"cuser": "\s*[\d\.]{4,5}", ? (re)
"diff": "", ? (re)
"end": "\s*[\d\.]{4,5}", ? (re)
"result": "success", ? (re)
"start": "\s*[\d\.]{4,5}", ? (re)