summaryrefslogtreecommitdiffstats
path: root/testrunner/run_command.py
diff options
context:
space:
mode:
authorNicolas Catania <niko@google.com>2009-06-04 09:42:03 -0700
committerNicolas Catania <niko@google.com>2009-06-04 09:45:32 -0700
commitab80b39f160a07bf7bd18a84c07c7e2acedb7249 (patch)
treeb1b66f9fa114208b262e05ae6b0e21170f252b6b /testrunner/run_command.py
parentab16d9f7d51be7264f9066bf01846e0c98dfb5df (diff)
downloadandroid_development-ab80b39f160a07bf7bd18a84c07c7e2acedb7249.tar.gz
android_development-ab80b39f160a07bf7bd18a84c07c7e2acedb7249.tar.bz2
android_development-ab80b39f160a07bf7bd18a84c07c7e2acedb7249.zip
Fixed valgrind handling issue.
Turns out valgrind always exits with error code 0 even when a leak is detected. Instead we are now looking for an empty output.
Diffstat (limited to 'testrunner/run_command.py')
-rwxr-xr-xtestrunner/run_command.py12
1 files changed, 9 insertions, 3 deletions
diff --git a/testrunner/run_command.py b/testrunner/run_command.py
index ead80f1bd..8cf385b87 100755
--- a/testrunner/run_command.py
+++ b/testrunner/run_command.py
@@ -146,10 +146,16 @@ def RunHostCommand(binary, valgrind=False):
return subproc.returncode
else:
# Need the full path to valgrind to avoid other versions on the system.
- subproc = subprocess.Popen(["/usr/bin/valgrind", "-q", full_path],
+ subproc = subprocess.Popen(["/usr/bin/valgrind", "--tool=memcheck",
+ "--leak-check=yes", "-q", full_path],
stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
- subproc.wait()
- return subproc.returncode
+ # Cannot rely on the retcode of valgrind. Instead look for an empty output.
+ valgrind_out = subproc.communicate()[0].strip()
+ if valgrind_out:
+ print valgrind_out
+ return 1
+ else:
+ return 0
def HasValgrind():