diff options
author | dank@chromium.org <dank@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-07 14:00:59 +0000 |
---|---|---|
committer | dank@chromium.org <dank@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-07 14:00:59 +0000 |
commit | 9fd697a913c5fb85f4fadace288bc9fe398e8b94 (patch) | |
tree | a68693e1dbba6c7a52991ae2243823c2ecf2aab7 /tools/valgrind | |
parent | 5c3bcccb4c6ac538b385e52ab9a00a9fa06615d4 (diff) | |
download | chromium_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-x | tools/valgrind/valgrind_test.py | 23 |
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: |