From 98b19328ded620171c7578e119f62c54524dd016 Mon Sep 17 00:00:00 2001 From: Sergei Trofimov Date: Fri, 22 Jan 2016 11:58:54 +0000 Subject: [PATCH 1/2] Fixing assets discovery. - Two different parameters may now have the same global alias as long as their types match - `extension_asset` resource getter now picks up the path to the mouted filer from ``remote_assets_path`` global setting. --- wlauto/core/extension_loader.py | 4 ++-- wlauto/resource_getters/standard.py | 5 +---- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/wlauto/core/extension_loader.py b/wlauto/core/extension_loader.py index e9f2fd1c..533f5f08 100644 --- a/wlauto/core/extension_loader.py +++ b/wlauto/core/extension_loader.py @@ -80,8 +80,8 @@ class GlobalParameterAlias(object): other_param.kind != param.kind): message = 'Duplicate global alias {} declared in {} and {} extensions with different types' raise LoaderError(message.format(self.name, ext.name, other_ext.name)) - if param.name != other_param.name: - message = 'Two params {} in {} and {} in {} both declare global alias {}' + if param.kind != other_param.kind: + message = 'Two params {} in {} and {} in {} both declare global alias {}, and are of different kinds' raise LoaderError(message.format(param.name, ext.name, other_param.name, other_ext.name, self.name)) diff --git a/wlauto/resource_getters/standard.py b/wlauto/resource_getters/standard.py index 4df789a8..b4b8b771 100644 --- a/wlauto/resource_getters/standard.py +++ b/wlauto/resource_getters/standard.py @@ -180,17 +180,15 @@ class DependencyFileGetter(ResourceGetter): resource_type = 'file' relative_path = '' # May be overridden by subclasses. - default_mount_point = '/' priority = GetterPriority.remote 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.'), ] def __init__(self, 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): force = kwargs.get('force') @@ -260,7 +258,6 @@ class ExtensionAssetGetter(DependencyFileGetter): name = 'extension_asset' resource_type = 'extension_asset' - relative_path = 'workload_automation/assets' class HttpGetter(ResourceGetter): From 85fb5e368471e02d2fb3eb59d489733ab8cf51cf Mon Sep 17 00:00:00 2001 From: Sergei Trofimov Date: Fri, 22 Jan 2016 12:11:01 +0000 Subject: [PATCH 2/2] Pylint fixes - apklaunch: ignore package (re-)assignment outside init. - applaunch: factored out part of result processing into a separate method. --- wlauto/workloads/apklaunch/__init__.py | 2 +- wlauto/workloads/applaunch/__init__.py | 29 ++++++++++++++------------ 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/wlauto/workloads/apklaunch/__init__.py b/wlauto/workloads/apklaunch/__init__.py index ce13d197..6dc201fc 100644 --- a/wlauto/workloads/apklaunch/__init__.py +++ b/wlauto/workloads/apklaunch/__init__.py @@ -41,7 +41,7 @@ class ApkLaunchWorkload(Workload): def setup(self, context): 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)) return self.device.install(apk_file) diff --git a/wlauto/workloads/applaunch/__init__.py b/wlauto/workloads/applaunch/__init__.py index 00ac999d..c6360657 100644 --- a/wlauto/workloads/applaunch/__init__.py +++ b/wlauto/workloads/applaunch/__init__.py @@ -138,19 +138,7 @@ class ApplaunchWorkload(Workload): scheduler_used = scheduler[scheduler.index("[") + 1:scheduler.index("]")] metric_suffix = '_' + scheduler_used for filename in result_files: - 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') + self._extract_results_from_file(context, filename, metric_suffix) def teardown(self, context): 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) 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): mean, sd = get_meansd(values)