Changeset 127478 in webkit
- Timestamp:
- Sep 4, 2012 11:45:35 AM (12 years ago)
- Location:
- trunk/Tools
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Tools/ChangeLog
r127475 r127478 1 2012-09-04 Tony Chang <tony@chromium.org> 2 3 Elide test names when running new-run-webkit-tests 4 https://bugs.webkit.org/show_bug.cgi?id=95626 5 6 Reviewed by Dirk Pranke. 7 8 When the test name exceeds the number of terminal columns, it leaves 9 text on the screen. Avoid this by eliding the test name when running 10 tests. This is similar to what ninja does when compiling. 11 12 * Scripts/webkitpy/layout_tests/views/metered_stream.py: 13 (MeteredStream): 14 (MeteredStream.number_of_columns): Helper method to get number of 15 terminal columns. Won't work on Win32 python, but meh. 16 * Scripts/webkitpy/layout_tests/views/printing.py: 17 (Printer._test_status_line): New method for eliding the text. Doesn't use \u2026 18 because stderr appears to be ascii only. 19 (Printer.print_started_test): Route through _test_status_line. 20 (Printer.print_finished_test): Route through _test_status_line. 21 (Printer._print_test_trace): Route through _test_status_line. 22 (Printer._print_baseline): Route through _test_status_line. 23 * Scripts/webkitpy/layout_tests/views/printing_unittest.py: 24 (test_test_status_line): Test for _test_status_line. 25 1 26 2012-09-04 Martin Robinson <mrobinson@igalia.com> 2 27 -
trunk/Tools/Scripts/webkitpy/layout_tests/views/metered_stream.py
r121505 r127478 32 32 import sys 33 33 import time 34 35 from webkitpy.common.memoized import memoized 34 36 35 37 … … 121 123 self._stream.flush() 122 124 125 @memoized 126 def number_of_columns(self): 127 if not self._isatty: 128 return sys.maxint 129 try: 130 import fcntl 131 import struct 132 import termios 133 packed = fcntl.ioctl(self._stream.fileno(), termios.TIOCGWINSZ, '\0' * 8) 134 _, columns, _, _ = struct.unpack('HHHH', packed) 135 return columns 136 except: 137 return sys.maxint 138 139 123 140 class _LogHandler(logging.Handler): 124 141 def __init__(self, meter): -
trunk/Tools/Scripts/webkitpy/layout_tests/views/printing.py
r125204 r127478 325 325 self._print_quiet("") 326 326 327 def _test_status_line(self, test_name, suffix): 328 format_string = '[%d/%d] %s%s' 329 status_line = format_string % (self.num_completed, self.num_tests, test_name, suffix) 330 if len(status_line) > self._meter.number_of_columns(): 331 overflow_columns = len(status_line) - self._meter.number_of_columns() 332 ellipsis = '...' 333 if len(test_name) < overflow_columns + len(ellipsis) + 2: 334 # We don't have enough space even if we elide, just show the test filename. 335 fs = self._port.host.filesystem 336 test_name = fs.split(test_name)[1] 337 else: 338 new_length = len(test_name) - overflow_columns - len(ellipsis) 339 prefix = int(new_length / 2) 340 test_name = test_name[:prefix] + ellipsis + test_name[-(new_length - prefix):] 341 return format_string % (self.num_completed, self.num_tests, test_name, suffix) 342 327 343 def print_started_test(self, test_name): 328 344 self._running_tests.append(test_name) … … 335 351 else: 336 352 write = self._meter.write_throttled_update 337 write( '[%d/%d] %s%s' % (self.num_completed, self.num_tests,test_name, suffix))353 write(self._test_status_line(test_name, suffix)) 338 354 339 355 def print_finished_test(self, result, expected, exp_str, got_str): … … 347 363 if not expected: 348 364 suffix += ' unexpectedly' + desc[2] 349 self.writeln( "[%d/%d] %s%s" % (self.num_completed, self.num_tests,test_name, suffix))365 self.writeln(self._test_status_line(test_name, suffix)) 350 366 elif self.num_completed == self.num_tests: 351 367 self._meter.write_update('') … … 359 375 360 376 for test_name, suffix in self._completed_tests: 361 self._meter.write_throttled_update( '[%d/%d] %s%s' % (self.num_completed, self.num_tests,test_name, suffix))377 self._meter.write_throttled_update(self._test_status_line(test_name, suffix)) 362 378 self._completed_tests = [] 363 379 self._running_tests.remove(test_name) … … 365 381 def _print_test_trace(self, result, exp_str, got_str): 366 382 test_name = result.test_name 367 self._print_default( '[%d/%d] %s' % (self.num_completed, self.num_tests, test_name))383 self._print_default(self._test_status_line(test_name, '')) 368 384 369 385 base = self._port.lookup_virtual_test_base(test_name) … … 389 405 self._print_default(' %s: %s' % (extension[1:], relpath)) 390 406 391 def _print_progress(self, result_summary, retrying, test_list):392 """Print progress through the tests as determined by --print."""393 407 def _print_unexpected_results(self, unexpected_results): 394 408 # Prints to the buildbot stream -
trunk/Tools/Scripts/webkitpy/layout_tests/views/printing_unittest.py
r125204 r127478 32 32 import optparse 33 33 import StringIO 34 import sys 34 35 import time 35 36 import unittest … … 249 250 pass 250 251 252 def test_test_status_line(self): 253 printer, _, _ = self.get_printer() 254 printer._meter.number_of_columns = lambda: 80 255 actual = printer._test_status_line('fast/dom/HTMLFormElement/associated-elements-after-index-assertion-fail1.html', ' passed') 256 self.assertEquals(80, len(actual)) 257 self.assertEquals(actual, '[0/0] fast/dom/HTMLFormElement/associa...after-index-assertion-fail1.html passed') 258 259 printer._meter.number_of_columns = lambda: 89 260 actual = printer._test_status_line('fast/dom/HTMLFormElement/associated-elements-after-index-assertion-fail1.html', ' passed') 261 self.assertEquals(89, len(actual)) 262 self.assertEquals(actual, '[0/0] fast/dom/HTMLFormElement/associated-...ents-after-index-assertion-fail1.html passed') 263 264 printer._meter.number_of_columns = lambda: sys.maxint 265 actual = printer._test_status_line('fast/dom/HTMLFormElement/associated-elements-after-index-assertion-fail1.html', ' passed') 266 self.assertEquals(90, len(actual)) 267 self.assertEquals(actual, '[0/0] fast/dom/HTMLFormElement/associated-elements-after-index-assertion-fail1.html passed') 268 269 printer._meter.number_of_columns = lambda: 18 270 actual = printer._test_status_line('fast/dom/HTMLFormElement/associated-elements-after-index-assertion-fail1.html', ' passed') 271 self.assertEquals(18, len(actual)) 272 self.assertEquals(actual, '[0/0] f...l passed') 273 274 printer._meter.number_of_columns = lambda: 10 275 actual = printer._test_status_line('fast/dom/HTMLFormElement/associated-elements-after-index-assertion-fail1.html', ' passed') 276 self.assertEquals(actual, '[0/0] associated-elements-after-index-assertion-fail1.html passed') 277 251 278 def test_details(self): 252 279 printer, err, _ = self.get_printer(['--details'])
Note: See TracChangeset
for help on using the changeset viewer.