Changeset 122645 in webkit
- Timestamp:
- Jul 13, 2012 4:39:13 PM (12 years ago)
- Location:
- trunk/Tools
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Tools/ChangeLog
r122643 r122645 1 2012-07-13 Dirk Pranke <dpranke@chromium.org> 2 3 test-webkitpy: move printing-related code out of the runner 4 https://bugs.webkit.org/show_bug.cgi?id=91289 5 6 Reviewed by Ryosuke Niwa. 7 8 More refactoring ... this moves all printing-related stuff out 9 of runner.py and into printer.py. 10 11 No functional changes; covered by existing tests. 12 13 * Scripts/webkitpy/test/main.py: 14 (Tester._run_tests): 15 * Scripts/webkitpy/test/printer.py: 16 (Printer.__init__): 17 (Printer): 18 (Printer.test_name): 19 (Printer.print_started_test): 20 (Printer.print_finished_test): 21 (Printer.print_result): 22 * Scripts/webkitpy/test/runner.py: 23 (Runner.__init__): 24 (Runner.all_test_names): 25 (Runner.run): 26 * Scripts/webkitpy/test/runner_unittest.py: 27 (RunnerTest.test_regular): 28 (RunnerTest.test_verbose): 29 (RunnerTest.test_timing): 30 1 31 2012-07-13 Dirk Pranke <dpranke@chromium.org> 2 32 -
trunk/Tools/Scripts/webkitpy/test/main.py
r122643 r122645 115 115 116 116 test_suite = unittest.TestSuite(suites) 117 test_runner = Runner(self.printer .stream, self._options, loader)117 test_runner = Runner(self.printer, self._options, loader) 118 118 119 119 _log.debug("Running the tests.") -
trunk/Tools/Scripts/webkitpy/test/printer.py
r122643 r122645 23 23 24 24 import logging 25 import re 25 26 import StringIO 26 27 … … 34 35 self.stream = stream 35 36 self.options = options 37 self.test_description = re.compile("(\w+) \(([\w.]+)\)") 38 39 def test_name(self, test): 40 m = self.test_description.match(str(test)) 41 return "%s.%s" % (m.group(2), m.group(1)) 36 42 37 43 def configure(self, options): … … 93 99 outputcapture.OutputCapture.stream_wrapper = _CaptureAndPassThroughStream 94 100 101 def print_started_test(self, test_name): 102 if self.options.verbose: 103 self.stream.write(test_name) 104 105 def print_finished_test(self, result, test_name, test_time, failure, err): 106 timing = '' 107 if self.options.timing: 108 timing = ' %.4fs' % test_time 109 if self.options.verbose: 110 if failure: 111 msg = ' failed' 112 elif err: 113 msg = ' erred' 114 else: 115 msg = ' passed' 116 self.stream.write(msg + timing + '\n') 117 else: 118 if failure: 119 msg = 'F' 120 elif err: 121 msg = 'E' 122 else: 123 msg = '.' 124 self.stream.write(msg) 125 126 def print_result(self, result, run_time): 127 self.stream.write('\n') 128 129 for (test, err) in result.errors: 130 self.stream.write("=" * 80 + '\n') 131 self.stream.write("ERROR: " + self.test_name(test) + '\n') 132 self.stream.write("-" * 80 + '\n') 133 for line in err.splitlines(): 134 self.stream.write(line + '\n') 135 self.stream.write('\n') 136 137 for (test, failure) in result.failures: 138 self.stream.write("=" * 80 + '\n') 139 self.stream.write("FAILURE: " + self.test_name(test) + '\n') 140 self.stream.write("-" * 80 + '\n') 141 for line in failure.splitlines(): 142 self.stream.write(line + '\n') 143 self.stream.write('\n') 144 145 self.stream.write('-' * 80 + '\n') 146 self.stream.write('Ran %d test%s in %.3fs\n' % 147 (result.testsRun, result.testsRun != 1 and "s" or "", run_time)) 148 149 if result.wasSuccessful(): 150 self.stream.write('\nOK\n') 151 else: 152 self.stream.write('FAILED (failures=%d, errors=%d)\n' % 153 (len(result.failures), len(result.errors))) 154 95 155 96 156 class _CaptureAndPassThroughStream(object): -
trunk/Tools/Scripts/webkitpy/test/runner.py
r122548 r122645 24 24 25 25 import logging 26 import re27 26 import time 28 27 import unittest … … 33 32 34 33 class Runner(object): 35 def __init__(self, stream, options, loader):34 def __init__(self, printer, options, loader): 36 35 self.options = options 37 self. stream = stream36 self.printer = printer 38 37 self.loader = loader 39 self.test_description = re.compile("(\w+) \(([\w.]+)\)")40 41 def test_name(self, test):42 m = self.test_description.match(str(test))43 return "%s.%s" % (m.group(2), m.group(1))44 38 45 39 def all_test_names(self, suite): … … 49 43 names.extend(self.all_test_names(t)) 50 44 else: 51 names.append(self. test_name(suite))45 names.append(self.printer.test_name(suite)) 52 46 return names 53 47 … … 58 52 stop = run_start_time 59 53 for test_name in all_test_names: 60 if self.options.verbose: 61 self.stream.write(test_name) 54 self.printer.print_started_test(test_name) 62 55 num_failures = len(result.failures) 63 56 num_errors = len(result.errors) … … 76 69 elif len(result.errors) > num_errors: 77 70 err = result.errors[num_errors][1] 78 self. write_result(result, test_name, stop - start, failure, err)71 self.printer.print_finished_test(result, test_name, stop - start, failure, err) 79 72 80 self. write_summary(result, stop - run_start_time)73 self.printer.print_result(result, stop - run_start_time) 81 74 82 75 return result 83 84 def write_result(self, result, test_name, test_time, failure=None, err=None):85 timing = ''86 if self.options.timing:87 timing = ' %.4fs' % test_time88 if self.options.verbose:89 if failure:90 msg = ' failed'91 elif err:92 msg = ' erred'93 else:94 msg = ' passed'95 self.stream.write(msg + timing + '\n')96 else:97 if failure:98 msg = 'F'99 elif err:100 msg = 'E'101 else:102 msg = '.'103 self.stream.write(msg)104 105 def write_summary(self, result, run_time):106 self.stream.write('\n')107 108 for (test, err) in result.errors:109 self.stream.write("=" * 80 + '\n')110 self.stream.write("ERROR: " + self.test_name(test) + '\n')111 self.stream.write("-" * 80 + '\n')112 for line in err.splitlines():113 self.stream.write(line + '\n')114 self.stream.write('\n')115 116 for (test, failure) in result.failures:117 self.stream.write("=" * 80 + '\n')118 self.stream.write("FAILURE: " + self.test_name(test) + '\n')119 self.stream.write("-" * 80 + '\n')120 for line in failure.splitlines():121 self.stream.write(line + '\n')122 self.stream.write('\n')123 124 self.stream.write('-' * 80 + '\n')125 self.stream.write('Ran %d test%s in %.3fs\n' %126 (result.testsRun, result.testsRun != 1 and "s" or "", run_time))127 128 if result.wasSuccessful():129 self.stream.write('\nOK\n')130 else:131 self.stream.write('FAILED (failures=%d, errors=%d)\n' %132 (len(result.failures), len(result.errors))) -
trunk/Tools/Scripts/webkitpy/test/runner_unittest.py
r122548 r122645 26 26 27 27 from webkitpy.tool.mocktool import MockOptions 28 from webkitpy.test.printer import Printer 28 29 from webkitpy.test.runner import Runner 29 30 … … 75 76 ('test2 (Foo)', 'F', 'test2\nfailed'), 76 77 ('test3 (Foo)', 'E', 'test3\nerred')) 77 result = Runner( stream, options, loader).run(loader.top_suite())78 result = Runner(Printer(stream, options), options, loader).run(loader.top_suite()) 78 79 self.assertFalse(result.wasSuccessful()) 79 80 self.assertEquals(result.testsRun, 3) … … 88 89 ('test2 (Foo)', 'F', 'test2\nfailed'), 89 90 ('test3 (Foo)', 'E', 'test3\nerred')) 90 result = Runner( stream, options, loader).run(loader.top_suite())91 result = Runner(Printer(stream, options), options, loader).run(loader.top_suite()) 91 92 self.assertFalse(result.wasSuccessful()) 92 93 self.assertEquals(result.testsRun, 3) … … 101 102 ('test2 (Foo)', 'F', 'test2\nfailed'), 102 103 ('test3 (Foo)', 'E', 'test3\nerred')) 103 result = Runner( stream, options, loader).run(loader.top_suite())104 result = Runner(Printer(stream, options), options, loader).run(loader.top_suite()) 104 105 self.assertFalse(result.wasSuccessful()) 105 106 self.assertEquals(result.testsRun, 3)
Note: See TracChangeset
for help on using the changeset viewer.