Skip to content
Open
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
29 changes: 26 additions & 3 deletions wa/workloads/uibench/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ class Uibench(ApkWorkload):
recommend using the APK of UIBench corresponding to the
Android version, enforced through the ``version`` parameter to
this workload.
You can provide multiple activities to run by separating them
with white space.
Comment on lines +42 to +43
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we update this to rather than a space separated string use the list_or_string kind for this parameter? That way we will preserve the existing behavior but also allow the use of proper lists to separate the activities?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure.

"""),
Parameter('duration', kind=int, default=10,
description="""
Expand All @@ -47,6 +49,27 @@ class Uibench(ApkWorkload):
"""),
]

def run(self, context):
super(Uibench, self).run(context)
self.target.sleep(self.duration)
def __init__(self, target, **kwargs):
super(Uibench, self).__init__(target, **kwargs)
if self.activity:
activities = self.activity.split()
self.activity = ''
for activity in activities:
if '.' not in activity:
# If we're receiving just the activity name, it's taken relative to
# the package namespace:
self.activity += ' .' + activity
else:
self.activity += ' ' + activity

def setup(self, context):
if self.activity:
activities = self.activity.split()
for activity in activities:
self.apk._activity = activity
self.logger.info("Starting {} for {} seconds".format(activity, self.duration))
super(Uibench, self).setup(context)
self.target.sleep(self.duration)
Comment on lines +69 to +72
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

By launching the activities here does this form the main part of the workload? In which case we'll want to do the in the run method to allow instrumentation to measure the device during the "active" part of the workload.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It has always been like this. But the difference now is that we sleep in the setup instead of run, which is your point. Let me try to follow on with your suggestion which should address this too. Thanks.

else:
super(Uibench, self).setup(context)
self.target.sleep(self.duration)