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

Unified Diff: tools/valgrind/valgrind_test.py

Issue 8688006: Set up python BROWSER_WRAPPER for ui_tests under Dr. Memory (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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/valgrind/drmemory_analyze.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/valgrind/valgrind_test.py
===================================================================
--- tools/valgrind/valgrind_test.py (revision 111527)
+++ tools/valgrind/valgrind_test.py (working copy)
@@ -436,7 +436,7 @@
"in the tool-specific subclass"
def GetAnalyzeResults(self, check_sanity=False):
- # Glob all the files in the "testing.tmp" directory
+ # Glob all the files in the log directory
filenames = glob.glob(self.log_dir + "/" + self.ToolName() + ".*")
# If we have browser wrapper, the logfiles are named as
@@ -879,7 +879,9 @@
proc += ["--"]
if self._options.indirect:
- self.CreateBrowserWrapper(" ".join(proc))
+ # TODO(timurrrr): reuse for TSan on Windows
+ self.CreateBrowserWrapper(" ".join(
+ ["python", "tools/valgrind/browser_wrapper_win.py"] + proc))
proc = []
# Note that self._args begins with the name of the exe to be run.
@@ -891,11 +893,49 @@
os.putenv("BROWSER_WRAPPER", command)
def Analyze(self, check_sanity=False):
- # Glob all the results files in the "testing.tmp" directory
- filenames = glob.glob(self.log_dir + "/*/results.txt")
+ # Use one analyzer for all the log files to avoid printing duplicate reports
+ #
+ # TODO(timurrrr): unify this with Valgrind and other tools when we have
+ # http://code.google.com/p/drmemory/issues/detail?id=684
+ analyzer = drmemory_analyze.DrMemoryAnalyzer()
- analyzer = drmemory_analyze.DrMemoryAnalyze(self._source_dir, filenames)
- ret = analyzer.Report(check_sanity)
+ ret = 0
+ if not self._options.indirect:
+ filenames = glob.glob(self.log_dir + "/*/results.txt")
+
+ ret = analyzer.Report(filenames, None, check_sanity)
+ else:
+ testcases = glob.glob(self.log_dir + "/testcase.*.logs")
+ # If we have browser wrapper, the per-test logdirs are named as
+ # "testcase.wrapper_PID".
+ # Let's extract the list of wrapper_PIDs and name it ppids
+ ppids = set([int(f.split(".")[-2]) for f in testcases])
+
+ for ppid in ppids:
+ testcase_name = None
+ try:
+ f = open(self.log_dir + ("/testcase.%d.name" % ppid))
+ testcase_name = f.read().strip()
+ f.close()
+ except IOError:
+ pass
+ print "====================================================="
+ print " Below is the report for drmemory wrapper PID=%d." % ppid
+ if testcase_name:
+ print " It was used while running the `%s` test." % testcase_name
+ else:
+ # TODO(timurrrr): hm, the PID line is suppressed on Windows...
+ print " You can find the corresponding test"
+ print " by searching the above log for 'PID=%d'" % ppid
+ sys.stdout.flush()
+ ppid_filenames = glob.glob("%s/testcase.%d.logs/*/results.txt" %
+ (self.log_dir, ppid))
+ ret |= analyzer.Report(ppid_filenames, testcase_name, False)
+ print "====================================================="
+ sys.stdout.flush()
+
+ logging.info("Please see http://dev.chromium.org/developers/how-tos/"
+ "using-drmemory for the info on Dr. Memory")
return ret
« no previous file with comments | « tools/valgrind/drmemory_analyze.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698