diff options
Diffstat (limited to 'import-layers/yocto-poky/meta/lib/oeqa/runexported.py')
-rwxr-xr-x | import-layers/yocto-poky/meta/lib/oeqa/runexported.py | 48 |
1 files changed, 28 insertions, 20 deletions
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/runexported.py b/import-layers/yocto-poky/meta/lib/oeqa/runexported.py index cc89e13c0..7e245c412 100755 --- a/import-layers/yocto-poky/meta/lib/oeqa/runexported.py +++ b/import-layers/yocto-poky/meta/lib/oeqa/runexported.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright (C) 2013 Intel Corporation @@ -30,9 +30,9 @@ except ImportError: sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "oeqa"))) -from oeqa.oetest import TestContext +from oeqa.oetest import ExportTestContext +from oeqa.utils.commands import runCmd, updateEnv 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 @@ -69,10 +69,6 @@ class MyDataDict(dict): def getVar(self, key, unused = None): return self.get(key, "") -class ExportTestContext(TestContext): - def __init__(self, d): - self.d = d - def main(): parser = argparse.ArgumentParser() @@ -85,6 +81,7 @@ def main(): specified in the json if that directory actually exists or it will error out.") parser.add_argument("-l", "--log-dir", dest="log_dir", help="This sets the path for TEST_LOG_DIR. If not specified \ the current dir is used. This is used for usually creating a ssh log file and a scp test file.") + parser.add_argument("-a", "--tag", dest="tag", help="Only run test with specified tag.") parser.add_argument("json", help="The json file exported by the build system", default="testdata.json", nargs='?') args = parser.parse_args() @@ -111,30 +108,41 @@ def main(): if not os.path.isdir(d["DEPLOY_DIR"]): print("WARNING: The path to DEPLOY_DIR does not exist: %s" % d["DEPLOY_DIR"]) + parsedArgs = {} + parsedArgs["tag"] = args.tag + + extract_sdk(d) target = FakeTarget(d) 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"] - target.exportStart() - tc = ExportTestContext(d) - - 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" and key != "host_dumper": - setattr(tc, key, loaded[key]) - + tc = ExportTestContext(d, target, True, parsedArgs) tc.loadTests() tc.runTests() return 0 +def extract_sdk(d): + """ + Extract SDK if needed + """ + + export_dir = os.path.dirname(os.path.realpath(__file__)) + tools_dir = d.getVar("TEST_EXPORT_SDK_DIR", True) + tarball_name = "%s.sh" % d.getVar("TEST_EXPORT_SDK_NAME", True) + tarball_path = os.path.join(export_dir, tools_dir, tarball_name) + extract_path = os.path.join(export_dir, "sysroot") + if os.path.isfile(tarball_path): + print ("Found SDK tarball %s. Extracting..." % tarball_path) + result = runCmd("%s -y -d %s" % (tarball_path, extract_path)) + for f in os.listdir(extract_path): + if f.startswith("environment-setup"): + print("Setting up SDK environment...") + env_file = os.path.join(extract_path, f) + updateEnv(env_file) + if __name__ == "__main__": try: ret = main() |