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

Side by Side Diff: tools/valgrind/chrome_tests.py

Issue 8463012: Run more tests on the Webkit Layout Valgrind bot and do it in parallel (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 1 month 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/python 1 #!/usr/bin/python
2 # Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2011 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 # chrome_tests.py 6 # chrome_tests.py
7 7
8 ''' Runs various chrome tests through valgrind_test.py.''' 8 ''' Runs various chrome tests through valgrind_test.py.'''
9 9
10 import glob 10 import glob
(...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after
343 out_dir = os.path.join(path_utils.ScriptDir(), "latest") 343 out_dir = os.path.join(path_utils.ScriptDir(), "latest")
344 out_dir = os.path.join(out_dir, chunk_dir) 344 out_dir = os.path.join(out_dir, chunk_dir)
345 if os.path.exists(out_dir): 345 if os.path.exists(out_dir):
346 old_files = glob.glob(os.path.join(out_dir, "*.txt")) 346 old_files = glob.glob(os.path.join(out_dir, "*.txt"))
347 for f in old_files: 347 for f in old_files:
348 os.remove(f) 348 os.remove(f)
349 else: 349 else:
350 os.makedirs(out_dir) 350 os.makedirs(out_dir)
351 script = os.path.join(self._source_dir, "webkit", "tools", "layout_tests", 351 script = os.path.join(self._source_dir, "webkit", "tools", "layout_tests",
352 "run_webkit_tests.py") 352 "run_webkit_tests.py")
353 script_cmd = ["python", script, "--run-singly", "-v", 353 script_cmd = ["python", script, "-v",
354 "--noshow-results", "--time-out-ms=200000", 354 "--run-singly", # run a separate DumpRenderTree for each test
355 "--experimental-fully-parallel",
356 "--time-out-ms=200000",
357 "--noshow-results",
355 "--nocheck-sys-deps"] 358 "--nocheck-sys-deps"]
356 # Pass build mode to run_webkit_tests.py. We aren't passed it directly, 359 # Pass build mode to run_webkit_tests.py. We aren't passed it directly,
357 # so parse it out of build_dir. run_webkit_tests.py can only handle 360 # so parse it out of build_dir. run_webkit_tests.py can only handle
358 # the two values "Release" and "Debug". 361 # the two values "Release" and "Debug".
359 # TODO(Hercules): unify how all our scripts pass around build mode 362 # TODO(Hercules): unify how all our scripts pass around build mode
360 # (--mode / --target / --build_dir / --debug) 363 # (--mode / --target / --build_dir / --debug)
361 if self._options.build_dir.endswith("Debug"): 364 if self._options.build_dir.endswith("Debug"):
362 script_cmd.append("--debug"); 365 script_cmd.append("--debug");
363 if (chunk_size > 0): 366 if (chunk_size > 0):
364 script_cmd.append("--run-chunk=%d:%d" % (chunk_num, chunk_size)) 367 script_cmd.append("--run-chunk=%d:%d" % (chunk_num, chunk_size))
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
475 help="verbose output - enable debug log messages") 478 help="verbose output - enable debug log messages")
476 parser.add_option("", "--tool", dest="valgrind_tool", default="memcheck", 479 parser.add_option("", "--tool", dest="valgrind_tool", default="memcheck",
477 help="specify a valgrind tool to run the tests under") 480 help="specify a valgrind tool to run the tests under")
478 parser.add_option("", "--tool_flags", dest="valgrind_tool_flags", default="", 481 parser.add_option("", "--tool_flags", dest="valgrind_tool_flags", default="",
479 help="specify custom flags for the selected valgrind tool") 482 help="specify custom flags for the selected valgrind tool")
480 parser.add_option("", "--keep_logs", action="store_true", default=False, 483 parser.add_option("", "--keep_logs", action="store_true", default=False,
481 help="store memory tool logs in the <tool>.logs directory " 484 help="store memory tool logs in the <tool>.logs directory "
482 "instead of /tmp.\nThis can be useful for tool " 485 "instead of /tmp.\nThis can be useful for tool "
483 "developers/maintainers.\nPlease note that the <tool>" 486 "developers/maintainers.\nPlease note that the <tool>"
484 ".logs directory will be clobbered on tool startup.") 487 ".logs directory will be clobbered on tool startup.")
485 # My machine can do about 120 layout tests/hour in release mode. 488 parser.add_option("-n", "--num_tests", default=200, type="int",
486 # Let's do 30 minutes worth per run.
487 # The CPU is mostly idle, so perhaps we can raise this when
488 # we figure out how to run them more efficiently.
489 parser.add_option("-n", "--num_tests", default=60, type="int",
490 help="for layout tests: # of subtests per run. 0 for all.") 489 help="for layout tests: # of subtests per run. 0 for all.")
491 490
492 options, args = parser.parse_args() 491 options, args = parser.parse_args()
493 492
494 if options.verbose: 493 if options.verbose:
495 logging_utils.config_root(logging.DEBUG) 494 logging_utils.config_root(logging.DEBUG)
496 else: 495 else:
497 logging_utils.config_root() 496 logging_utils.config_root()
498 497
499 if not options.test: 498 if not options.test:
500 parser.error("--test not specified") 499 parser.error("--test not specified")
501 500
502 if len(options.test) != 1 and options.gtest_filter: 501 if len(options.test) != 1 and options.gtest_filter:
503 parser.error("--gtest_filter and multiple tests don't make sense together") 502 parser.error("--gtest_filter and multiple tests don't make sense together")
504 503
505 for t in options.test: 504 for t in options.test:
506 tests = ChromeTests(options, args, t) 505 tests = ChromeTests(options, args, t)
507 ret = tests.Run() 506 ret = tests.Run()
508 if ret: return ret 507 if ret: return ret
509 return 0 508 return 0
510 509
511 510
512 if __name__ == "__main__": 511 if __name__ == "__main__":
513 ret = _main(sys.argv) 512 ret = _main(sys.argv)
514 sys.exit(ret) 513 sys.exit(ret)
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698