Chromium Code Reviews| 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..eb710fc0dc58fe6ff8211f09a8de9c944856fef0 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._device, '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._device + '_stripped' |
|
craigdh
2013/07/29 20:02:08
Shouldn't be using a private member of adb. Add a
frankf
2013/07/29 21:13:30
Done.
|
| 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) |