selftest/runtime-test.py: Add test for testexport SDK feature

This adds test_testexport_sdk() to test the SDK feature
of testexport in the CI in order to avoid breaking it.

[YOCTO #9765]

(From OE-Core rev: badec3d10fcdd2d000450ab533caadcff1df5e13)

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:
Mariano Lopez 2016-08-01 08:16:33 +00:00 committed by Richard Purdie
parent d2e5c93dba
commit 44ae8284d0
2 changed files with 65 additions and 0 deletions

View File

@ -1,9 +1,13 @@
import os
from oeqa.oetest import oeRuntimeTest, skipModule
from oeqa.utils.commands import runCmd
from oeqa.utils.decorators import *
class Selftest(oeRuntimeTest):
@skipUnlessPassed("test_ssh")
@tag("selftest_package_install")
def test_install_package(self):
"""
Summary: Check basic package installation functionality.
@ -18,6 +22,7 @@ class Selftest(oeRuntimeTest):
self.assertEqual(status, 0, msg="socat is not installed")
@skipUnlessPassed("test_install_package")
@tag("selftest_package_install")
def test_verify_unistall(self):
"""
Summary: Check basic package installation functionality.
@ -29,3 +34,22 @@ class Selftest(oeRuntimeTest):
(status, output) = self.target.run("socat -V")
self.assertNotEqual(status, 0, msg="socat is still installed")
@tag("selftest_sdk")
def test_sdk(self):
result = runCmd("env -0")
sdk_path = search_sdk_path(result.output)
self.assertTrue(sdk_path, msg="Can't find SDK path")
tar_cmd = os.path.join(sdk_path, "tar")
result = runCmd("%s --help" % tar_cmd)
def search_sdk_path(env):
for line in env.split("\0"):
(key, _, value) = line.partition("=")
if key == "PATH":
for path in value.split(":"):
if "pokysdk" in path:
return path
return ""

View File

@ -43,6 +43,46 @@ class TestExport(oeSelfTest):
failure = True if 'FAIL' in result.output else False
self.assertNotEqual(True, failure, 'ping test failed')
def test_testexport_sdk(self):
"""
Summary: Check sdk functionality for testexport.
Expected: 1. testexport directory must be created.
2. SDK tarball must exists.
3. Uncompressing of tarball must succeed.
4. Check if the SDK directory is added to PATH.
5. Run tar from the SDK directory.
Product: oe-core
Author: Mariano Lopez <mariano.lopez@intel.com>
"""
features = 'INHERIT += "testexport"\n'
# These aren't the actual IP addresses but testexport class needs something defined
features += 'TEST_SERVER_IP = "192.168.7.1"\n'
features += 'TEST_TARGET_IP = "192.168.7.1"\n'
features += 'TEST_SUITES = "ping"\n'
features += 'TEST_SUITES_TAGS = "selftest_sdk"\n'
features += 'TEST_EXPORT_SDK_ENABLED = "1"\n'
features += 'TEST_EXPORT_SDK_PACKAGES = "nativesdk-tar"\n'
self.write_config(features)
# Build tesexport for core-image-minimal
bitbake('core-image-minimal')
bitbake('-c testexport core-image-minimal')
# Check for SDK
testexport_dir = get_bb_var('TEST_EXPORT_DIR', 'core-image-minimal')
sdk_dir = get_bb_var('TEST_EXPORT_SDK_DIR', 'core-image-minimal')
tarball_name = "%s.sh" % get_bb_var('TEST_EXPORT_SDK_NAME', 'core-image-minimal')
tarball_path = os.path.join(testexport_dir, sdk_dir, tarball_name)
self.assertEqual(os.path.isfile(tarball_path), True, "Couldn't find SDK tarball: %s" % tarball_path)
# Run runexported.py
runexported_path = os.path.join(testexport_dir, "runexported.py")
testdata_path = os.path.join(testexport_dir, "testdata.json")
cmd = "%s %s" % (runexported_path, testdata_path)
result = runCmd(cmd)
self.assertEqual(0, result.status, 'runexported.py returned a non 0 status')
class TestImage(oeSelfTest):
@ -57,6 +97,7 @@ class TestImage(oeSelfTest):
features = 'INHERIT += "testimage"\n'
features += 'TEST_SUITES = "ping ssh selftest"\n'
features += 'TEST_SUITES_TAGS = "selftest_package_install"\n'
self.write_config(features)
# Build core-image-sato and testimage