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

Side by Side Diff: tools/telemetry/telemetry/unittest/gtest_progress_reporter.py

Issue 460733002: Revert 288541 "For consistency with benchmark, rename unittest.o..." (Closed) Base URL: svn://svn.chromium.org/chrome/branches/2120/src/
Patch Set: Created 6 years, 4 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5 import logging
6 import time
7 import unittest
8
9 from telemetry.unittest import progress_reporter
10 from telemetry.util import exception_formatter
11
12
13 def _FormatTestName(test):
14 chunks = test.id().split('.')[2:]
15 return '.'.join(chunks)
16
17
18 class GTestProgressReporter(progress_reporter.ProgressReporter):
19 def __init__(self, output_stream):
20 super(GTestProgressReporter, self).__init__(output_stream)
21 self._suite_start_time = None
22 self._test_start_time = None
23
24 def _Print(self, *args):
25 print >> self._output_stream, ' '.join(map(str, args))
26 self._output_stream.flush()
27
28 def _TestTimeMs(self):
29 return (time.time() - self._test_start_time) * 1000
30
31 def StartTest(self, test):
32 self._Print('[ RUN ]', _FormatTestName(test))
33 self._test_start_time = time.time()
34
35 def StartTestSuite(self, suite):
36 contains_test_suites = any(isinstance(test, unittest.TestSuite)
37 for test in suite)
38 if not contains_test_suites:
39 test_count = len([test for test in suite])
40 unit = 'test' if test_count == 1 else 'tests'
41 self._Print('[----------]', test_count, unit)
42 self._suite_start_time = time.time()
43
44 def StopTestSuite(self, suite):
45 contains_test_suites = any(isinstance(test, unittest.TestSuite)
46 for test in suite)
47 if not contains_test_suites:
48 test_count = len([test for test in suite])
49 unit = 'test' if test_count == 1 else 'tests'
50 elapsed_ms = (time.time() - self._suite_start_time) * 1000
51 self._Print('[----------]', test_count, unit,
52 '(%d ms total)' % elapsed_ms)
53 self._Print()
54
55 def StopTestRun(self, result):
56 unit = 'test' if len(result.successes) == 1 else 'tests'
57 self._Print('[ PASSED ]', len(result.successes), '%s.' % unit)
58 if result.errors or result.failures:
59 all_errors = result.errors[:]
60 all_errors.extend(result.failures)
61 unit = 'test' if len(all_errors) == 1 else 'tests'
62 self._Print('[ FAILED ]', len(all_errors), '%s, listed below:' % unit)
63 for test, _ in all_errors:
64 self._Print('[ FAILED ] ', _FormatTestName(test))
65 if not result.wasSuccessful():
66 self._Print()
67 count = len(result.errors) + len(result.failures)
68 unit = 'TEST' if count == 1 else 'TESTS'
69 self._Print(count, 'FAILED', unit)
70 self._Print()
71
72 def Error(self, test, err):
73 self.Failure(test, err)
74
75 def Failure(self, test, err):
76 exception_formatter.PrintFormattedException(*err)
77 test_name = _FormatTestName(test)
78 self._Print('[ FAILED ]', test_name, '(%0.f ms)' % self._TestTimeMs())
79
80 def Success(self, test):
81 test_name = _FormatTestName(test)
82 self._Print('[ OK ]', test_name, '(%0.f ms)' % self._TestTimeMs())
83
84 def Skip(self, test, reason):
85 test_name = _FormatTestName(test)
86 logging.warning('===== SKIPPING TEST %s: %s =====', test_name, reason)
87 self.Success(test)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698