mirror of
				https://github.com/ARM-software/workload-automation.git
				synced 2025-11-04 00:52:08 +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:
		
				
					committed by
					
						
						Marc Bonnici
					
				
			
			
				
	
			
			
			
						parent
						
							1ffbce68c4
						
					
				
				
					commit
					2d39e5699f
				
			@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user