Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Workloads: Add support for UIBench #938

Merged
merged 2 commits into from May 24, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions wa/framework/workload.py
Original file line number Diff line number Diff line change
Expand Up @@ -257,6 +257,12 @@ def __init__(self, target, **kwargs):
raise ConfigError('Target does not appear to support Android')

super(ApkWorkload, self).__init__(target, **kwargs)

if self.activity is not None and '.' not in self.activity:
# If we're receiving just the activity name, it's taken relative to
# the package namespace:
self.activity = '.' + self.activity

self.apk = PackageHandler(self,
package_name=self.package_name,
variant=self.variant,
Expand Down
52 changes: 52 additions & 0 deletions wa/workloads/uibench/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Copyright 2013-2019 ARM Limited
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

from wa import Parameter, ApkWorkload


class Uibench(ApkWorkload):

name = 'uibench'
description ="""
Runs a particular activity of the UIBench_ workload suite. The suite
is provided by Google as a testbench for the Android UI.

.. _UIBench: https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/tests/UiBench/
"""
package_names = ['com.android.test.uibench']
loading_time = 1

parameters = [
Parameter('activity', kind=str,
description="""
The UIBench activity to be run. Each activity corresponds to
a test. If this parameter is ignored, the application is
launched in its main menu. Please note that the available
activities vary between versions of UIBench (which follow
AOSP versioning) and the availability of the services under
test may depend on the version of the target Android. We
recommend using the APK of UIBench corresponding to the
Android version, enforced through the ``version`` parameter to
this workload.
"""),
Parameter('duration', kind=int, default=10,
description="""
As activities do not finish, this workload will terminate
UIBench after the given duration.
"""),
]

def run(self, context):
super(Uibench, self).run(context)
self.target.sleep(self.duration)