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

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

Issue 343002: Added printing of a couple of links to documentation in case warnings are rep... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 11 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) 2006-2008 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2006-2008 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 # valgrind_test.py 6 # valgrind_test.py
7 7
8 '''Runs an exe through Valgrind and puts the intermediate files in a 8 '''Runs an exe through Valgrind and puts the intermediate files in a
9 directory. 9 directory.
10 ''' 10 '''
(...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after
359 359
360 return ret 360 return ret
361 361
362 def Analyze(self): 362 def Analyze(self):
363 # Glob all the files in the "valgrind.tmp" directory 363 # Glob all the files in the "valgrind.tmp" directory
364 filenames = glob.glob(self.TMP_DIR + "/memcheck.*") 364 filenames = glob.glob(self.TMP_DIR + "/memcheck.*")
365 365
366 use_gdb = (sys.platform == 'darwin') 366 use_gdb = (sys.platform == 'darwin')
367 analyzer = memcheck_analyze.MemcheckAnalyze(self._source_dir, filenames, sel f._options.show_all_leaks, 367 analyzer = memcheck_analyze.MemcheckAnalyze(self._source_dir, filenames, sel f._options.show_all_leaks,
368 use_gdb=use_gdb) 368 use_gdb=use_gdb)
369 return analyzer.Report() 369 ret = analyzer.Report()
370 if ret != 0:
371 logging.info("Please see http://dev.chromium.org/developers/how-tos/"
372 "using-valgrind for the info on Memcheck/Valgrind")
373 return ret
stuartmorgan 2009/10/27 20:28:27 The return value is non-zero if there are leaks or
370 374
371 class ThreadSanitizer(ValgrindTool): 375 class ThreadSanitizer(ValgrindTool):
372 """ThreadSanitizer""" 376 """ThreadSanitizer"""
373 377
374 def __init__(self): 378 def __init__(self):
375 ValgrindTool.__init__(self) 379 ValgrindTool.__init__(self)
376 380
377 def ToolName(self): 381 def ToolName(self):
378 return "tsan" 382 return "tsan"
379 383
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
429 if platform_suffix == 'mac': 433 if platform_suffix == 'mac':
430 ret += ["--show-pc=yes"] 434 ret += ["--show-pc=yes"]
431 435
432 return ret 436 return ret
433 437
434 def Analyze(self): 438 def Analyze(self):
435 filenames = glob.glob(self.TMP_DIR + "/tsan.*") 439 filenames = glob.glob(self.TMP_DIR + "/tsan.*")
436 use_gdb = (sys.platform == 'darwin') 440 use_gdb = (sys.platform == 'darwin')
437 analyzer = tsan_analyze.TsanAnalyze(self._source_dir, filenames, 441 analyzer = tsan_analyze.TsanAnalyze(self._source_dir, filenames,
438 use_gdb=use_gdb) 442 use_gdb=use_gdb)
439 return analyzer.Report() 443 ret = analyzer.Report()
444 if ret != 0:
445 logging.info("Please see http://dev.chromium.org/developers/how-tos/"
446 "using-valgrind/threadsanitizer for the info on "
447 "ThreadSanitizer")
448 return ret
440 449
441 450
442 class ToolFactory: 451 class ToolFactory:
443 def Create(self, tool_name): 452 def Create(self, tool_name):
444 if tool_name == "memcheck": 453 if tool_name == "memcheck":
445 return Memcheck() 454 return Memcheck()
446 if tool_name == "tsan": 455 if tool_name == "tsan":
447 if sys.platform != 'linux2': 456 if sys.platform != 'linux2':
448 logging.info("WARNING: ThreadSanitizer is not working yet on Mac") 457 logging.info("WARNING: ThreadSanitizer may be unstable on Mac.")
458 logging.info("See http://code.google.com/p/data-race-test/wiki/"
459 "ThreadSanitizerOnMacOsx for the details")
449 return ThreadSanitizer() 460 return ThreadSanitizer()
450 raise RuntimeError, "Unknown tool" \ 461 raise RuntimeError, "Unknown tool" \
451 "(tool=%s, platform=%s)" % \ 462 "(tool=%s, platform=%s)" % \
452 (tool_name, sys.platform) 463 (tool_name, sys.platform)
453 464
454 def RunTool(argv): 465 def RunTool(argv):
455 # TODO(timurrrr): customize optparse instead 466 # TODO(timurrrr): customize optparse instead
456 tool_name = "memcheck" 467 tool_name = "memcheck"
457 args = argv[1:] 468 args = argv[1:]
458 for arg in args: 469 for arg in args:
459 if arg.startswith("--tool="): 470 if arg.startswith("--tool="):
460 tool_name = arg[7:] 471 tool_name = arg[7:]
461 args.remove(arg) 472 args.remove(arg)
462 break 473 break
463 474
464 tool = ToolFactory().Create(tool_name) 475 tool = ToolFactory().Create(tool_name)
465 return tool.Main(args) 476 return tool.Main(args)
466 477
467 if __name__ == "__main__": 478 if __name__ == "__main__":
468 if sys.argv.count("-v") > 0 or sys.argv.count("--verbose") > 0: 479 if sys.argv.count("-v") > 0 or sys.argv.count("--verbose") > 0:
469 google.logging_utils.config_root(logging.DEBUG) 480 google.logging_utils.config_root(logging.DEBUG)
470 else: 481 else:
471 google.logging_utils.config_root() 482 google.logging_utils.config_root()
472 # TODO(timurrrr): valgrind tools may use -v/--verbose as well 483 # TODO(timurrrr): valgrind tools may use -v/--verbose as well
473 484
474 ret = RunTool(sys.argv) 485 ret = RunTool(sys.argv)
475 sys.exit(ret) 486 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