summaryrefslogtreecommitdiff
path: root/tools/test.py
diff options
context:
space:
mode:
authorRich Trott <rtrott@gmail.com>2015-11-21 12:37:49 -0800
committerRich Trott <rtrott@gmail.com>2015-11-24 08:17:12 -0800
commit41519fd1a4041e46c42d94c303fcb13fa2fc9344 (patch)
tree3f0498c9290a076b180636dd4c7143dcf5a4f929 /tools/test.py
parent8d37bbe9e9158ada44c0c180db1200f4c62ade2f (diff)
downloadnode-new-41519fd1a4041e46c42d94c303fcb13fa2fc9344.tar.gz
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>
Diffstat (limited to 'tools/test.py')
-rwxr-xr-xtools/test.py16
1 files changed, 11 insertions, 5 deletions
diff --git a/tools/test.py b/tools/test.py
index 49db74727a..4baca769c2 100755
--- a/tools/test.py
+++ b/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():