summaryrefslogtreecommitdiffstats
path: root/meta/classes
diff options
context:
space:
mode:
authorMariano Lopez <mariano.lopez@linux.intel.com>2016-06-06 09:15:54 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-06-07 15:22:38 +0100
commit2228b16bef534e337bc0f7c988b9f96dea7a3271 (patch)
tree0a8ad2b25014f1bd548192236ae32ee76407e060 /meta/classes
parent120f7067c802a02856d44c2c241da6c0f7fd5126 (diff)
downloadopenembedded-core-contrib-2228b16bef534e337bc0f7c988b9f96dea7a3271.tar.gz
openembedded-core-contrib-2228b16bef534e337bc0f7c988b9f96dea7a3271.tar.bz2
openembedded-core-contrib-2228b16bef534e337bc0f7c988b9f96dea7a3271.zip
testexport.bbclass: Create tarballs for easy release
This create tarballs in the testexport directory in order to make easier to distribute the test in another systems. There are three tarballs, one for the metadata that is not arch dependant, another for packages needed by the DUT (this depends of target MACHINE), and the last one for the SDK needed by the systems that perform the tests. This also create only the tarballs that are needed. [YOCTO #8481] (From OE-Core rev: f8a0456e100b07a966cc24a78f197400c5a2ccab) (From OE-Core rev: a91a603676b088abcb648cc558c33da6292b9be6) Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes')
-rw-r--r--meta/classes/testexport.bbclass32
1 files changed, 32 insertions, 0 deletions
diff --git a/meta/classes/testexport.bbclass b/meta/classes/testexport.bbclass
index 6009349341..15fa470785 100644
--- a/meta/classes/testexport.bbclass
+++ b/meta/classes/testexport.bbclass
@@ -128,9 +128,13 @@ def exportTests(d,tc):
for f in files:
shutil.copy2(os.path.join(root, f), os.path.join(exportpath, "oeqa/runtime/files"))
+ # Create tar file for common parts of testexport
+ create_tarball(d, "testexport.tar.gz", d.getVar("TEST_EXPORT_DIR", True))
+
# Copy packages needed for runtime testing
export_pkg_dir = os.path.join(d.getVar("TEST_EXPORT_DIR", True), "packages")
test_pkg_dir = d.getVar("TEST_NEEDED_PACKAGES_DIR", True)
+ need_pkg_dir = False
for root, subdirs, files in os.walk(test_pkg_dir):
for subdir in subdirs:
tmp_dir = os.path.join(root.replace(test_pkg_dir, "").lstrip("/"), subdir)
@@ -138,10 +142,18 @@ def exportTests(d,tc):
bb.utils.mkdirhier(new_dir)
for f in files:
+ need_pkg_dir = True
src_f = os.path.join(root, f)
dst_f = os.path.join(export_pkg_dir, root.replace(test_pkg_dir, "").lstrip("/"), f)
shutil.copy2(src_f, dst_f)
+ if need_pkg_dir:
+ # Create tar file for packages needed by the DUT
+ create_tarball(d, "testexport_packages_%s.tar.gz" % d.getVar("MACHINE", True), export_pkg_dir)
+ else:
+ # Remov packages dir from exported test
+ bb.utils.remove(export_pkg_dir, True)
+
# Copy SDK
if d.getVar("TEST_EXPORT_SDK_ENABLED", True) == "1":
sdk_deploy = d.getVar("SDK_DEPLOY", True)
@@ -152,6 +164,9 @@ def exportTests(d,tc):
bb.utils.mkdirhier(export_sdk_dir)
shutil.copy2(tarball_path, export_sdk_dir)
+ # Create tar file for the sdk
+ create_tarball(d, "testexport_sdk_%s.tar.gz" % d.getVar("SDK_ARCH", True), export_sdk_dir)
+
bb.plain("Exported tests to: %s" % exportpath)
def testexport_main(d):
@@ -183,6 +198,23 @@ def testexport_main(d):
tc.extract_packages()
exportTests(d,tc)
+def create_tarball(d, tar_name, src_dir):
+
+ import tarfile
+
+ tar_path = os.path.join(d.getVar("TEST_EXPORT_DIR", True), tar_name)
+ current_dir = os.getcwd()
+ src_dir = src_dir.rstrip('/')
+ dir_name = os.path.dirname(src_dir)
+ base_name = os.path.basename(src_dir)
+
+ os.chdir(dir_name)
+ tar = tarfile.open(tar_path, "w:gz")
+ tar.add(base_name)
+ tar.close()
+ os.chdir(current_dir)
+
+
testexport_main[vardepsexclude] =+ "BB_ORIGENV"
inherit testimage