mirror of
https://git.yoctoproject.org/poky
synced 2026-04-26 18:32:13 +02:00
oetest.py: Add support to copy unextracted packages for runtime testing
Sometimes is needed to have a package without extraction when running a test. This patch adds the functionality. [YOCTO #8536] (From OE-Core rev: 49234fe926224c21ef6c8292132620b4716c5263) Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
92afca7181
commit
d56ccf691b
@@ -409,6 +409,7 @@ class RuntimeTestContext(TestContext):
|
||||
|
||||
needed_packages = {}
|
||||
extracted_path = self.d.getVar("TEST_EXTRACTED_DIR", True)
|
||||
packaged_path = self.d.getVar("TEST_PACKAGED_DIR", True)
|
||||
modules = self.getTestModules()
|
||||
bbpaths = self.d.getVar("BBPATH", True).split(":")
|
||||
|
||||
@@ -433,6 +434,8 @@ class RuntimeTestContext(TestContext):
|
||||
extract = package.get("extract", True)
|
||||
if extract:
|
||||
dst_dir = os.path.join(extracted_path, pkg)
|
||||
else:
|
||||
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):
|
||||
@@ -440,6 +443,10 @@ class RuntimeTestContext(TestContext):
|
||||
shutil.copytree(pkg_dir, dst_dir)
|
||||
shutil.rmtree(pkg_dir)
|
||||
|
||||
# Copy package to TEST_PACKAGED_DIR
|
||||
elif not extract:
|
||||
self._copy_package(pkg)
|
||||
|
||||
def _getJsonFile(self, module):
|
||||
"""
|
||||
Returns the path of the JSON file for a module, empty if doesn't exitst.
|
||||
@@ -492,6 +499,21 @@ class RuntimeTestContext(TestContext):
|
||||
|
||||
return extract_dir
|
||||
|
||||
def _copy_package(self, pkg):
|
||||
"""
|
||||
Copy the RPM, DEB or IPK package to dst_dir
|
||||
"""
|
||||
|
||||
from oeqa.utils.package_manager import get_package_manager
|
||||
|
||||
pkg_path = os.path.join(self.d.getVar("TEST_INSTALL_TMP_DIR", True), pkg)
|
||||
dst_dir = self.d.getVar("TEST_PACKAGED_DIR", True)
|
||||
pm = get_package_manager(self.d, pkg_path)
|
||||
pkg_info = pm.package_info(pkg)
|
||||
file_path = pkg_info[pkg]["filepath"]
|
||||
shutil.copy2(file_path, dst_dir)
|
||||
shutil.rmtree(pkg_path)
|
||||
|
||||
class ImageTestContext(RuntimeTestContext):
|
||||
def __init__(self, d, target, host_dumper):
|
||||
super(ImageTestContext, self).__init__(d, target)
|
||||
|
||||
Reference in New Issue
Block a user