Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(316)

Side by Side Diff: build/android/pylib/gtest/test_package_apk.py

Issue 19799003: [android] Instumentation tests determine whether to install test apk based on Md5Sum. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: automatically install package to be tested Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 return pexpect.spawn('adb', args, timeout=timeout, logfile=logfile) 75 return pexpect.spawn('adb', args, timeout=timeout, logfile=logfile)
76 76
77 def _StartActivity(self): 77 def _StartActivity(self):
78 self.adb.StartActivity( 78 self.adb.StartActivity(
79 self._test_apk_package_name, 79 self._test_apk_package_name,
80 self._test_activity_name, 80 self._test_activity_name,
81 wait_for_completion=True, 81 wait_for_completion=True,
82 action='android.intent.action.MAIN', 82 action='android.intent.action.MAIN',
83 force_stop=True) 83 force_stop=True)
84 84
85 def _NeedsInstall(self):
86 installed_apk_path = self.adb.GetApplicationPath(
87 self._test_apk_package_name)
88 if installed_apk_path:
89 return not self.adb.CheckMd5Sum(
90 self.test_suite_full, installed_apk_path, ignore_paths=True)
91 else:
92 return True
93
94 def _GetTestSuiteBaseName(self): 85 def _GetTestSuiteBaseName(self):
95 """Returns the base name of the test suite.""" 86 """Returns the base name of the test suite."""
96 # APK test suite names end with '-debug.apk' 87 # APK test suite names end with '-debug.apk'
97 return os.path.basename(self.test_suite).rsplit('-debug', 1)[0] 88 return os.path.basename(self.test_suite).rsplit('-debug', 1)[0]
98 89
99 #override 90 #override
100 def ClearApplicationState(self): 91 def ClearApplicationState(self):
101 self.adb.ClearApplicationState(self._test_apk_package_name) 92 self.adb.ClearApplicationState(self._test_apk_package_name)
102 93
103 #override 94 #override
(...skipping 26 matching lines...) Expand all
130 self._ClearFifo() 121 self._ClearFifo()
131 self._StartActivity() 122 self._StartActivity()
132 finally: 123 finally:
133 self.tool.CleanUpEnvironment() 124 self.tool.CleanUpEnvironment()
134 logfile = android_commands.NewLineNormalizer(sys.stdout) 125 logfile = android_commands.NewLineNormalizer(sys.stdout)
135 return self._WatchFifo(timeout=10, logfile=logfile) 126 return self._WatchFifo(timeout=10, logfile=logfile)
136 127
137 #override 128 #override
138 def Install(self): 129 def Install(self):
139 self.tool.CopyFiles() 130 self.tool.CopyFiles()
140 if self._NeedsInstall(): 131 self.adb.ManagedInstall(self.test_suite_full, False,
141 # Always uninstall the previous one (by activity name); we don't 132 package_name=self._test_apk_package_name)
142 # know what was embedded in it.
143 self.adb.ManagedInstall(self.test_suite_full, False,
144 package_name=self._test_apk_package_name)
145 133
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698