Improve oeqa-selftest capabilities and UX by placing test configuration features and variables into a separate configuration file.
[Yocto 9389] Signed-off-by: Jose Lamego <jose.a.lam...@linux.intel.com> --- meta/lib/oeqa/selftest/conf/runtime-test.conf | 13 +++++ meta/lib/oeqa/selftest/runtime-test.py | 80 ++++++++------------------- 2 files changed, 37 insertions(+), 56 deletions(-) create mode 100644 meta/lib/oeqa/selftest/conf/runtime-test.conf diff --git a/meta/lib/oeqa/selftest/conf/runtime-test.conf b/meta/lib/oeqa/selftest/conf/runtime-test.conf new file mode 100644 index 0000000..6c331ba --- /dev/null +++ b/meta/lib/oeqa/selftest/conf/runtime-test.conf @@ -0,0 +1,13 @@ +[TestExport] +# These aren't the actual IP addresses but testexport class needs something +# defined +setUpClass_features = INHERIT += "testexport" + TEST_SERVER_IP = "192.168.7.1" + TEST_TARGET_IP = "192.168.7.1" + TEST_SUITES = "ping" +setUpClass_image = core-image-minimal +[TestImage] +setUpClass_features = INHERIT += "testimage" + TEST_SUITES = "ping ssh selftest" + TEST_SUITES_TAGS = "selftest_package_install" +setUpClass_image = core-image-full-cmdline diff --git a/meta/lib/oeqa/selftest/runtime-test.py b/meta/lib/oeqa/selftest/runtime-test.py index c2d5b45..627716d 100644 --- a/meta/lib/oeqa/selftest/runtime-test.py +++ b/meta/lib/oeqa/selftest/runtime-test.py @@ -2,9 +2,18 @@ from oeqa.selftest.base import oeSelfTest from oeqa.utils.commands import runCmd, bitbake, get_bb_var, runqemu from oeqa.utils.decorators import testcase import os +from oeqa.utils.readconfig import conffile + class TestExport(oeSelfTest): + @classmethod + def setUpClass(cls): + # Get test configurations from configuration file + cls.config = conffile(__file__) + cls.features = cls.config.get('TestExport', 'setUpClass_features') + cls.image = cls.config.get('TestExport', 'setUpClass_image') + def test_testexport_basic(self): """ Summary: Check basic testexport functionality with only ping test enabled. @@ -15,23 +24,18 @@ class TestExport(oeSelfTest): Author: Mariano Lopez <mariano.lo...@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' - self.write_config(features) + self.write_config(self.features) # Build tesexport for core-image-minimal - bitbake('core-image-minimal') - bitbake('-c testexport core-image-minimal') + bitbake(self.image) + bitbake('-c testexport %s' % self.image) # Verify if TEST_EXPORT_DIR was created - testexport_dir = get_bb_var('TEST_EXPORT_DIR', 'core-image-minimal') + testexport_dir = get_bb_var('TEST_EXPORT_DIR', self.image) isdir = os.path.isdir(testexport_dir) self.assertEqual(True, isdir, 'Failed to create testexport dir: %s' % testexport_dir) - with runqemu('core-image-minimal') as qemu: + with runqemu(self.image) as qemu: # Attempt to run runexported.py to perform ping test runexported_path = os.path.join(testexport_dir, "runexported.py") testdata_path = os.path.join(testexport_dir, "testdata.json") @@ -43,49 +47,16 @@ 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.lo...@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): + @classmethod + def setUpClass(cls): + # Get test configurations from configuration file + cls.config = conffile(__file__) + cls.features = cls.config.get('TestImage', 'setUpClass_features') + cls.image = cls.config.get('TestImage', 'setUpClass_image') + def test_testimage_install(self): """ Summary: Check install packages functionality for testimage/testexport. @@ -95,11 +66,8 @@ class TestImage(oeSelfTest): Author: Mariano Lopez <mariano.lo...@intel.com> """ - features = 'INHERIT += "testimage"\n' - features += 'TEST_SUITES = "ping ssh selftest"\n' - features += 'TEST_SUITES_TAGS = "selftest_package_install"\n' - self.write_config(features) + self.write_config(self.features) # Build core-image-sato and testimage - bitbake('core-image-full-cmdline socat') - bitbake('-c testimage core-image-full-cmdline') + bitbake('%s socat' % self.image) + bitbake('-c testimage %s' % self.image) -- 1.8.3.1 -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core