summaryrefslogtreecommitdiffstats
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
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>
-rw-r--r--meta/lib/oeqa/targetcontrol.py23
-rw-r--r--meta/lib/oeqa/utils/__init__.py3
2 files changed, 22 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):
diff --git a/meta/lib/oeqa/utils/__init__.py b/meta/lib/oeqa/utils/__init__.py
index e69de29bb2..8eda92763c 100644
--- a/meta/lib/oeqa/utils/__init__.py
+++ b/meta/lib/oeqa/utils/__init__.py
@@ -0,0 +1,3 @@
1# Enable other layers to have modules in the same named directory
2from pkgutil import extend_path
3__path__ = extend_path(__path__, __name__)