diff --git a/testrunner/run_command.py b/testrunner/run_command.py
index 8cf385b..7d1f547 100755
--- a/testrunner/run_command.py
+++ b/testrunner/run_command.py
@@ -23,7 +23,6 @@
 import time
 
 # local imports
-import android_build
 import errors
 import logger
 
@@ -129,16 +128,14 @@
   output are always discarded.
 
   Args:
-    binary: basename of the file to be run. It is expected to be under
-            out/host/<os>-<arch>/bin.
+    binary: full path of the file to be run.
     valgrind: If True the command will be run under valgrind.
 
   Returns:
     The command exit code (int)
   """
-  full_path = os.path.join(android_build.GetHostBin(), binary)
   if not valgrind:
-    subproc = subprocess.Popen(full_path, stdout=subprocess.PIPE,
+    subproc = subprocess.Popen(binary, stdout=subprocess.PIPE,
                                stderr=subprocess.STDOUT)
     subproc.wait()
     if subproc.returncode != 0:         # In case of error print the output
diff --git a/testrunner/test_defs/native_test.py b/testrunner/test_defs/native_test.py
index e27f3e6..1541cc1 100644
--- a/testrunner/test_defs/native_test.py
+++ b/testrunner/test_defs/native_test.py
@@ -18,6 +18,7 @@
 """TestSuite for running native Android tests."""
 
 # python imports
+import re
 import os
 
 # local imports
@@ -93,9 +94,9 @@
       full_path = os.path.join(os.sep, "system", "bin", f)
 
       # Single quotes are needed to prevent the shell splitting it.
-      output = self._adb.SendShellCommand("'%s 2>&1;echo -n exit code:$?'" %
-                                          full_path,
-                                          int(self._options.timeout))
+      output = adb.SendShellCommand("'%s 2>&1;echo -n exit code:$?'" %
+                                    full_path,
+                                    int(options.timeout))
       success = output.endswith("exit code:0")
       logger.Log("%s... %s" % (f, success and "ok" or "failed"))
       # Print the captured output when the test failed.
@@ -150,3 +151,23 @@
       if os.path.exists(full_path):
         binaries.append(binary)
     return binaries
+
+  def _RunHostCommand(self, binary, valgrind=False):
+    """Run a command on the host (opt using valgrind).
+
+    Runs the host binary and returns the exit code.
+    If successfull, the output (stdout and stderr) are discarded,
+    but printed in case of error.
+    The command can be run under valgrind in which case all the
+    output are always discarded.
+
+    Args:
+      binary: basename of the file to be run. It is expected to be under
+            out/host/<os>-<arch>/bin.
+      valgrind: If True the command will be run under valgrind.
+
+    Returns:
+      The command exit code (int)
+    """
+    full_path = os.path.join(android_build.GetHostBin(), binary)
+    return run_command.RunHostCommand(full_path, valgrind=valgrind)
