mirror of
https://github.com/ARM-software/workload-automation.git
synced 2025-09-02 19:32:34 +01:00
framework/workload: Add rerun infrastructure
This commit is contained in:
@@ -171,6 +171,10 @@ class ApkWorkload(Workload):
|
|||||||
package_names = []
|
package_names = []
|
||||||
view = None
|
view = None
|
||||||
|
|
||||||
|
# Set this to True to mark that this workload requires the target apk to be run
|
||||||
|
# for initialisation purposes before the main run is performed.
|
||||||
|
requires_rerun = False
|
||||||
|
|
||||||
parameters = [
|
parameters = [
|
||||||
Parameter('package_name', kind=str,
|
Parameter('package_name', kind=str,
|
||||||
description="""
|
description="""
|
||||||
@@ -261,8 +265,18 @@ class ApkWorkload(Workload):
|
|||||||
def setup(self, context):
|
def setup(self, context):
|
||||||
super(ApkWorkload, self).setup(context)
|
super(ApkWorkload, self).setup(context)
|
||||||
self.apk.setup(context)
|
self.apk.setup(context)
|
||||||
|
if self.requires_rerun:
|
||||||
|
self.setup_rerun()
|
||||||
|
self.apk.restart_activity()
|
||||||
time.sleep(self.loading_time)
|
time.sleep(self.loading_time)
|
||||||
|
|
||||||
|
def setup_rerun(self):
|
||||||
|
"""
|
||||||
|
Perform the setup necessary to rerun the workload. Only called if
|
||||||
|
``requires_rerun`` is set.
|
||||||
|
"""
|
||||||
|
pass
|
||||||
|
|
||||||
def teardown(self, context):
|
def teardown(self, context):
|
||||||
super(ApkWorkload, self).teardown(context)
|
super(ApkWorkload, self).teardown(context)
|
||||||
self.apk.teardown()
|
self.apk.teardown()
|
||||||
@@ -786,6 +800,10 @@ class PackageHandler(object):
|
|||||||
raise WorkloadError(output)
|
raise WorkloadError(output)
|
||||||
self.logger.debug(output)
|
self.logger.debug(output)
|
||||||
|
|
||||||
|
def restart_activity(self):
|
||||||
|
self.target.execute('am force-stop {}'.format(self.apk_info.package))
|
||||||
|
self.start_activity()
|
||||||
|
|
||||||
def reset(self, context): # pylint: disable=W0613
|
def reset(self, context): # pylint: disable=W0613
|
||||||
self.target.execute('am force-stop {}'.format(self.apk_info.package))
|
self.target.execute('am force-stop {}'.format(self.apk_info.package))
|
||||||
self.target.execute('pm clear {}'.format(self.apk_info.package))
|
self.target.execute('pm clear {}'.format(self.apk_info.package))
|
||||||
|
Reference in New Issue
Block a user