[OE-core] [PATCH 1/1] selftest/runtime-test.py: Add test to check PACKAGE_FEED_URIS var

Humberto Ibarra humberto.ibarra.lopez at intel.com
Mon Feb 20 18:54:52 UTC 2017


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]

Signed-off-by: Humberto Ibarra <humberto.ibarra.lopez at intel.com>
---
 meta-selftest/lib/oeqa/runtime/cases/selftest.py | 32 ++++++++++++++++++++++++
 meta/lib/oeqa/selftest/runtime-test.py           |  3 +++
 2 files changed, 35 insertions(+)

diff --git a/meta-selftest/lib/oeqa/runtime/cases/selftest.py b/meta-selftest/lib/oeqa/runtime/cases/selftest.py
index 329470f..e49d028 100644
--- a/meta-selftest/lib/oeqa/runtime/cases/selftest.py
+++ b/meta-selftest/lib/oeqa/runtime/cases/selftest.py
@@ -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 <humberto.ibarra.lopez at intel.com>
+        """
+        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")
diff --git a/meta/lib/oeqa/selftest/runtime-test.py b/meta/lib/oeqa/selftest/runtime-test.py
index 52e5b27..d96290e 100644
--- a/meta/lib/oeqa/selftest/runtime-test.py
+++ b/meta/lib/oeqa/selftest/runtime-test.py
@@ -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
-- 
2.7.4




More information about the Openembedded-core mailing list