diff options
author | Mariano Lopez <mariano.lopez@linux.intel.com> | 2015-09-01 07:36:30 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-09-01 21:47:12 +0100 |
commit | 25814dbdd12db0499e4d81876873158e1b8a4fcc (patch) | |
tree | 37fad2b8360a5c85941ddc6aac83e765f49abc52 | |
parent | b0af40fb76cd5035696e9d8a44f815f64214d23a (diff) | |
download | openembedded-core-25814dbdd12db0499e4d81876873158e1b8a4fcc.tar.gz openembedded-core-25814dbdd12db0499e4d81876873158e1b8a4fcc.tar.bz2 openembedded-core-25814dbdd12db0499e4d81876873158e1b8a4fcc.zip |
runexported: Make it compatible with host dump
Currently it is not possible to run a exported test,
but this patch will allow to use the HosDumper class
when running a exported test, otherwise the HostDumper
class will break runexpored test.
[YOCTO #8118]
Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | meta/classes/testimage.bbclass | 6 | ||||
-rw-r--r-- | meta/lib/oeqa/oetest.py | 3 | ||||
-rwxr-xr-x | meta/lib/oeqa/runexported.py | 8 |
3 files changed, 13 insertions, 4 deletions
diff --git a/meta/classes/testimage.bbclass b/meta/classes/testimage.bbclass index 82cb0110e3..8fa00f5fbf 100644 --- a/meta/classes/testimage.bbclass +++ b/meta/classes/testimage.bbclass @@ -173,9 +173,10 @@ def exportTests(d,tc): savedata = {} savedata["d"] = {} savedata["target"] = {} + savedata["host_dumper"] = {} for key in tc.__dict__: # special cases - if key != "d" and key != "target": + if key != "d" and key != "target" and key != "host_dumper": savedata[key] = getattr(tc, key) savedata["target"]["ip"] = tc.target.ip or d.getVar("TEST_TARGET_IP", True) savedata["target"]["server_ip"] = tc.target.server_ip or d.getVar("TEST_SERVER_IP", True) @@ -189,6 +190,9 @@ def exportTests(d,tc): # we don't care about those anyway pass + savedata["host_dumper"]["parent_dir"] = tc.host_dumper.parent_dir + savedata["host_dumper"]["cmds"] = tc.host_dumper.cmds + with open(os.path.join(exportpath, "testdata.json"), "w") as f: json.dump(savedata, f, skipkeys=True, indent=4, sort_keys=True) diff --git a/meta/lib/oeqa/oetest.py b/meta/lib/oeqa/oetest.py index 4224206546..4773bdd4d8 100644 --- a/meta/lib/oeqa/oetest.py +++ b/meta/lib/oeqa/oetest.py @@ -13,7 +13,6 @@ import inspect import subprocess import bb from oeqa.utils.decorators import LogResults -from oeqa.targetcontrol import QemuTarget from sys import exc_info, exc_clear def loadTests(tc, type="runtime"): @@ -124,7 +123,7 @@ class oeRuntimeTest(oeTest): if not exc_info() == (None, None, None): exc_clear() #Only dump for QemuTarget - if (isinstance(self.target, QemuTarget)): + if (type(self.target).__name__ == "QemuTarget"): self.tc.host_dumper.create_dir(self._testMethodName) self.tc.host_dumper.dump_host() self.target.target_dumper.dump_target( diff --git a/meta/lib/oeqa/runexported.py b/meta/lib/oeqa/runexported.py index e1b6642ec2..96442b1b27 100755 --- a/meta/lib/oeqa/runexported.py +++ b/meta/lib/oeqa/runexported.py @@ -32,6 +32,7 @@ sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "oeqa")) from oeqa.oetest import runTests from oeqa.utils.sshcontrol import SSHControl +from oeqa.utils.dump import get_host_dumper # this isn't pretty but we need a fake target object # for running the tests externally as we don't care @@ -118,11 +119,16 @@ def main(): for key in loaded["target"].keys(): setattr(target, key, loaded["target"][key]) + host_dumper = get_host_dumper(d) + host_dumper.parent_dir = loaded["host_dumper"]["parent_dir"] + host_dumper.cmds = loaded["host_dumper"]["cmds"] + tc = TestContext() setattr(tc, "d", d) setattr(tc, "target", target) + setattr(tc, "host_dumper", host_dumper) for key in loaded.keys(): - if key != "d" and key != "target": + if key != "d" and key != "target" and key != "host_dumper": setattr(tc, key, loaded[key]) target.exportStart() |