diff options
author | Nicolas Catania <niko@google.com> | 2009-06-04 09:42:03 -0700 |
---|---|---|
committer | Nicolas Catania <niko@google.com> | 2009-06-04 09:45:32 -0700 |
commit | ab80b39f160a07bf7bd18a84c07c7e2acedb7249 (patch) | |
tree | b1b66f9fa114208b262e05ae6b0e21170f252b6b /testrunner/run_command.py | |
parent | ab16d9f7d51be7264f9066bf01846e0c98dfb5df (diff) | |
download | android_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-x | testrunner/run_command.py | 12 |
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(): |