From 54325b298b59f481ab937d0427d574518a856b7e Mon Sep 17 00:00:00 2001 From: Lucian Musat Date: Fri, 9 Oct 2015 20:16:26 +0300 Subject: oeqa/testimage: Add support for test folder export. If tests are organized in folders then it will copy the whole folder to the export location. This should keep the original directory structure for exported oeqa/runtime. (From OE-Core rev: 8fe45badd3dfe44fa5161229324b6439594123fd) Signed-off-by: Lucian Musat Signed-off-by: Ross Burton Signed-off-by: Richard Purdie --- meta/classes/testimage.bbclass | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/meta/classes/testimage.bbclass b/meta/classes/testimage.bbclass index d571672bc0..e833db4bfe 100644 --- a/meta/classes/testimage.bbclass +++ b/meta/classes/testimage.bbclass @@ -229,11 +229,23 @@ def exportTests(d,tc): bb.utils.mkdirhier(os.path.join(exportpath, "oeqa/runtime/files")) bb.utils.mkdirhier(os.path.join(exportpath, "oeqa/utils")) # copy test modules, this should cover tests in other layers too + bbpath = d.getVar("BBPATH", True).split(':') for t in tc.testslist: + isfolder = False if re.search("\w+\.\w+\.test_\S+", t): t = '.'.join(t.split('.')[:3]) mod = pkgutil.get_loader(t) - shutil.copy2(mod.filename, os.path.join(exportpath, "oeqa/runtime")) + # More depth than usual? + if (t.count('.') > 2): + for p in bbpath: + foldername = os.path.join(p, 'lib', os.sep.join(t.split('.')).rsplit(os.sep, 1)[0]) + if os.path.isdir(foldername): + isfolder = True + target_folder = os.path.join(exportpath, "oeqa", "runtime", os.path.basename(foldername)) + if not os.path.exists(target_folder): + shutil.copytree(foldername, target_folder) + if not isfolder: + shutil.copy2(mod.filename, os.path.join(exportpath, "oeqa/runtime")) # copy __init__.py files oeqadir = pkgutil.get_loader("oeqa").filename shutil.copy2(os.path.join(oeqadir, "__init__.py"), os.path.join(exportpath, "oeqa")) -- cgit v1.2.3-54-g00ecf