Index: build/android/pylib/gtest/test_runner.py |
diff --git a/build/android/pylib/gtest/test_runner.py b/build/android/pylib/gtest/test_runner.py |
index 56e7449c55fd07dd69a9a72ad3835f06292d06fd..66feea64bcea8d20f82f4fe9354e5e63cf2eee97 100644 |
--- a/build/android/pylib/gtest/test_runner.py |
+++ b/build/android/pylib/gtest/test_runner.py |
@@ -79,8 +79,8 @@ class TestRunner(base_test_runner.BaseTestRunner): |
# Test case statuses. |
re_run = re.compile('\[ RUN \] ?(.*)\r\n') |
- re_fail = re.compile('\[ FAILED \] ?(.*)\r\n') |
- re_ok = re.compile('\[ OK \] ?(.*?) .*\r\n') |
+ re_fail = re.compile('\[ FAILED \] ?(.*?)( \((\d+) ms\))?\r\r\n') |
+ re_ok = re.compile('\[ OK \] ?(.*?)( \((\d+) ms\))?\r\r\n') |
# Test run statuses. |
re_passed = re.compile('\[ PASSED \] ?(.*)\r\n') |
@@ -93,6 +93,7 @@ class TestRunner(base_test_runner.BaseTestRunner): |
try: |
while True: |
full_test_name = None |
+ |
found = p.expect([re_run, re_passed, re_runner_fail], |
timeout=self._timeout) |
if found == 1: # re_passed |
@@ -105,17 +106,20 @@ class TestRunner(base_test_runner.BaseTestRunner): |
log = p.before.replace('\r', '') |
if found == 0: # re_ok |
if full_test_name == p.match.group(1).replace('\r', ''): |
+ duration_ms = int(p.match.group(3)) if p.match.group(3) else 0 |
results.AddResult(base_test_result.BaseTestResult( |
full_test_name, base_test_result.ResultType.PASS, |
- log=log)) |
+ duration=duration_ms, log=log)) |
elif found == 2: # re_crash |
results.AddResult(base_test_result.BaseTestResult( |
full_test_name, base_test_result.ResultType.CRASH, |
log=log)) |
break |
else: # re_fail |
+ duration_ms = int(p.match.group(3)) if p.match.group(3) else 0 |
results.AddResult(base_test_result.BaseTestResult( |
- full_test_name, base_test_result.ResultType.FAIL, log=log)) |
+ full_test_name, base_test_result.ResultType.FAIL, |
+ duration=duration_ms, log=log)) |
except pexpect.EOF: |
logging.error('Test terminated - EOF') |
# We're here because either the device went offline, or the test harness |