mirror of
https://github.com/ARM-software/workload-automation.git
synced 2025-01-31 10:11:17 +00:00
commit
dc5cf6d7b8
@ -80,8 +80,8 @@ class GlobalParameterAlias(object):
|
|||||||
other_param.kind != param.kind):
|
other_param.kind != param.kind):
|
||||||
message = 'Duplicate global alias {} declared in {} and {} extensions with different types'
|
message = 'Duplicate global alias {} declared in {} and {} extensions with different types'
|
||||||
raise LoaderError(message.format(self.name, ext.name, other_ext.name))
|
raise LoaderError(message.format(self.name, ext.name, other_ext.name))
|
||||||
if param.name != other_param.name:
|
if param.kind != other_param.kind:
|
||||||
message = 'Two params {} in {} and {} in {} both declare global alias {}'
|
message = 'Two params {} in {} and {} in {} both declare global alias {}, and are of different kinds'
|
||||||
raise LoaderError(message.format(param.name, ext.name,
|
raise LoaderError(message.format(param.name, ext.name,
|
||||||
other_param.name, other_ext.name, self.name))
|
other_param.name, other_ext.name, self.name))
|
||||||
|
|
||||||
|
@ -180,17 +180,15 @@ class DependencyFileGetter(ResourceGetter):
|
|||||||
resource_type = 'file'
|
resource_type = 'file'
|
||||||
relative_path = '' # May be overridden by subclasses.
|
relative_path = '' # May be overridden by subclasses.
|
||||||
|
|
||||||
default_mount_point = '/'
|
|
||||||
priority = GetterPriority.remote
|
priority = GetterPriority.remote
|
||||||
|
|
||||||
parameters = [
|
parameters = [
|
||||||
Parameter('mount_point', default='/', global_alias='filer_mount_point',
|
Parameter('mount_point', default='/', global_alias='remote_assets_path',
|
||||||
description='Local mount point for the remote filer.'),
|
description='Local mount point for the remote filer.'),
|
||||||
]
|
]
|
||||||
|
|
||||||
def __init__(self, resolver, **kwargs):
|
def __init__(self, resolver, **kwargs):
|
||||||
super(DependencyFileGetter, self).__init__(resolver, **kwargs)
|
super(DependencyFileGetter, self).__init__(resolver, **kwargs)
|
||||||
self.mount_point = settings.filer_mount_point or self.default_mount_point
|
|
||||||
|
|
||||||
def get(self, resource, **kwargs):
|
def get(self, resource, **kwargs):
|
||||||
force = kwargs.get('force')
|
force = kwargs.get('force')
|
||||||
@ -260,7 +258,6 @@ class ExtensionAssetGetter(DependencyFileGetter):
|
|||||||
|
|
||||||
name = 'extension_asset'
|
name = 'extension_asset'
|
||||||
resource_type = 'extension_asset'
|
resource_type = 'extension_asset'
|
||||||
relative_path = 'workload_automation/assets'
|
|
||||||
|
|
||||||
|
|
||||||
class HttpGetter(ResourceGetter):
|
class HttpGetter(ResourceGetter):
|
||||||
|
@ -41,7 +41,7 @@ class ApkLaunchWorkload(Workload):
|
|||||||
|
|
||||||
def setup(self, context):
|
def setup(self, context):
|
||||||
apk_file = context.resolver.get(File(self, self.apk_file))
|
apk_file = context.resolver.get(File(self, self.apk_file))
|
||||||
self.package = ApkInfo(apk_file).package
|
self.package = ApkInfo(apk_file).package # pylint: disable=attribute-defined-outside-init
|
||||||
|
|
||||||
self.logger.info('Installing {}'.format(apk_file))
|
self.logger.info('Installing {}'.format(apk_file))
|
||||||
return self.device.install(apk_file)
|
return self.device.install(apk_file)
|
||||||
|
@ -138,19 +138,7 @@ class ApplaunchWorkload(Workload):
|
|||||||
scheduler_used = scheduler[scheduler.index("[") + 1:scheduler.index("]")]
|
scheduler_used = scheduler[scheduler.index("[") + 1:scheduler.index("]")]
|
||||||
metric_suffix = '_' + scheduler_used
|
metric_suffix = '_' + scheduler_used
|
||||||
for filename in result_files:
|
for filename in result_files:
|
||||||
host_result_file = os.path.join(context.output_directory, filename)
|
self._extract_results_from_file(context, filename, metric_suffix)
|
||||||
device_result_file = self.device.path.join(self.device.working_directory, filename)
|
|
||||||
self.device.pull_file(device_result_file, host_result_file)
|
|
||||||
|
|
||||||
with open(host_result_file) as fh:
|
|
||||||
if filename == 'time.result':
|
|
||||||
values = [v / 1000 for v in map(int, fh.read().split())]
|
|
||||||
_add_metric(context, 'time' + metric_suffix, values, 'Seconds')
|
|
||||||
else:
|
|
||||||
metric = filename.replace('.result', '').lower()
|
|
||||||
numbers = iter(map(int, fh.read().split()))
|
|
||||||
deltas = [(after - before) / 1000000 for before, after in zip(numbers, numbers)]
|
|
||||||
_add_metric(context, metric, deltas, 'Joules')
|
|
||||||
|
|
||||||
def teardown(self, context):
|
def teardown(self, context):
|
||||||
if self.set_launcher_affinity:
|
if self.set_launcher_affinity:
|
||||||
@ -178,6 +166,21 @@ class ApplaunchWorkload(Workload):
|
|||||||
command = 'taskset -p 0x{:X} {}'.format(self._old_launcher_affinity, self._launcher_pid)
|
command = 'taskset -p 0x{:X} {}'.format(self._old_launcher_affinity, self._launcher_pid)
|
||||||
self.device.execute(command, busybox=True, as_root=True)
|
self.device.execute(command, busybox=True, as_root=True)
|
||||||
|
|
||||||
|
def _extract_results_from_file(self, context, filename, metric_suffix):
|
||||||
|
host_result_file = os.path.join(context.output_directory, filename)
|
||||||
|
device_result_file = self.device.path.join(self.device.working_directory, filename)
|
||||||
|
self.device.pull_file(device_result_file, host_result_file)
|
||||||
|
|
||||||
|
with open(host_result_file) as fh:
|
||||||
|
if filename == 'time.result':
|
||||||
|
values = [v / 1000 for v in map(int, fh.read().split())]
|
||||||
|
_add_metric(context, 'time' + metric_suffix, values, 'Seconds')
|
||||||
|
else:
|
||||||
|
metric = filename.replace('.result', '').lower()
|
||||||
|
numbers = iter(map(int, fh.read().split()))
|
||||||
|
deltas = [(after - before) / 1000000 for before, after in zip(numbers, numbers)]
|
||||||
|
_add_metric(context, metric, deltas, 'Joules')
|
||||||
|
|
||||||
|
|
||||||
def _add_metric(context, metric, values, units):
|
def _add_metric(context, metric, values, units):
|
||||||
mean, sd = get_meansd(values)
|
mean, sd = get_meansd(values)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user