mirror of
https://github.com/ARM-software/workload-automation.git
synced 2025-02-07 13:41:24 +00:00
42539bbe0d
Changing the way target descriptions work from a static mapping to something that is dynamically generated and is extensible via plugins. Also moving core target implementation stuff under "framework".
81 lines
2.6 KiB
Python
81 lines
2.6 KiB
Python
import string
|
|
from copy import copy
|
|
|
|
from devlib import Platform, AndroidTarget
|
|
|
|
|
|
class TargetInfo(object):
|
|
|
|
@staticmethod
|
|
def from_pod(pod):
|
|
instance = TargetInfo()
|
|
instance.target = pod['target']
|
|
instance.abi = pod['abi']
|
|
instance.cpuinfo = Cpuinfo(pod['cpuinfo'])
|
|
instance.os = pod['os']
|
|
instance.os_version = pod['os_version']
|
|
instance.abi = pod['abi']
|
|
instance.is_rooted = pod['is_rooted']
|
|
instance.kernel_version = KernelVersion(pod['kernel_release'],
|
|
pod['kernel_version'])
|
|
instance.kernel_config = KernelConfig(pod['kernel_config'])
|
|
|
|
if pod["target"] == "AndroidTarget":
|
|
instance.screen_resolution = pod['screen_resolution']
|
|
instance.prop = pod['prop']
|
|
instance.prop = pod['android_id']
|
|
|
|
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 to_pod(self):
|
|
pod = {}
|
|
pod['target'] = self.target
|
|
pod['abi'] = self.abi
|
|
pod['cpuinfo'] = self.cpuinfo.sections
|
|
pod['os'] = self.os
|
|
pod['os_version'] = self.os_version
|
|
pod['abi'] = self.abi
|
|
pod['is_rooted'] = self.is_rooted
|
|
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":
|
|
pod['screen_resolution'] = self.screen_resolution
|
|
pod['prop'] = self.prop
|
|
pod['android_id'] = self.android_id
|
|
|
|
return pod
|
|
|