selftest/runtime-test.py: Add test to check PACKAGE_FEED_URIS var
A message that is not in the archive (sent off-list or not yet received): [email protected]
PATCH 1/1 selftest/runtime-test.py: Add test to check PACKAGE_FEED_URIS var
Testing that feeds specified with PACKAGE_FEED_URIS var are set correctly has two parts. First a build with this var set is required, and then smart update needs to be issued in the running taget.
The previous is not a common selftest practice because this is a simple test, but requires building and running a specific image, which takes a lot of time. testimage is not a good fit either, since the images tested there do not have the PACKAGE_FEED_URIS var set.
For this test, the runtime-test module is being used, which is a selftest module but runs a testimage command. The var and test environment were set in runtime-perf.py and the actual test is done in a new testcase added to meta-selftest layer.
[YOCTO #10872]
--- meta-selftest/lib/oeqa/runtime/cases/selftest.py | 32 ++++++++++++++++++++++++ meta/lib/oeqa/selftest/runtime-test.py | 3 +++ 2 files changed, 35 insertions(+)
meta-selftest/lib/oeqa/runtime/cases/selftest.py +32 -0
@@ -1,5 +1,8 @@ +from oeqa.utils.httpserver import HTTPService + from oeqa.runtime.case import OERuntimeTestCase from oeqa.core.decorator.depends import OETestDepends +from oeqa.runtime.cases.smart import SmartTest class Selftest(OERuntimeTestCase):
@@ -29,3 +32,32 @@ class Selftest(OERuntimeTestCase): (status, output) = self.target.run("socat -V") self.assertNotEqual(status, 0, msg="socat is still installed") + +class SmartSelftest(SmartTest): + + @classmethod + def setUpClass(cls): + cls.repolist = [] + cls.repo_server = HTTPService(os.path.join(cls.tc.td['WORKDIR'], 'rpms'), + cls.tc.target.server_ip) + cls.repo_server.port = 8080 + cls.repo_server.start() + + @classmethod + def tearDownClass(cls): + cls.repo_server.stop() + for repo in cls.repolist: + cls.tc.target.run('smart channel -y --remove %s' % repo) + + @OETestDepends(['ssh.SSHTest.test_ssh']) + def test_verify_package_feeds(self): + """ + Summary: Check correct setting of PACKAGE_FEED_URIS var + Expected: 1. Feeds were correctly set for smart + 2. Update recovers packages from host's repo + Author: Humberto Ibarra <[email protected]> + """ + output = self.smart('update') + import re + new_pkgs = re.match(r".*Channels have [0-9]+ new packages", output, re.DOTALL) + self.assertTrue(new_pkgs is not None, msg = "couldn't update packages")
meta/lib/oeqa/selftest/runtime-test.py +3 -0
@@ -111,6 +111,9 @@ class TestImage(oeSelfTest): features = 'INHERIT += "testimage"\n' features += 'TEST_SUITES = "ping ssh selftest"\n' + features += 'PACKAGE_FEED_URIS = "http://192.168.7.1:8080"\n' + features += 'EXTRA_IMAGE_FEATURES += "package-management"\n' + features += 'PACKAGE_CLASSES = "package_rpm"' self.write_config(features) # Build core-image-sato and testimage
Signature · 1 line
2.7.4
Quoted 3 lines · Humberto Ibarra
features = 'INHERIT += "testimage"\n' features += 'TEST_SUITES = "ping ssh selftest"\n'+ features += '
PACKAGE_FEED_URIS= "http://192.168.7.1:8080"\n'
Can you make the assumption that the IP address will be exactly this? I'm seeing various IP addresses in autobuilder logs when for example testimages are being tested simultaneously, and they're not always 192.168.7.1.
Alex