From b7111d9e9d64d21f57729d1ac1865aea6e54cc8b Mon Sep 17 00:00:00 2001 From: Mariano Lopez Date: Mon, 6 Jun 2016 07:15:41 +0000 Subject: oetest.py: Add install/uninstall functionality for DUTs Add the functionality to install/unistall packages in the DUTs without the use of the package manager. This is possible with the extraction introduced in package manager class. testimage and testexport bbclasses has been modified in order to support this new feature. [YOCTO #8694] Signed-off-by: Mariano Lopez Signed-off-by: Richard Purdie --- meta/classes/testimage.bbclass | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'meta/classes/testimage.bbclass') diff --git a/meta/classes/testimage.bbclass b/meta/classes/testimage.bbclass index a2e13df710..a70d3a885e 100644 --- a/meta/classes/testimage.bbclass +++ b/meta/classes/testimage.bbclass @@ -30,6 +30,10 @@ TEST_LOG_DIR ?= "${WORKDIR}/testimage" TEST_EXPORT_DIR ?= "${TMPDIR}/testimage/${PN}" +TEST_INSTALL_TMP_DIR ?= "${WORKDIR}/testimage/install_tmp" +TEST_NEEDED_PACKAGES_DIR ?= "${WORKDIR}/testimage/packages" +TEST_EXTRACTED_DIR ?= "${TEST_NEEDED_PACKAGES_DIR}/extracted" +TEST_PACKAGED_DIR ?= "${TEST_NEEDED_PACKAGES_DIR}/packaged" RPMTESTSUITE = "${@bb.utils.contains('IMAGE_PKGTYPE', 'rpm', 'smart rpm', '', d)}" MINTESTSUITE = "ping" @@ -100,6 +104,7 @@ testimage_dump_host () { python do_testimage() { testimage_main(d) } + addtask testimage do_testimage[nostamp] = "1" do_testimage[depends] += "${TESTIMAGEDEPENDS}" @@ -117,6 +122,7 @@ def testimage_main(d): pn = d.getVar("PN", True) bb.utils.mkdirhier(d.getVar("TEST_LOG_DIR", True)) + test_create_extract_dirs(d) # we need the host dumper in test context host_dumper = get_host_dumper(d) @@ -136,6 +142,7 @@ def testimage_main(d): import traceback bb.fatal("Loading tests failed:\n%s" % traceback.format_exc()) + tc.extract_packages() target.deploy() try: target.start() @@ -155,6 +162,17 @@ def testimage_main(d): signal.signal(signal.SIGTERM, tc.origsigtermhandler) target.stop() +def test_create_extract_dirs(d): + install_path = d.getVar("TEST_INSTALL_TMP_DIR", True) + package_path = d.getVar("TEST_PACKAGED_DIR", True) + extracted_path = d.getVar("TEST_EXTRACTED_DIR", True) + bb.utils.mkdirhier(d.getVar("TEST_LOG_DIR", True)) + bb.utils.remove(package_path, recurse=True) + bb.utils.mkdirhier(install_path) + bb.utils.mkdirhier(package_path) + bb.utils.mkdirhier(extracted_path) + + testimage_main[vardepsexclude] =+ "BB_ORIGENV" inherit testsdk -- cgit v1.2.3