aboutsummaryrefslogtreecommitdiffstats
path: root/meta/lib/oeqa
diff options
context:
space:
mode:
authorMariano Lopez <mariano.lopez@linux.intel.com>2016-07-26 09:38:56 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-08-04 15:05:47 +0100
commit0338f66c0d246c3b8d94ac68d60fbc4c314e500b (patch)
tree9a7fb5f0979aadf70d0c848e267f4c09daaa6f02 /meta/lib/oeqa
parentf1cc272e4851fd994e9d052628a747ac19f90488 (diff)
downloadopenembedded-core-contrib-0338f66c0d246c3b8d94ac68d60fbc4c314e500b.tar.gz
oeqa/oetest.py: Allow to export packages using symlinks
Currently packages that contains symlinks can't be extracted and exported. This allows to export extracted such packages. A nice side effect is improved readability. [YOCTO #9932] Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Diffstat (limited to 'meta/lib/oeqa')
-rw-r--r--meta/lib/oeqa/oetest.py17
1 files changed, 13 insertions, 4 deletions
diff --git a/meta/lib/oeqa/oetest.py b/meta/lib/oeqa/oetest.py
index 7dca77a969..514631249c 100644
--- a/meta/lib/oeqa/oetest.py
+++ b/meta/lib/oeqa/oetest.py
@@ -443,6 +443,8 @@ class RuntimeTestContext(TestContext):
modules = self.getTestModules()
bbpaths = self.d.getVar("BBPATH", True).split(":")
+ shutil.rmtree(self.d.getVar("TEST_EXTRACTED_DIR", True))
+ shutil.rmtree(self.d.getVar("TEST_PACKAGED_DIR", True))
for module in modules:
json_file = self._getJsonFile(module)
if json_file:
@@ -454,6 +456,8 @@ class RuntimeTestContext(TestContext):
Extract packages that will be needed during runtime.
"""
+ import oe.path
+
extracted_path = self.d.getVar("TEST_EXTRACTED_DIR", True)
packaged_path = self.d.getVar("TEST_PACKAGED_DIR", True)
@@ -477,13 +481,18 @@ class RuntimeTestContext(TestContext):
dst_dir = os.path.join(packaged_path)
# Extract package and copy it to TEST_EXTRACTED_DIR
- if extract and not os.path.exists(dst_dir):
- pkg_dir = self._extract_in_tmpdir(pkg)
- shutil.copytree(pkg_dir, dst_dir)
+ pkg_dir = self._extract_in_tmpdir(pkg)
+ if extract:
+
+ # Same package used for more than one test,
+ # don't need to extract again.
+ if os.path.exists(dst_dir):
+ continue
+ oe.path.copytree(pkg_dir, dst_dir)
shutil.rmtree(pkg_dir)
# Copy package to TEST_PACKAGED_DIR
- elif not extract:
+ else:
self._copy_package(pkg)
def _getJsonFile(self, module):