diff options
author | Markus Lehtonen <markus.lehtonen@linux.intel.com> | 2017-11-17 15:44:44 +0200 |
---|---|---|
committer | Markus Lehtonen <markus.lehtonen@linux.intel.com> | 2018-04-16 09:54:20 +0300 |
commit | f233e96eaf55f48608ab857e01fe5a7b0332e86b (patch) | |
tree | a93bb710d550a76ce234c6a67e6e9cb77b767140 | |
parent | c7de84df000dfbdad7ec6169a9554fc8eb6fd9bf (diff) | |
download | openembedded-core-contrib-f233e96eaf55f48608ab857e01fe5a7b0332e86b.tar.gz |
oeqa/targetcontrol: re-introduce get_target_controller()
This function was dropped in f352ef37a27cb0871c87cf9991d8ad2e1d560fde as
unused, but, python-pgo-image needs it for running profile task on
target hw.
[YOCTO #9338]
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
-rw-r--r-- | meta/lib/oeqa/targetcontrol.py | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/meta/lib/oeqa/targetcontrol.py b/meta/lib/oeqa/targetcontrol.py index 59a9c35a09..46442a8801 100644 --- a/meta/lib/oeqa/targetcontrol.py +++ b/meta/lib/oeqa/targetcontrol.py @@ -18,6 +18,31 @@ from oeqa.utils.dump import TargetDumper from oeqa.controllers.testtargetloader import TestTargetLoader from abc import ABCMeta, abstractmethod +def get_target_controller(d, logger): + testtarget = d.getVar("TEST_TARGET") + # old, simple names + if testtarget == "qemu": + return QemuTarget(d, logger) + elif testtarget == "simpleremote": + return SimpleRemoteTarget(d, logger) + else: + # use the class name + try: + # is it a core class defined here? + controller = getattr(sys.modules[__name__], testtarget) + except AttributeError: + # nope, perhaps a layer defined one + try: + bbpath = d.getVar("BBPATH").split(':') + testtargetloader = TestTargetLoader() + controller = testtargetloader.get_controller_module(testtarget, bbpath) + except ImportError as e: + bb.fatal("Failed to import {0} from available controller modules:\n{1}".format(testtarget,traceback.format_exc())) + except AttributeError as e: + bb.fatal("Invalid TEST_TARGET - " + str(e)) + return controller(d, logger) + + class BaseTarget(object, metaclass=ABCMeta): supported_image_fstypes = [] |