Index: build/android/pylib/gtest/test_package_exe.py |
diff --git a/build/android/pylib/gtest/test_package_exe.py b/build/android/pylib/gtest/test_package_exe.py |
index a458243285e2a0c211d895384f25075525415a8d..f0238b81aa92223d9c33606bb41d733f8442655c 100644 |
--- a/build/android/pylib/gtest/test_package_exe.py |
+++ b/build/android/pylib/gtest/test_package_exe.py |
@@ -22,30 +22,24 @@ class TestPackageExecutable(TestPackage): |
_TEST_RUNNER_RET_VAL_FILE = 'gtest_retval' |
- def __init__(self, adb, device, suite_path_full, tool, symbols_dir=None): |
+ def __init__(self, suite_name, build_type): |
""" |
Args: |
- adb: ADB interface the tests are using. |
- device: Device to run the tests. |
- suite_path_full: Absolute path to a specific test suite to run, |
- empty to run all. |
- tool: Name of the Valgrind tool. |
- symbols_dir: Directory to put the stripped binaries. |
+ suite_name: Name of the test suite (e.g. base_unittests). |
+ build_type: 'Release' or 'Debug'. |
""" |
- TestPackage.__init__(self, adb, device, suite_path_full, tool) |
- self.symbols_dir = symbols_dir |
- |
- def _GetTestSuiteBaseName(self): |
- """Returns the base name of the test suite.""" |
- return os.path.basename(self.suite_path) |
+ TestPackage.__init__(self, suite_name) |
+ product_dir = os.path.join(cmd_helper.OutDirectory.get(), build_type) |
+ self.suite_path = os.path.join(product_dir, suite_name) |
+ self._symbols_dir = os.path.join(product_dir, 'lib.target') |
#override |
- def GetGTestReturnCode(self): |
+ def GetGTestReturnCode(self, adb): |
ret = None |
ret_code = 1 # Assume failure if we can't find it |
ret_code_file = tempfile.NamedTemporaryFile() |
try: |
- if not self.adb.Adb().Pull( |
+ if not adb.Adb().Pull( |
constants.TEST_EXECUTABLE_DIR + '/' + |
TestPackageExecutable._TEST_RUNNER_RET_VAL_FILE, |
ret_code_file.name): |
@@ -60,7 +54,7 @@ class TestPackageExecutable(TestPackage): |
ret = 1 |
return ret |
- def _AddNativeCoverageExports(self): |
+ def _AddNativeCoverageExports(self, adb): |
# export GCOV_PREFIX set the path for native coverage results |
# export GCOV_PREFIX_STRIP indicates how many initial directory |
# names to strip off the hardwired absolute paths. |
@@ -75,16 +69,16 @@ class TestPackageExecutable(TestPackage): |
'No native coverage.') |
return '' |
export_string = ('export GCOV_PREFIX="%s/gcov"\n' % |
- self.adb.GetExternalStorage()) |
+ adb.GetExternalStorage()) |
export_string += 'export GCOV_PREFIX_STRIP=%s\n' % depth |
return export_string |
#override |
- def ClearApplicationState(self): |
- self.adb.KillAllBlocking(self.suite_basename, 30) |
+ def ClearApplicationState(self, adb): |
+ adb.KillAllBlocking(self.suite_name, 30) |
#override |
- def CreateCommandLineFileOnDevice(self, test_filter, test_arguments): |
+ def CreateCommandLineFileOnDevice(self, adb, test_filter, test_arguments): |
tool_wrapper = self.tool.GetTestWrapper() |
sh_script_file = tempfile.NamedTemporaryFile() |
# We need to capture the exit status from the script since adb shell won't |
@@ -94,14 +88,14 @@ class TestPackageExecutable(TestPackage): |
'%s %s/%s --gtest_filter=%s %s\n' |
'echo $? > %s' % |
(constants.TEST_EXECUTABLE_DIR, |
- self._AddNativeCoverageExports(), |
+ self._AddNativeCoverageExports(adb), |
tool_wrapper, constants.TEST_EXECUTABLE_DIR, |
- self.suite_basename, |
+ self.suite_name, |
test_filter, test_arguments, |
TestPackageExecutable._TEST_RUNNER_RET_VAL_FILE)) |
sh_script_file.flush() |
cmd_helper.RunCmd(['chmod', '+x', sh_script_file.name]) |
- self.adb.PushIfNeeded( |
+ adb.PushIfNeeded( |
sh_script_file.name, |
constants.TEST_EXECUTABLE_DIR + '/chrome_test_runner.sh') |
logging.info('Conents of the test runner script: ') |
@@ -109,27 +103,27 @@ class TestPackageExecutable(TestPackage): |
logging.info(' ' + line.rstrip()) |
#override |
- def GetAllTests(self): |
- all_tests = self.adb.RunShellCommand( |
+ def GetAllTests(self, adb): |
+ all_tests = adb.RunShellCommand( |
'%s %s/%s --gtest_list_tests' % |
(self.tool.GetTestWrapper(), |
constants.TEST_EXECUTABLE_DIR, |
- self.suite_basename)) |
+ self.suite_name)) |
return self._ParseGTestListTests(all_tests) |
#override |
- def SpawnTestProcess(self): |
- args = ['adb', '-s', self.device, 'shell', 'sh', |
+ def SpawnTestProcess(self, adb): |
+ args = ['adb', '-s', adb.GetDevice(), 'shell', 'sh', |
constants.TEST_EXECUTABLE_DIR + '/chrome_test_runner.sh'] |
logging.info(args) |
return pexpect.spawn(args[0], args[1:], logfile=sys.stdout) |
#override |
- def Install(self): |
+ def Install(self, adb): |
if self.tool.NeedsDebugInfo(): |
target_name = self.suite_path |
else: |
- target_name = self.suite_path + '_' + self.device + '_stripped' |
+ target_name = self.suite_path + '_' + adb.GetDevice() + '_stripped' |
should_strip = True |
if os.path.isfile(target_name): |
logging.info('Found target file %s' % target_name) |
@@ -145,11 +139,10 @@ class TestPackageExecutable(TestPackage): |
'new one (%s).' % target_name) |
# Whenever we generate a stripped binary, copy to the symbols dir. If we |
# aren't stripping a new binary, assume it's there. |
- if self.symbols_dir: |
- if not os.path.exists(self.symbols_dir): |
- os.makedirs(self.symbols_dir) |
- shutil.copy(self.suite_path, self.symbols_dir) |
+ if not os.path.exists(self._symbols_dir): |
+ os.makedirs(self._symbols_dir) |
+ shutil.copy(self.suite_path, self._symbols_dir) |
strip = os.environ['STRIP'] |
cmd_helper.RunCmd([strip, self.suite_path, '-o', target_name]) |
- test_binary = constants.TEST_EXECUTABLE_DIR + '/' + self.suite_basename |
- self.adb.PushIfNeeded(target_name, test_binary) |
+ test_binary = constants.TEST_EXECUTABLE_DIR + '/' + self.suite_name |
+ adb.PushIfNeeded(target_name, test_binary) |