runtime-test.py: Split different tests inside selftest.py
cover runtime-test.py: Split different tests inside selftest.py
Patch solves bug related to two different functionalities being tested in the same test module.
The following changes since commit 02417b149623c3042c257d1c1074f915dc02b7c7:
oeqa/selftest: lock down Meson git revision for reliability (2017-06-05 17:59:38 +0100)
are available in the git repository at:
git://git.yoctoproject.org/poky-contrib humberto/SplitDnfTestimage
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=humberto/SplitDnfTestimage
Humberto Ibarra (1):
runtime-test.py: Split different tests inside selftest.py
.../lib/oeqa/runtime/cases/dnf-runtime.py | 42 ++++++++++++++++++++++ meta-selftest/lib/oeqa/runtime/cases/selftest.py | 42 ---------------------- meta/lib/oeqa/selftest/runtime-test.py | 20 +++++++++-- 3 files changed, 60 insertions(+), 44 deletions(-) create mode 100644 meta-selftest/lib/oeqa/runtime/cases/dnf-runtime.py
Signature · 1 line
2.7.5
PATCH 1/1 runtime-test.py: Split different tests inside selftest.py
There were two completely different tests inside selftest.py, and the only reason for them to be together was that both needed the same mechanism to execute (run testimage from within selftest)
This fixes the design issue and error-prone situation by separating these tests. In add a new module for dnf-runtime and also has an extra time added to running the tests, but it is minimal since the builds reuse data from previuous build.
[YOCTO #11436]
--- .../lib/oeqa/runtime/cases/dnf-runtime.py | 42 ++++++++++++++++++++++ meta-selftest/lib/oeqa/runtime/cases/selftest.py | 42 ---------------------- meta/lib/oeqa/selftest/runtime-test.py | 20 +++++++++-- 3 files changed, 60 insertions(+), 44 deletions(-) create mode 100644 meta-selftest/lib/oeqa/runtime/cases/dnf-runtime.py
meta-selftest/lib/oeqa/runtime/cases/dnf-runtime.py new file +42 -0
@@ -0,0 +1,42 @@ +from oeqa.core.decorator.depends import OETestDepends +from oeqa.runtime.cases.dnf import DnfTest +from oeqa.utils.httpserver import HTTPService + +class DnfSelftest(DnfTest): + + @classmethod + def setUpClass(cls): + cls.repo_server = HTTPService(os.path.join(cls.tc.td['WORKDIR'], 'oe-rootfs-repo'), + cls.tc.target.server_ip) + cls.repo_server.start() + + @classmethod + def tearDownClass(cls): + cls.repo_server.stop() + + @OETestDepends(['dnf.DnfBasicTest.test_dnf_help']) + def test_verify_package_feeds(self): + """ + Summary: Check correct setting of PACKAGE_FEED_URIS var + Expected: 1. Feeds were correctly set for dnf + 2. Update recovers packages from host's repo + Author: Humberto Ibarra <[email protected]> + Author: Alexander Kanavin <[email protected]> + """ + # When we created an image, we had to supply fake ip and port + # for the feeds. Now we can patch the real ones into the config file. + import tempfile + temp_file = tempfile.TemporaryDirectory(prefix="oeqa-remotefeeds-").name + self.tc.target.copyFrom("/etc/yum.repos.d/oe-remote-repo.repo", temp_file) + fixed_config = open(temp_file, "r").read().replace("bogus_ip", self.tc.target.server_ip).replace("bogus_port", str(self.repo_server.port)) + open(temp_file, "w").write(fixed_config) + self.tc.target.copyTo(temp_file, "/etc/yum.repos.d/oe-remote-repo.repo") + + import re + output_makecache = self.dnf('makecache') + self.assertTrue(re.match(r".*Metadata cache created", output_makecache, re.DOTALL) is not None, msg = "dnf makecache failed: %s" %(output_makecache)) + + output_repoinfo = self.dnf('repoinfo') + matchobj = re.match(r".*Repo-pkgs\s*:\s*(?P<n_pkgs>[0-9]+)", output_repoinfo, re.DOTALL) + self.assertTrue(matchobj is not None, msg = "Could not find the amount of packages in dnf repoinfo output: %s" %(output_repoinfo)) + self.assertTrue(int(matchobj.group('n_pkgs')) > 0, msg = "Amount of remote packages is not more than zero: %s\n" %(output_repoinfo))
meta-selftest/lib/oeqa/runtime/cases/selftest.py +0 -42
50 lines not on this page · raw message
meta/lib/oeqa/selftest/runtime-test.py +18 -2
@@ -108,16 +108,32 @@ class TestImage(oeSelfTest): Summary: Check install packages functionality for testimage/testexport. Expected: 1. Import tests from a directory other than meta. 2. Check install/uninstall of socat. - 3. Check that remote package feeds can be accessed Product: oe-core Author: Mariano Lopez <[email protected]> - Author: Alexander Kanavin <[email protected]> """ if get_bb_var('DISTRO') == 'poky-tiny': self.skipTest('core-image-full-cmdline not buildable for poky-tiny') features = 'INHERIT += "testimage"\n' features += 'TEST_SUITES = "ping ssh selftest"\n' + self.write_config(features) + + # Build core-image-sato and testimage + bitbake('core-image-full-cmdline socat') + bitbake('-c testimage core-image-full-cmdline') + + def test_testimage_dnf(self): + """ + Summary: Check package feeds functionality for dnf + Expected: 1. Check that remote package feeds can be accessed + Product: oe-core + Author: Alexander Kanavin <[email protected]> + """ + if get_bb_var('DISTRO') == 'poky-tiny': + self.skipTest('core-image-full-cmdline not buildable for poky-tiny') + + features = 'INHERIT += "testimage"\n' + features += 'TEST_SUITES = "ping ssh dnf-runtime"\n' # We don't yet know what the server ip and port will be - they will be patched # in at the start of the on-image test features += 'PACKAGE_FEED_URIS = "http://bogus_ip:bogus_port"\n'
Signature · 1 line
2.7.5