1
0
mirror of https://github.com/ARM-software/workload-automation.git synced 2025-02-20 20:09:11 +00: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
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):
@staticmethod
@ -56,8 +75,7 @@ class TargetInfo(object):
instance.is_rooted = pod['is_rooted']
instance.kernel_version = kernel_version_from_pod(pod)
instance.kernel_config = kernel_config_from_pod(pod)
if pod["target"] == "AndroidTarget":
if instance.os == 'android':
instance.screen_resolution = pod['screen_resolution']
instance.prop = AndroidProperties('')
instance.prop._properties = pod['prop']
@ -65,36 +83,15 @@ class TargetInfo(object):
return instance
def __init__(self, target=None):
if target:
self.target = target.__class__.__name__
self.cpuinfo = target.cpuinfo
self.os = target.os
self.os_version = target.os_version
self.abi = target.abi
self.is_rooted = target.is_rooted
self.kernel_version = target.kernel_version
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 __init__(self):
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
def to_pod(self):
pod = {}
@ -108,8 +105,7 @@ class TargetInfo(object):
pod['kernel_release'] = self.kernel_version.release
pod['kernel_version'] = self.kernel_version.version
pod['kernel_config'] = dict(self.kernel_config.iteritems())
if self.target == "AndroidTarget":
if self.os == 'android':
pod['screen_resolution'] = self.screen_resolution
pod['prop'] = self.prop._properties
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,
instantiate_target,
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 devlib import Gem5SimulationPlatform
@ -72,7 +72,7 @@ class TargetManager(object):
@memoized
def get_target_info(self):
return TargetInfo(self.target)
return get_target_info(self.target)
def merge_runtime_parameters(self, parameters):
return self.rpm.merge_runtime_parameters(parameters)