Skip to content

Commit 747013b

Browse files
jbergstroemMyles Borins
authored andcommitted
test: output tap13 instead of almost-tap
Produce a tap13-compatible output which makes it simpler to parse. Output is still readable by the jenkins tap plugin. PR-URL: #9262 Reviewed-By: Gibson Fahnestock <[email protected]> Reviewed-By: Ben Noordhuis <[email protected]> Reviewed-By: Myles Borins <[email protected]>
1 parent eb34f68 commit 747013b

File tree

1 file changed

+29
-10
lines changed

1 file changed

+29
-10
lines changed

‎tools/test.py‎

Lines changed: 29 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -256,11 +256,15 @@ def HasRun(self, output):
256256

257257
classTapProgressIndicator(SimpleProgressIndicator):
258258

259-
def_printDiagnostic(self, messages):
260-
forlinmessages.splitlines():
261-
logger.info('# '+l)
259+
def_printDiagnostic(self, traceback, severity):
260+
logger.info(' severity: %s', severity)
261+
logger.info(' stack: |-')
262+
263+
forlintraceback.splitlines():
264+
logger.info(' '+l)
262265

263266
defStarting(self):
267+
logger.info('TAP version 13')
264268
logger.info('1..%i'%len(self.cases))
265269
self._done=0
266270

@@ -269,6 +273,8 @@ def AboutToRun(self, case):
269273

270274
defHasRun(self, output):
271275
self._done+=1
276+
self.traceback=''
277+
self.severity='ok'
272278

273279
# Print test name as (for example) "parallel/test-assert". Tests that are
274280
# scraped from the addons documentation are all named test.js, making it
@@ -281,19 +287,23 @@ def HasRun(self, output):
281287

282288
ifoutput.UnexpectedOutput():
283289
status_line='not ok %i %s'% (self._done, command)
290+
self.severity='fail'
291+
self.traceback=output.output.stdout+output.output.stderr
292+
284293
ifFLAKYinoutput.test.outcomesandself.flaky_tests_mode==DONTCARE:
285294
status_line=status_line+' # TODO : Fix flaky test'
295+
self.severity='flaky'
296+
286297
logger.info(status_line)
287-
self._printDiagnostic("\n".join(output.diagnostic))
288298

289299
ifoutput.HasCrashed():
290-
self._printDiagnostic(PrintCrashed(output.output.exit_code))
300+
self.severity='crashed'
301+
exit_code=output.output.exit_code
302+
self.traceback="oh no!\nexit code: "+PrintCrashed(exit_code)
291303

292304
ifoutput.HasTimedOut():
293-
self._printDiagnostic('TIMEOUT')
305+
self.severity='fail'
294306

295-
self._printDiagnostic(output.output.stderr)
296-
self._printDiagnostic(output.output.stdout)
297307
else:
298308
skip=skip_regex.search(output.output.stdout)
299309
ifskip:
@@ -304,7 +314,11 @@ def HasRun(self, output):
304314
ifFLAKYinoutput.test.outcomes:
305315
status_line=status_line+' # TODO : Fix flaky test'
306316
logger.info(status_line)
307-
self._printDiagnostic("\n".join(output.diagnostic))
317+
318+
ifoutput.diagnostic:
319+
self.severity='ok'
320+
self.traceback=output.diagnostic
321+
308322

309323
duration=output.test.duration
310324

@@ -313,7 +327,12 @@ def HasRun(self, output):
313327
(duration.seconds+duration.days*24*3600) *10**6) /10**6
314328

315329
logger.info(' ---')
316-
logger.info(' duration_ms: %d.%d'% (total_seconds, duration.microseconds/1000))
330+
logger.info(' duration_ms: %d.%d'%
331+
(total_seconds, duration.microseconds/1000))
332+
ifself.severityisnot'ok'orself.tracebackisnot'':
333+
ifoutput.HasTimedOut():
334+
self.traceback='timeout'
335+
self._printDiagnostic(self.traceback, self.severity)
317336
logger.info(' ...')
318337

319338
defDone(self):

0 commit comments

Comments
(0)