| OLD | NEW | 
|---|
| 1 # Copyright 2012 the V8 project authors. All rights reserved. | 1 # Copyright 2012 the V8 project authors. All rights reserved. | 
| 2 # Redistribution and use in source and binary forms, with or without | 2 # Redistribution and use in source and binary forms, with or without | 
| 3 # modification, are permitted provided that the following conditions are | 3 # modification, are permitted provided that the following conditions are | 
| 4 # met: | 4 # met: | 
| 5 # | 5 # | 
| 6 #     * Redistributions of source code must retain the above copyright | 6 #     * Redistributions of source code must retain the above copyright | 
| 7 #       notice, this list of conditions and the following disclaimer. | 7 #       notice, this list of conditions and the following disclaimer. | 
| 8 #     * Redistributions in binary form must reproduce the above | 8 #     * Redistributions in binary form must reproduce the above | 
| 9 #       copyright notice, this list of conditions and the following | 9 #       copyright notice, this list of conditions and the following | 
| 10 #       disclaimer in the documentation and/or other materials provided | 10 #       disclaimer in the documentation and/or other materials provided | 
| (...skipping 16 matching lines...) Expand all  Loading... | 
| 27 | 27 | 
| 28 | 28 | 
| 29 from functools import wraps | 29 from functools import wraps | 
| 30 import json | 30 import json | 
| 31 import os | 31 import os | 
| 32 import sys | 32 import sys | 
| 33 import time | 33 import time | 
| 34 | 34 | 
| 35 from . import execution | 35 from . import execution | 
| 36 from . import junit_output | 36 from . import junit_output | 
|  | 37 from . import statusfile | 
| 37 | 38 | 
| 38 | 39 | 
| 39 ABS_PATH_PREFIX = os.getcwd() + os.sep | 40 ABS_PATH_PREFIX = os.getcwd() + os.sep | 
| 40 | 41 | 
| 41 | 42 | 
| 42 class ProgressIndicator(object): | 43 class ProgressIndicator(object): | 
| 43 | 44 | 
| 44   def __init__(self): | 45   def __init__(self): | 
| 45     self.runner = None | 46     self.runner = None | 
| 46 | 47 | 
| (...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 322     self.results = [] | 323     self.results = [] | 
| 323     self.tests = [] | 324     self.tests = [] | 
| 324 | 325 | 
| 325   def Done(self): | 326   def Done(self): | 
| 326     complete_results = [] | 327     complete_results = [] | 
| 327     if os.path.exists(self.json_test_results): | 328     if os.path.exists(self.json_test_results): | 
| 328       with open(self.json_test_results, "r") as f: | 329       with open(self.json_test_results, "r") as f: | 
| 329         # Buildbot might start out with an empty file. | 330         # Buildbot might start out with an empty file. | 
| 330         complete_results = json.loads(f.read() or "[]") | 331         complete_results = json.loads(f.read() or "[]") | 
| 331 | 332 | 
|  | 333     duration_mean = None | 
|  | 334     if self.tests: | 
|  | 335       # Get duration mean. | 
|  | 336       duration_mean = ( | 
|  | 337           sum(t.duration for t in self.tests) / float(len(self.tests))) | 
|  | 338 | 
| 332     # Sort tests by duration. | 339     # Sort tests by duration. | 
| 333     timed_tests = [t for t in self.tests if t.duration is not None] | 340     timed_tests = [t for t in self.tests if t.duration is not None] | 
| 334     timed_tests.sort(lambda a, b: cmp(b.duration, a.duration)) | 341     timed_tests.sort(lambda a, b: cmp(b.duration, a.duration)) | 
| 335     slowest_tests = [ | 342     slowest_tests = [ | 
| 336       { | 343       { | 
| 337         "name": test.GetLabel(), | 344         "name": test.GetLabel(), | 
| 338         "flags": test.flags, | 345         "flags": test.flags, | 
| 339         "command": self._EscapeCommand(test).replace(ABS_PATH_PREFIX, ""), | 346         "command": self._EscapeCommand(test).replace(ABS_PATH_PREFIX, ""), | 
| 340         "duration": test.duration, | 347         "duration": test.duration, | 
|  | 348         "marked_slow": statusfile.IsSlow(test.outcomes), | 
| 341       } for test in timed_tests[:20] | 349       } for test in timed_tests[:20] | 
| 342     ] | 350     ] | 
| 343 | 351 | 
| 344     complete_results.append({ | 352     complete_results.append({ | 
| 345       "arch": self.arch, | 353       "arch": self.arch, | 
| 346       "mode": self.mode, | 354       "mode": self.mode, | 
| 347       "results": self.results, | 355       "results": self.results, | 
| 348       "slowest_tests": slowest_tests, | 356       "slowest_tests": slowest_tests, | 
|  | 357       "duration_mean": duration_mean, | 
|  | 358       "test_total": len(self.tests), | 
| 349     }) | 359     }) | 
| 350 | 360 | 
| 351     with open(self.json_test_results, "w") as f: | 361     with open(self.json_test_results, "w") as f: | 
| 352       f.write(json.dumps(complete_results)) | 362       f.write(json.dumps(complete_results)) | 
| 353 | 363 | 
| 354   def HasRun(self, test, has_unexpected_output): | 364   def HasRun(self, test, has_unexpected_output): | 
| 355     # Buffer all tests for sorting the durations in the end. | 365     # Buffer all tests for sorting the durations in the end. | 
| 356     self.tests.append(test) | 366     self.tests.append(test) | 
| 357     if not has_unexpected_output: | 367     if not has_unexpected_output: | 
| 358       # Omit tests that run as expected. Passing tests of reruns after failures | 368       # Omit tests that run as expected. Passing tests of reruns after failures | 
| (...skipping 19 matching lines...) Expand all  Loading... | 
| 378       "variant": test.variant, | 388       "variant": test.variant, | 
| 379     }) | 389     }) | 
| 380 | 390 | 
| 381 | 391 | 
| 382 PROGRESS_INDICATORS = { | 392 PROGRESS_INDICATORS = { | 
| 383   'verbose': VerboseProgressIndicator, | 393   'verbose': VerboseProgressIndicator, | 
| 384   'dots': DotsProgressIndicator, | 394   'dots': DotsProgressIndicator, | 
| 385   'color': ColorProgressIndicator, | 395   'color': ColorProgressIndicator, | 
| 386   'mono': MonochromeProgressIndicator | 396   'mono': MonochromeProgressIndicator | 
| 387 } | 397 } | 
| OLD | NEW | 
|---|