summaryrefslogtreecommitdiffstats
path: root/meta/lib/oeqa/targetcontrol.py
diff options
context:
space:
mode:
authorStefan Stanacar <stefanx.stanacar@intel.com>2014-01-16 14:48:59 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-01-19 16:32:09 +0000
commitbf7383de87cdb12c857a5577c89acf6855d96dfa (patch)
tree9fb1c64f2352cd14c186b17f642b05fc760cd820 /meta/lib/oeqa/targetcontrol.py
parent650ee5e27521489c2907cf592cdd9161af844e68 (diff)
downloadpoky-bf7383de87cdb12c857a5577c89acf6855d96dfa.tar.gz
lib/oeqa: allow a layer to provide it's own TEST_TARGET class
Allows a layer to define new classes in <layer>/lib/oeqa/utils/controllers.py and completely control or extend deployment of a target. (core currently has QemuTarget and SimpleRemoteTarget). The value of TEST_TARGET must be the name of the new class. (From OE-Core rev: 9b81aff0aca42353d448b1e9522f89842e23c7b2) Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib/oeqa/targetcontrol.py')
-rw-r--r--meta/lib/oeqa/targetcontrol.py23
1 files changed, 19 insertions, 4 deletions
diff --git a/meta/lib/oeqa/targetcontrol.py b/meta/lib/oeqa/targetcontrol.py
index dee38ec1d6..757f9d3d50 100644
--- a/meta/lib/oeqa/targetcontrol.py
+++ b/meta/lib/oeqa/targetcontrol.py
@@ -8,18 +8,33 @@ import os
8import shutil 8import shutil
9import subprocess 9import subprocess
10import bb 10import bb
11 11import traceback
12from oeqa.utils.sshcontrol import SSHControl 12from oeqa.utils.sshcontrol import SSHControl
13from oeqa.utils.qemurunner import QemuRunner 13from oeqa.utils.qemurunner import QemuRunner
14 14
15 15
16def get_target_controller(d): 16def get_target_controller(d):
17 if d.getVar("TEST_TARGET", True) == "qemu": 17 testtarget = d.getVar("TEST_TARGET", True)
18 # old, simple names
19 if testtarget == "qemu":
18 return QemuTarget(d) 20 return QemuTarget(d)
19 elif d.getVar("TEST_TARGET", True) == "simpleremote": 21 elif testtarget == "simpleremote":
20 return SimpleRemoteTarget(d) 22 return SimpleRemoteTarget(d)
21 else: 23 else:
22 bb.fatal("Please set a valid TEST_TARGET") 24 # use the class name
25 try:
26 # is it a core class defined here?
27 controller = getattr(__name__, testtarget)
28 except AttributeError:
29 # nope, perhaps a layer defined one
30 try:
31 module = __import__("oeqa.utils.controllers", globals(), locals(), [testtarget])
32 controller = getattr(module, testtarget)
33 except ImportError as e:
34 bb.fatal("Failed to import oeqa.utils.controllers:\n%s" % traceback.format_exc())
35 except AttributeError:
36 bb.fatal("\"%s\" is not a valid value for TEST_TARGET" % testtarget)
37 return controller(d)
23 38
24 39
25class BaseTarget(object): 40class BaseTarget(object):