summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-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: