summaryrefslogtreecommitdiffstats
path: root/tools/valgrind
diff options
context:
space:
mode:
authordank@chromium.org <dank@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-07 14:00:59 +0000
committerdank@chromium.org <dank@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-07 14:00:59 +0000
commit9fd697a913c5fb85f4fadace288bc9fe398e8b94 (patch)
treea68693e1dbba6c7a52991ae2243823c2ecf2aab7 /tools/valgrind
parent5c3bcccb4c6ac538b385e52ab9a00a9fa06615d4 (diff)
downloadchromium_src-9fd697a913c5fb85f4fadace288bc9fe398e8b94.zip
chromium_src-9fd697a913c5fb85f4fadace288bc9fe398e8b94.tar.gz
chromium_src-9fd697a913c5fb85f4fadace288bc9fe398e8b94.tar.bz2
Fix tools/valgrind/chrome_tests.sh to always use --log-file option
so fork() doesn't corrupt log files; lets --generate_suppressions work even with the hacky valgrind fix that makes anything but --log-file crash on child of fork(). Also avoid killing user desktop session if zygote dies! BUG=none, but related to fix for http://crbug.com/15771 TEST=patch valgrind with fork workaround; sh tools/valgrind/chrome_tests.sh --generate_suppressions -t ui logs you out on linux without this. Review URL: http://codereview.chromium.org/155130 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20024 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'tools/valgrind')
-rwxr-xr-xtools/valgrind/valgrind_test.py23
1 files changed, 15 insertions, 8 deletions
diff --git a/tools/valgrind/valgrind_test.py b/tools/valgrind/valgrind_test.py
index cff96f2..e01ae87 100755
--- a/tools/valgrind/valgrind_test.py
+++ b/tools/valgrind/valgrind_test.py
@@ -136,6 +136,19 @@ class Valgrind(object):
def Analyze(self):
# Glob all the files in the "valgrind.tmp" directory
filenames = glob.glob(self.TMP_DIR + "/valgrind.*")
+ # TODO(dkegel): use new xml suppressions feature when it lands
+ if self._generate_suppressions:
+ # Just concatenate all the output files. Lame...
+ for filename in filenames:
+ print "## %s" % filename
+ f = file(filename)
+ while True:
+ line = f.readline()
+ if len(line) == 0:
+ break
+ print line, # comma means don't add newline
+ f.close()
+ return 0
analyzer = valgrind_analyze.ValgrindAnalyze(self._source_dir, filenames, self._options.show_all_leaks)
return analyzer.Report()
@@ -148,9 +161,6 @@ class Valgrind(object):
def RunTestsAndAnalyze(self):
self.PrepareForTest()
self.Execute()
- if self._generate_suppressions:
- logging.info("Skipping analysis to let you look at the raw output...")
- return 0
retcode = self.Analyze()
if retcode:
@@ -224,11 +234,8 @@ class ValgrindLinux(Valgrind):
if not suppression_count:
logging.warning("WARNING: NOT USING SUPPRESSIONS!")
- if not self._generate_suppressions:
- # We don't currently collect suppressions from individual log files,
- # so let it all go to stdout. This leads to occasional
- # corruption; see above TODO.
- proc += ["--log-file=" + self.TMP_DIR + "/valgrind.%p"]
+ proc += ["--log-file=" + self.TMP_DIR + "/valgrind.%p"]
+
# The Valgrind command is constructed.
if self._options.indirect: