Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1446)

Unified Diff: scripts/slave/gtest_slave_utils.py

Issue 10636008: Convert runtest to have a built-in annotator. (Closed) Base URL: http://git.chromium.org/chromium/tools/build.git@master
Patch Set: Fix nits. Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « scripts/slave/gtest/test_result.py ('k') | scripts/slave/runtest.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: scripts/slave/gtest_slave_utils.py
diff --git a/scripts/slave/gtest_slave_utils.py b/scripts/slave/gtest_slave_utils.py
index f4e3bde74b64a18700aac482cfd55375a765a31a..b32b4dfe5913ff9bb604b9357f068ccdb6cdcad2 100755
--- a/scripts/slave/gtest_slave_utils.py
+++ b/scripts/slave/gtest_slave_utils.py
@@ -5,7 +5,6 @@
import logging
import os
-import re
import sys
from xml.dom import minidom
@@ -23,71 +22,18 @@ INCREMENTAL_RESULTS_FILENAME = "incremental_results.json"
TIMES_MS_FILENAME = "times_ms.json"
-class GTestUnexpectedDeathTracker(object):
- """A lightweight version of log parser that keeps track of running tests
- for unexpected timeout or crash."""
+def GetResultsMap(observer):
+ """Returns a map of TestResults. Returns an empty map if no current test
+ has been recorded."""
- def __init__(self):
- self._current_test = None
- self._completed = False
- self._test_start = re.compile('\[\s+RUN\s+\] (\w+\.\w+)')
- self._test_ok = re.compile('\[\s+OK\s+\] (\w+\.\w+)')
- self._test_fail = re.compile('\[\s+FAILED\s+\] (\w+\.\w+)')
- self._test_passed = re.compile('\[\s+PASSED\s+\] \d+ tests?.')
-
- self._failed_tests = set()
-
- def OnReceiveLine(self, line):
- results = self._test_start.search(line)
- if results:
- self._current_test = results.group(1)
- return
-
- results = self._test_ok.search(line)
- if results:
- self._current_test = ''
- return
-
- results = self._test_fail.search(line)
- if results:
- self._failed_tests.add(results.group(1))
- self._current_test = ''
- return
-
- results = self._test_passed.search(line)
- if results:
- self._completed = True
- self._current_test = ''
- return
-
- def GetResultsMap(self):
- """Returns a map of TestResults. Returns an empty map if no current test
- has been recorded."""
-
- if not self._current_test:
- return dict()
-
- self._failed_tests.add(self._current_test)
-
- test_results_map = dict()
- for test in self._failed_tests:
- test_results_map[canonical_name(test)] = TestResult(test, failed=True)
-
- return test_results_map
-
- def CompletedWithoutFailure(self):
- """Returns True if all tests completed and no tests failed unexpectedly."""
-
- if not self._completed:
- return False
-
- for test in self._failed_tests:
- test_modifier = TestResult(test, failed=True).modifier
- if test_modifier not in (TestResult.FAILS, TestResult.FLAKY):
- return False
+ if not observer.GetCurrentTest():
+ return dict()
- return True
+ test_results_map = dict()
+ for test in observer.FailedTests(include_fails=True, include_flaky=True):
+ test_results_map[canonical_name(test)] = TestResult(test, failed=True)
+ return test_results_map
def GetResultsMapFromXML(results_xml):
"""Parse the given results XML file and returns a map of TestResults."""
« no previous file with comments | « scripts/slave/gtest/test_result.py ('k') | scripts/slave/runtest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698