diff options
author | Mariano Lopez <mariano.lopez@linux.intel.com> | 2016-07-26 09:38:56 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-08-04 15:05:47 +0100 |
commit | 0338f66c0d246c3b8d94ac68d60fbc4c314e500b (patch) | |
tree | 9a7fb5f0979aadf70d0c848e267f4c09daaa6f02 /meta/lib | |
parent | f1cc272e4851fd994e9d052628a747ac19f90488 (diff) | |
download | openembedded-core-0338f66c0d246c3b8d94ac68d60fbc4c314e500b.tar.gz openembedded-core-0338f66c0d246c3b8d94ac68d60fbc4c314e500b.tar.bz2 openembedded-core-0338f66c0d246c3b8d94ac68d60fbc4c314e500b.zip |
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')
-rw-r--r-- | meta/lib/oeqa/oetest.py | 17 |
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): |