Restart app before running monkey test.
Also remove dependency on env variables during import of apk_info. BUG= Review URL: https://codereview.chromium.org/11273099 git-svn-id: http://src.chromium.org/svn/trunk/src/build@165022 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This commit is contained in:
Родитель
e53aeb0290
Коммит
6e13a4b587
|
@ -508,7 +508,8 @@ class AndroidCommands(object):
|
|||
def StartActivity(self, package, activity, wait_for_completion=False,
|
||||
action='android.intent.action.VIEW',
|
||||
category=None, data=None,
|
||||
extras=None, trace_file_name=None):
|
||||
extras=None, trace_file_name=None,
|
||||
force_stop=False):
|
||||
"""Starts |package|'s activity on the device.
|
||||
|
||||
Args:
|
||||
|
@ -521,8 +522,12 @@ class AndroidCommands(object):
|
|||
data: Data string to pass to activity (e.g. 'http://www.example.com/').
|
||||
extras: Dict of extras to pass to activity. Values are significant.
|
||||
trace_file_name: If used, turns on and saves the trace to this file name.
|
||||
force_stop: force stop the target app before starting the activity (-S
|
||||
flag).
|
||||
"""
|
||||
cmd = 'am start -a %s' % action
|
||||
if force_stop:
|
||||
cmd += ' -S'
|
||||
if wait_for_completion:
|
||||
cmd += ' -W'
|
||||
if category:
|
||||
|
@ -1080,4 +1085,3 @@ class NewLineNormalizer(object):
|
|||
|
||||
def flush(self):
|
||||
self._output.flush()
|
||||
|
||||
|
|
|
@ -13,19 +13,21 @@ import cmd_helper
|
|||
|
||||
class ApkInfo(object):
|
||||
"""Helper class for inspecting APKs."""
|
||||
_PROGUARD_PATH = os.path.join(os.environ['ANDROID_SDK_ROOT'],
|
||||
'tools/proguard/bin/proguard.sh')
|
||||
if not os.path.exists(_PROGUARD_PATH):
|
||||
_PROGUARD_PATH = os.path.join(os.environ['ANDROID_BUILD_TOP'],
|
||||
'external/proguard/bin/proguard.sh')
|
||||
_PROGUARD_CLASS_RE = re.compile(r'\s*?- Program class:\s*([\S]+)$')
|
||||
_PROGUARD_METHOD_RE = re.compile(r'\s*?- Method:\s*(\S*)[(].*$')
|
||||
_PROGUARD_ANNOTATION_RE = re.compile(r'\s*?- Annotation \[L(\S*);\]:$')
|
||||
_PROGUARD_ANNOTATION_CONST_RE = re.compile(r'\s*?- Constant element value.*$')
|
||||
_PROGUARD_ANNOTATION_VALUE_RE = re.compile(r'\s*?- \S+? \[(.*)\]$')
|
||||
_AAPT_PACKAGE_NAME_RE = re.compile(r'package: .*name=\'(\S*)\'')
|
||||
|
||||
def __init__(self, apk_path, jar_path):
|
||||
self._PROGUARD_PATH = os.path.join(os.environ['ANDROID_SDK_ROOT'],
|
||||
'tools/proguard/bin/proguard.sh')
|
||||
if not os.path.exists(self._PROGUARD_PATH):
|
||||
self._PROGUARD_PATH = os.path.join(os.environ['ANDROID_BUILD_TOP'],
|
||||
'external/proguard/bin/proguard.sh')
|
||||
self._PROGUARD_CLASS_RE = re.compile(r'\s*?- Program class:\s*([\S]+)$')
|
||||
self._PROGUARD_METHOD_RE = re.compile(r'\s*?- Method:\s*(\S*)[(].*$')
|
||||
self._PROGUARD_ANNOTATION_RE = re.compile(r'\s*?- Annotation \[L(\S*);\]:$')
|
||||
self._PROGUARD_ANNOTATION_CONST_RE = (
|
||||
re.compile(r'\s*?- Constant element value.*$'))
|
||||
self._PROGUARD_ANNOTATION_VALUE_RE = re.compile(r'\s*?- \S+? \[(.*)\]$')
|
||||
self._AAPT_PACKAGE_NAME_RE = re.compile(r'package: .*name=\'(\S*)\'')
|
||||
|
||||
if not os.path.exists(apk_path):
|
||||
raise Exception('%s not found, please build it' % apk_path)
|
||||
self._apk_path = apk_path
|
||||
|
|
|
@ -25,7 +25,8 @@ class MonkeyTest(python_test_base.PythonTestBase):
|
|||
self.adb.StartActivity(self.options.package_name,
|
||||
self.options.activity_name,
|
||||
wait_for_completion=True,
|
||||
action='android.intent.action.MAIN')
|
||||
action='android.intent.action.MAIN',
|
||||
force_stop=True)
|
||||
|
||||
# Chrome crashes are not always caught by Monkey test runner.
|
||||
# Verify Chrome has the same PID before and after the test.
|
||||
|
@ -90,7 +91,6 @@ class MonkeyTest(python_test_base.PythonTestBase):
|
|||
return self.adb.RunShellCommand(' '.join(cmd), timeout_time=timeout_ms)
|
||||
|
||||
|
||||
|
||||
def DispatchPythonTests(options):
|
||||
"""Dispatches the Monkey tests, sharding it if there multiple devices."""
|
||||
logger = logging.getLogger()
|
||||
|
@ -104,13 +104,14 @@ def DispatchPythonTests(options):
|
|||
# Actually run the tests.
|
||||
logging.debug('Running monkey tests.')
|
||||
available_tests *= len(attached_devices)
|
||||
options.ensure_value('shard_retries',1)
|
||||
options.ensure_value('shard_retries', 1)
|
||||
sharder = python_test_sharder.PythonTestSharder(
|
||||
attached_devices, available_tests, options)
|
||||
result = sharder.RunShardedTests()
|
||||
result.LogFull('Monkey', 'Monkey', options.build_type)
|
||||
result.PrintAnnotation()
|
||||
|
||||
|
||||
def main():
|
||||
desc = 'Run the Monkey tests on 1 or more devices.'
|
||||
parser = optparse.OptionParser(description=desc)
|
||||
|
|
Загрузка…
Ссылка в новой задаче