-
Notifications
You must be signed in to change notification settings - Fork 122
UiBench: Support multiple activities #1187
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
base: master
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -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. | ||
| """), | ||
| Parameter('duration', kind=int, default=10, | ||
| description=""" | ||
|
|
@@ -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
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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) | ||
There was a problem hiding this comment.
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_stringkind for this parameter? That way we will preserve the existing behavior but also allow the use of proper lists to separate the activities?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure.