Browse Source

test: add TAP diagnostic message for retried tests

Tests on SmartOS are sometimes retried due to a SmartOS issue on CI.
When this happens, a TAP diagnostic message is written.

PR-URL: https://github.com/nodejs/node/pull/3960
Reviewed-By: Fedor Indutny <fedor@indutny.com>
process-exit-stdio-flushing
Rich Trott 9 years ago
parent
commit
41519fd1a4
  1. 16
      tools/test.py

16
tools/test.py

@ -145,6 +145,7 @@ class ProgressIndicator(object):
sys.platform == 'sunos5' and
'ECONNREFUSED' in output.output.stderr):
output = case.Run()
output.diagnostic.append('ECONNREFUSED received, test retried')
case.duration = (datetime.now() - start)
except IOError, e:
return
@ -255,6 +256,10 @@ class DotsProgressIndicator(SimpleProgressIndicator):
class TapProgressIndicator(SimpleProgressIndicator):
def _printDiagnostic(self, messages):
for l in messages.splitlines():
logger.info('# ' + l)
def Starting(self):
logger.info('1..%i' % len(self.cases))
self._done = 0
@ -270,14 +275,13 @@ class TapProgressIndicator(SimpleProgressIndicator):
if FLAKY in output.test.outcomes and self.flaky_tests_mode == DONTCARE:
status_line = status_line + ' # TODO : Fix flaky test'
logger.info(status_line)
self._printDiagnostic("\n".join(output.diagnostic))
if output.HasTimedOut():
logger.info('# TIMEOUT')
self._printDiagnostic('TIMEOUT')
for l in output.output.stderr.splitlines():
logger.info('#' + l)
for l in output.output.stdout.splitlines():
logger.info('#' + l)
self._printDiagnostic(output.output.stderr)
self._printDiagnostic(output.output.stdout)
else:
skip = skip_regex.search(output.output.stdout)
if skip:
@ -288,6 +292,7 @@ class TapProgressIndicator(SimpleProgressIndicator):
if FLAKY in output.test.outcomes:
status_line = status_line + ' # TODO : Fix flaky test'
logger.info(status_line)
self._printDiagnostic("\n".join(output.diagnostic))
duration = output.test.duration
@ -490,6 +495,7 @@ class TestOutput(object):
self.command = command
self.output = output
self.store_unexpected_output = store_unexpected_output
self.diagnostic = []
def UnexpectedOutput(self):
if self.HasCrashed():

Loading…
Cancel
Save