1
0
mirror of https://github.com/ARM-software/workload-automation.git synced 2025-09-02 11:22:41 +01:00

fw/target: make TargetInfo more POD-like

Split out the loading of the TargetInfo from a target into a separate
function, leaving TargetInfo as a simple container.
This commit is contained in:
sergei Trofimov
2018-04-30 16:29:44 +01:00
committed by Marc Bonnici
parent 1ffbce68c4
commit 2d39e5699f
2 changed files with 32 additions and 36 deletions

View File

@@ -42,6 +42,25 @@ def kernel_config_from_pod(pod):
return config return config
def get_target_info(target):
info = TargetInfo()
info.target = target.__class__.__name__
info.cpuinfo = target.cpuinfo
info.os = target.os
info.os_version = target.os_version
info.abi = target.abi
info.is_rooted = target.is_rooted
info.kernel_version = target.kernel_version
info.kernel_config = target.config
if isinstance(target, AndroidTarget):
info.screen_resolution = target.screen_resolution
info.prop = target.getprop()
info.android_id = target.android_id
return info
class TargetInfo(object): class TargetInfo(object):
@staticmethod @staticmethod
@@ -56,8 +75,7 @@ class TargetInfo(object):
instance.is_rooted = pod['is_rooted'] instance.is_rooted = pod['is_rooted']
instance.kernel_version = kernel_version_from_pod(pod) instance.kernel_version = kernel_version_from_pod(pod)
instance.kernel_config = kernel_config_from_pod(pod) instance.kernel_config = kernel_config_from_pod(pod)
if instance.os == 'android':
if pod["target"] == "AndroidTarget":
instance.screen_resolution = pod['screen_resolution'] instance.screen_resolution = pod['screen_resolution']
instance.prop = AndroidProperties('') instance.prop = AndroidProperties('')
instance.prop._properties = pod['prop'] instance.prop._properties = pod['prop']
@@ -65,36 +83,15 @@ class TargetInfo(object):
return instance return instance
def __init__(self, target=None): def __init__(self):
if target: self.target = None
self.target = target.__class__.__name__ self.cpuinfo = None
self.cpuinfo = target.cpuinfo self.os = None
self.os = target.os self.os_version = None
self.os_version = target.os_version self.abi = None
self.abi = target.abi self.is_rooted = None
self.is_rooted = target.is_rooted self.kernel_version = None
self.kernel_version = target.kernel_version self.kernel_config = None
self.kernel_config = target.config
if isinstance(target, AndroidTarget):
self.screen_resolution = target.screen_resolution
self.prop = target.getprop()
self.android_id = target.android_id
else:
self.target = None
self.cpuinfo = None
self.os = None
self.os_version = None
self.abi = None
self.is_rooted = None
self.kernel_version = None
self.kernel_config = None
if isinstance(target, AndroidTarget):
self.screen_resolution = None
self.prop = None
self.android_id = None
def to_pod(self): def to_pod(self):
pod = {} pod = {}
@@ -108,8 +105,7 @@ class TargetInfo(object):
pod['kernel_release'] = self.kernel_version.release pod['kernel_release'] = self.kernel_version.release
pod['kernel_version'] = self.kernel_version.version pod['kernel_version'] = self.kernel_version.version
pod['kernel_config'] = dict(self.kernel_config.iteritems()) pod['kernel_config'] = dict(self.kernel_config.iteritems())
if self.os == 'android':
if self.target == "AndroidTarget":
pod['screen_resolution'] = self.screen_resolution pod['screen_resolution'] = self.screen_resolution
pod['prop'] = self.prop._properties pod['prop'] = self.prop._properties
pod['android_id'] = self.android_id pod['android_id'] = self.android_id

View File

@@ -6,7 +6,7 @@ from wa.framework.plugin import Parameter
from wa.framework.target.descriptor import (get_target_description, from wa.framework.target.descriptor import (get_target_description,
instantiate_target, instantiate_target,
instantiate_assistant) instantiate_assistant)
from wa.framework.target.info import TargetInfo from wa.framework.target.info import get_target_info
from wa.framework.target.runtime_parameter_manager import RuntimeParameterManager from wa.framework.target.runtime_parameter_manager import RuntimeParameterManager
from devlib import Gem5SimulationPlatform from devlib import Gem5SimulationPlatform
@@ -72,7 +72,7 @@ class TargetManager(object):
@memoized @memoized
def get_target_info(self): def get_target_info(self):
return TargetInfo(self.target) return get_target_info(self.target)
def merge_runtime_parameters(self, parameters): def merge_runtime_parameters(self, parameters):
return self.rpm.merge_runtime_parameters(parameters) return self.rpm.merge_runtime_parameters(parameters)