[OE-core] [PATCH 08/20] oeqa.selftest.imagefeatures: Split configuration from code

Jose Lamego jose.a.lamego at linux.intel.com
Mon Aug 8 16:22:56 UTC 2016


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.lamego at linux.intel.com>
---
 meta/lib/oeqa/selftest/conf/imagefeatures.conf | 19 +++++++++
 meta/lib/oeqa/selftest/imagefeatures.py        | 55 +++++++++++++++++---------
 2 files changed, 56 insertions(+), 18 deletions(-)
 create mode 100644 meta/lib/oeqa/selftest/conf/imagefeatures.conf

diff --git a/meta/lib/oeqa/selftest/conf/imagefeatures.conf b/meta/lib/oeqa/selftest/conf/imagefeatures.conf
new file mode 100644
index 0000000..23e9dd5
--- /dev/null
+++ b/meta/lib/oeqa/selftest/conf/imagefeatures.conf
@@ -0,0 +1,19 @@
+[imagefeatures]
+test_user = tester
+root_user = root
+test_non_root_user_can_connect_via_ssh_without_password_features = 
+    'EXTRA_IMAGE_FEATURES = \ 
+     "ssh-server-openssh empty-root-password allow-empty-password"\n\
+     INHERIT += "extrausers"\n'
+test_non_root_user_can_connect_via_ssh_without_password_image = core-image-minimal
+test_all_users_can_connect_via_ssh_without_password_features = 
+    'EXTRA_IMAGE_FEATURES = \
+     "ssh-server-openssh allow-empty-password"\n\
+     INHERIT += "extrausers"\n'
+test_all_users_can_connect_via_ssh_without_password_image = core-image-minimal 
+test_wayland_support_in_image_features = 
+    'DISTRO_FEATURES_append = " wayland"\n\
+     CORE_IMAGE_EXTRA_INSTALL += "wayland weston"'
+test_wayland_support_in_image_image = core-image-weston
+test_bmap_features = IMAGE_FSTYPES += " ext4 ext4.bmap"
+test_bmap_image = core-image-minimal
diff --git a/meta/lib/oeqa/selftest/imagefeatures.py b/meta/lib/oeqa/selftest/imagefeatures.py
index 08e382f..654a020 100644
--- a/meta/lib/oeqa/selftest/imagefeatures.py
+++ b/meta/lib/oeqa/selftest/imagefeatures.py
@@ -5,11 +5,17 @@ from oeqa.utils.sshcontrol import SSHControl
 import os
 import sys
 import logging
+from oeqa.utils.readconfig import conffile
+
 
 class ImageFeatures(oeSelfTest):
 
-    test_user = 'tester'
-    root_user = 'root'
+    @classmethod
+    def setUpClass(cls):
+        # Get test configurations from configuration file
+        cls.config = conffile(__file__)
+        cls.test_user = cls.config.get('imagefeatures', 'test_user')
+        cls.root_user = cls.config.get('imagefeatures', 'root_user')
 
     @testcase(1107)
     def test_non_root_user_can_connect_via_ssh_without_password(self):
@@ -22,15 +28,22 @@ class ImageFeatures(oeSelfTest):
         AutomatedBy: Daniel Istrate <daniel.alexandrux.istrate at intel.com>
         """
 
-        features = 'EXTRA_IMAGE_FEATURES = "ssh-server-openssh empty-root-password allow-empty-password"\n'
-        features += 'INHERIT += "extrausers"\n'
-        features += 'EXTRA_USERS_PARAMS = "useradd -p \'\' {}; usermod -s /bin/sh {};"'.format(self.test_user, self.test_user)
+        features = eval(
+                 self.config.get(
+                     'imagefeatures',
+                     'test_non_root_user_can_connect_via_ssh_without_password_\
+features'))
+        image = self.config.get(
+              'imagefeatures',
+              'test_non_root_user_can_connect_via_ssh_without_password_image')
+        features += 'EXTRA_USERS_PARAMS = "useradd -p \'\' {}; usermod -s \
+/bin/sh {};"'.format(self.test_user, self.test_user)
         self.write_config(features)
 
         # Build a core-image-minimal
-        bitbake('core-image-minimal')
+        bitbake(image)
 
-        with runqemu("core-image-minimal") as qemu:
+        with runqemu(image) as qemu:
             # Attempt to ssh with each user into qemu with empty password
             for user in [self.root_user, self.test_user]:
                 ssh = SSHControl(ip=qemu.ip, logfile=qemu.sshlog, user=user)
@@ -48,15 +61,19 @@ class ImageFeatures(oeSelfTest):
         AutomatedBy: Daniel Istrate <daniel.alexandrux.istrate at intel.com>
         """
 
-        features = 'EXTRA_IMAGE_FEATURES = "ssh-server-openssh allow-empty-password"\n'
-        features += 'INHERIT += "extrausers"\n'
-        features += 'EXTRA_USERS_PARAMS = "useradd -p \'\' {}; usermod -s /bin/sh {};"'.format(self.test_user, self.test_user)
+        features = eval(
+                 self.config.get('imagefeatures', 'test_all_users_can_connect_\
+via_ssh_without_password_features'))
+        image = self.config.get('imagefeatures',  'test_all_users_can_connect_\
+via_ssh_without_password_image')
+        features += 'EXTRA_USERS_PARAMS = "useradd -p \'\' {}; usermod -s \
+/bin/sh {};"'.format(self.test_user, self.test_user)
         self.write_config(features)
 
         # Build a core-image-minimal
-        bitbake('core-image-minimal')
+        bitbake(image)
 
-        with runqemu("core-image-minimal") as qemu:
+        with runqemu(image) as qemu:
             # Attempt to ssh with each user into qemu with empty password
             for user in [self.root_user, self.test_user]:
                 ssh = SSHControl(ip=qemu.ip, logfile=qemu.sshlog, user=user)
@@ -66,7 +83,6 @@ class ImageFeatures(oeSelfTest):
                 else:
                     self.assertEqual(status, 0, 'ssh to user tester failed with %s' % output)
 
-
     @testcase(1116)
     def test_clutter_image_can_be_built(self):
         """
@@ -91,12 +107,15 @@ class ImageFeatures(oeSelfTest):
         AutomatedBy: Daniel Istrate <daniel.alexandrux.istrate at intel.com>
         """
 
-        features = 'DISTRO_FEATURES_append = " wayland"\n'
-        features += 'CORE_IMAGE_EXTRA_INSTALL += "wayland weston"'
+        features = eval(self.config.get(
+                        'imagefeatures',
+                        'test_wayland_support_in_image_features'))
+        image = self.config.get(
+                    'imagefeatures', 'test_wayland_support_in_image_image')
         self.write_config(features)
 
         # Build a core-image-weston
-        bitbake('core-image-weston')
+        bitbake(image)
 
     def test_bmap(self):
         """
@@ -107,10 +126,10 @@ class ImageFeatures(oeSelfTest):
         Author:      Ed Bartosh <ed.bartosh at linux.intel.com>
         """
 
-        features = 'IMAGE_FSTYPES += " ext4 ext4.bmap"'
+        features = self.config.get('imagefeatures', 'test_bmap_features')
+        image_name = self.config.get('imagefeatures', 'test_bmap_image')
         self.write_config(features)
 
-        image_name = 'core-image-minimal'
         bitbake(image_name)
 
         deploy_dir = get_bb_var('DEPLOY_DIR_IMAGE')
-- 
1.8.3.1




More information about the Openembedded-core mailing list