Bug 1435433 - Print master test summary after android mochitests when runByManifest; r=jmaher

This commit is contained in:
Geoff Brown 2018-02-07 13:33:43 -07:00
parent f76273fef7
commit 8b8a2994e8
2 changed files with 30 additions and 2 deletions

View File

@ -278,7 +278,7 @@ class RemoteAutomation(Automation):
# device manager process
dm = None
def __init__(self, dm, cmd, stdout=None, stderr=None, env=None, cwd=None, app=None,
messageLogger=None):
messageLogger=None, counts=None):
self.dm = dm
self.stdoutlen = 0
self.lastTestSeen = "remoteautomation.py"
@ -286,6 +286,12 @@ class RemoteAutomation(Automation):
self.messageLogger = messageLogger
self.utilityPath = None
self.counts = counts
if self.counts is not None:
self.counts['pass'] = 0
self.counts['fail'] = 0
self.counts['todo'] = 0
if (self.proc is None):
if cmd[0] == 'am':
self.proc = stdout
@ -360,6 +366,22 @@ class RemoteAutomation(Automation):
for message in parsed_messages:
if isinstance(message, dict) and message.get('action') == 'test_start':
self.lastTestSeen = message['test']
if isinstance(message, dict) and message.get('action') == 'log':
line = message['message'].strip()
if self.counts:
m = re.match(".*:\s*(\d*)", line)
if m:
try:
val = int(m.group(1))
if "Passed:" in line:
self.counts['pass'] += val
elif "Failed:" in line:
self.counts['fail'] += val
elif "Todo:" in line:
self.counts['todo'] += val
except:
pass
return True
@property

View File

@ -296,6 +296,10 @@ class MochiRemote(MochitestDesktop):
kwargs.pop('marionette_args', None)
ret, _ = self._automation.runApp(*args, **kwargs)
self.countpass += self.counts['pass']
self.countfail += self.counts['fail']
self.counttodo += self.counts['todo']
return ret, None
@ -303,7 +307,8 @@ def run_test_harness(parser, options):
parser.validate(options)
message_logger = MessageLogger(logger=None)
process_args = {'messageLogger': message_logger}
counts = dict()
process_args = {'messageLogger': message_logger, 'counts': counts}
auto = RemoteAutomation(None, "fennec", processArgs=process_args)
if options is None:
@ -323,6 +328,7 @@ def run_test_harness(parser, options):
log = mochitest.log
message_logger.logger = log
mochitest.message_logger = message_logger
mochitest.counts = counts
# Check that Firefox is installed
expected = options.app.split('/')[-1]