| OLD | NEW |
| 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 """Defines TestPackageApk to help run APK-based native tests.""" | 5 """Defines TestPackageApk to help run APK-based native tests.""" |
| 6 | 6 |
| 7 import logging | 7 import logging |
| 8 import os | 8 import os |
| 9 import shlex | 9 import shlex |
| 10 import sys | 10 import sys |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 81 return pexpect.spawn('adb', args, timeout=timeout, logfile=logfile) | 81 return pexpect.spawn('adb', args, timeout=timeout, logfile=logfile) |
| 82 | 82 |
| 83 def _StartActivity(self): | 83 def _StartActivity(self): |
| 84 self.adb.StartActivity( | 84 self.adb.StartActivity( |
| 85 self._test_apk_package_name, | 85 self._test_apk_package_name, |
| 86 self._test_activity_name, | 86 self._test_activity_name, |
| 87 wait_for_completion=True, | 87 wait_for_completion=True, |
| 88 action='android.intent.action.MAIN', | 88 action='android.intent.action.MAIN', |
| 89 force_stop=True) | 89 force_stop=True) |
| 90 | 90 |
| 91 def _NeedsInstall(self): | |
| 92 installed_apk_path = self.adb.GetApplicationPath( | |
| 93 self._test_apk_package_name) | |
| 94 if installed_apk_path: | |
| 95 return not self.adb.CheckMd5Sum( | |
| 96 self.suite_path_full, installed_apk_path, ignore_paths=True) | |
| 97 else: | |
| 98 return True | |
| 99 | |
| 100 def _GetTestSuiteBaseName(self): | 91 def _GetTestSuiteBaseName(self): |
| 101 """Returns the base name of the test suite.""" | 92 """Returns the base name of the test suite.""" |
| 102 # APK test suite names end with '-debug.apk' | 93 # APK test suite names end with '-debug.apk' |
| 103 return os.path.basename(self.suite_path).rsplit('-debug', 1)[0] | 94 return os.path.basename(self.suite_path).rsplit('-debug', 1)[0] |
| 104 | 95 |
| 105 #override | 96 #override |
| 106 def ClearApplicationState(self): | 97 def ClearApplicationState(self): |
| 107 self.adb.ClearApplicationState(self._test_apk_package_name) | 98 self.adb.ClearApplicationState(self._test_apk_package_name) |
| 108 | 99 |
| 109 #override | 100 #override |
| (...skipping 26 matching lines...) Expand all Loading... |
| 136 self._ClearFifo() | 127 self._ClearFifo() |
| 137 self._StartActivity() | 128 self._StartActivity() |
| 138 finally: | 129 finally: |
| 139 self.tool.CleanUpEnvironment() | 130 self.tool.CleanUpEnvironment() |
| 140 logfile = android_commands.NewLineNormalizer(sys.stdout) | 131 logfile = android_commands.NewLineNormalizer(sys.stdout) |
| 141 return self._WatchFifo(timeout=10, logfile=logfile) | 132 return self._WatchFifo(timeout=10, logfile=logfile) |
| 142 | 133 |
| 143 #override | 134 #override |
| 144 def Install(self): | 135 def Install(self): |
| 145 self.tool.CopyFiles() | 136 self.tool.CopyFiles() |
| 146 if self._NeedsInstall(): | 137 self.adb.ManagedInstall(self.suite_path_full, False, |
| 147 # Always uninstall the previous one (by activity name); we don't | 138 package_name=self._test_apk_package_name) |
| 148 # know what was embedded in it. | 139 |
| 149 self.adb.ManagedInstall(self.suite_path_full, False, | |
| 150 package_name=self._test_apk_package_name) | |
| OLD | NEW |