runtest: add --install-filter parameter
--install-filter parameter is a regular expression that will be used to match the compiled apks to determine if it needs to be installed. This is very helpful when there are many apks in a test directory, but you only care about one during development. e.g. fw/base/core/tests/coretests Change-Id: I6a6a04640e549be4d90c9c659e557e7870af6771
This commit is contained in:
@@ -177,6 +177,12 @@ class TestRunner(object):
|
|||||||
" This is the integer user id, e.g. 0 or 10."
|
" This is the integer user id, e.g. 0 or 10."
|
||||||
" If no user is specified, apk will be installed with"
|
" If no user is specified, apk will be installed with"
|
||||||
" adb's default behavior, which is currently all users.")
|
" adb's default behavior, which is currently all users.")
|
||||||
|
parser.add_option("--install-filter", dest="filter_re",
|
||||||
|
help="Regular expression which generated apks have to"
|
||||||
|
" match to be installed to target device. Default is None"
|
||||||
|
" and will install all packages built. This is"
|
||||||
|
" useful when the test path has a lot of apks but you"
|
||||||
|
" only care about one.")
|
||||||
group = optparse.OptionGroup(
|
group = optparse.OptionGroup(
|
||||||
parser, "Targets", "Use these options to direct tests to a specific "
|
parser, "Targets", "Use these options to direct tests to a specific "
|
||||||
"Android target")
|
"Android target")
|
||||||
@@ -318,9 +324,11 @@ class TestRunner(object):
|
|||||||
output = run_command.RunCommand(cmd, return_output=True, timeout_time=600)
|
output = run_command.RunCommand(cmd, return_output=True, timeout_time=600)
|
||||||
run_command.SetAbortOnError(False)
|
run_command.SetAbortOnError(False)
|
||||||
logger.SilentLog(output)
|
logger.SilentLog(output)
|
||||||
self._DoInstall(output, test_requires_permissions)
|
filter_re = re.compile(self._options.filter_re) if self._options.filter_re else None
|
||||||
|
|
||||||
def _DoInstall(self, make_output, test_requires_permissions):
|
self._DoInstall(output, test_requires_permissions, filter_re=filter_re)
|
||||||
|
|
||||||
|
def _DoInstall(self, make_output, test_requires_permissions, filter_re=None):
|
||||||
"""Install artifacts from build onto device.
|
"""Install artifacts from build onto device.
|
||||||
|
|
||||||
Looks for 'install:' text from make output to find artifacts to install.
|
Looks for 'install:' text from make output to find artifacts to install.
|
||||||
@@ -338,6 +346,8 @@ class TestRunner(object):
|
|||||||
# the remaining string is a space-separated list of build-generated files
|
# the remaining string is a space-separated list of build-generated files
|
||||||
install_paths = m.group(2)
|
install_paths = m.group(2)
|
||||||
for install_path in re.split(r'\s+', install_paths):
|
for install_path in re.split(r'\s+', install_paths):
|
||||||
|
if filter_re and not filter_re.match(install_path):
|
||||||
|
continue
|
||||||
if install_path.endswith(".apk"):
|
if install_path.endswith(".apk"):
|
||||||
abs_install_path = os.path.join(self._root_path, install_path)
|
abs_install_path = os.path.join(self._root_path, install_path)
|
||||||
extra_flags = ""
|
extra_flags = ""
|
||||||
|
|||||||
Reference in New Issue
Block a user