OLD | NEW |
---|---|
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 | 5 |
6 import json | 6 import json |
7 import logging | 7 import logging |
8 import os | 8 import os |
9 import time | 9 import time |
10 import traceback | 10 import traceback |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
47 class TestResults(object): | 47 class TestResults(object): |
48 """Results of a test run.""" | 48 """Results of a test run.""" |
49 | 49 |
50 def __init__(self): | 50 def __init__(self): |
51 self.ok = [] | 51 self.ok = [] |
52 self.failed = [] | 52 self.failed = [] |
53 self.crashed = [] | 53 self.crashed = [] |
54 self.unknown = [] | 54 self.unknown = [] |
55 self.timed_out = False | 55 self.timed_out = False |
56 self.overall_fail = False | 56 self.overall_fail = False |
57 self.device_except = False | |
bulach
2012/10/23 09:30:56
if you agree with the above:
self.device_exceptio
| |
57 | 58 |
58 @staticmethod | 59 @staticmethod |
59 def FromRun(ok=None, failed=None, crashed=None, timed_out=False, | 60 def FromRun(ok=None, failed=None, crashed=None, timed_out=False, |
60 overall_fail=False): | 61 overall_fail=False, device_except=False): |
bulach
2012/10/23 09:30:56
nit: device_exception=None
| |
61 ret = TestResults() | 62 ret = TestResults() |
62 ret.ok = ok or [] | 63 ret.ok = ok or [] |
63 ret.failed = failed or [] | 64 ret.failed = failed or [] |
64 ret.crashed = crashed or [] | 65 ret.crashed = crashed or [] |
65 ret.timed_out = timed_out | 66 ret.timed_out = timed_out |
66 ret.overall_fail = overall_fail | 67 ret.overall_fail = overall_fail |
68 ret.device_except = device_except | |
67 return ret | 69 return ret |
68 | 70 |
69 @staticmethod | 71 @staticmethod |
70 def FromTestResults(results): | 72 def FromTestResults(results): |
71 """Combines a list of results in a single TestResults object.""" | 73 """Combines a list of results in a single TestResults object.""" |
72 ret = TestResults() | 74 ret = TestResults() |
73 for t in results: | 75 for t in results: |
74 ret.ok += t.ok | 76 ret.ok += t.ok |
75 ret.failed += t.failed | 77 ret.failed += t.failed |
76 ret.crashed += t.crashed | 78 ret.crashed += t.crashed |
77 ret.unknown += t.unknown | 79 ret.unknown += t.unknown |
78 if t.timed_out: | 80 if t.timed_out: |
79 ret.timed_out = True | 81 ret.timed_out = True |
80 if t.overall_fail: | 82 if t.overall_fail: |
81 ret.overall_fail = True | 83 ret.overall_fail = True |
82 return ret | 84 return ret |
83 | 85 |
84 @staticmethod | 86 @staticmethod |
87 def HasDeviceExcept(results): | |
88 for t in results: | |
89 if t.device_except: | |
90 return True | |
91 | |
92 return False | |
bulach
2012/10/23 09:30:56
I think this could be:
return any(filter(lambda t
yongsheng
2012/10/23 12:58:14
good.
| |
93 | |
94 @staticmethod | |
85 def FromPythonException(test_name, start_date_ms, exc_info): | 95 def FromPythonException(test_name, start_date_ms, exc_info): |
86 """Constructs a TestResults with exception information for the given test. | 96 """Constructs a TestResults with exception information for the given test. |
87 | 97 |
88 Args: | 98 Args: |
89 test_name: name of the test which raised an exception. | 99 test_name: name of the test which raised an exception. |
90 start_date_ms: the starting time for the test. | 100 start_date_ms: the starting time for the test. |
91 exc_info: exception info, ostensibly from sys.exc_info(). | 101 exc_info: exception info, ostensibly from sys.exc_info(). |
92 | 102 |
93 Returns: | 103 Returns: |
94 A TestResults object with a SingleTestResult in the failed list. | 104 A TestResults object with a SingleTestResult in the failed list. |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
184 return summary_string | 194 return summary_string |
185 | 195 |
186 def PrintAnnotation(self): | 196 def PrintAnnotation(self): |
187 """Print buildbot annotations for test results.""" | 197 """Print buildbot annotations for test results.""" |
188 if self.timed_out: | 198 if self.timed_out: |
189 buildbot_report.PrintWarning() | 199 buildbot_report.PrintWarning() |
190 elif self.failed or self.crashed or self.overall_fail: | 200 elif self.failed or self.crashed or self.overall_fail: |
191 buildbot_report.PrintError() | 201 buildbot_report.PrintError() |
192 else: | 202 else: |
193 print 'Step success!' # No annotation needed | 203 print 'Step success!' # No annotation needed |
OLD | NEW |