Skip to contentSkip to conversation

imagefeatures.py: Added testcase to track IMAGE_GEN_DEBUGFS

PATCH Superseded Humberto Ibarra 2 participants 5 messages Jun 16, 2017 – Jun 27, 2017

v1 of 3 Superseded Latest is v3 →

lore
Share & tools
lore
#0 lore raw

cover imagefeatures.py: Added testcase to track IMAGE_GEN_DEBUGFS

Patch to add a testcase for IMAGE_GEN_DEBUGFS variable. Checks if debug filesystem and packages were created.

The following changes since commit 9ea5a31776440abd6468f003c5e1905f079446d3:

ovmf: fix secureboot PACKAGECONFIG + OpenSSL update (2017-06-16 10:58:23 +0100)

are available in the git repository at:

git://git.yoctoproject.org/poky-contrib humberto/ImageGenDebugfs
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=humberto/ImageGenDebugfs

Humberto Ibarra (1):
imagefeatures.py: Added testcase to track IMAGE_GEN_DEBUGFS

 meta/lib/oeqa/selftest/cases/imagefeatures.py | 33 +++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)
Signature · 1 line
2.7.5
#1 lore raw

PATCH 1/1 imagefeatures.py: Added testcase to track IMAGE_GEN_DEBUGFS

Add new testcase to check varibale IMAGE_GEN_DEBUGFS. Test makes sure that debug filesystem and packages are created accordingly.

[YOCTO #10906]

---
 meta/lib/oeqa/selftest/cases/imagefeatures.py | 33 +++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)
meta/lib/oeqa/selftest/cases/imagefeatures.py +33 -0
index 45a06fe..8bf084e 100644
@@ -3,6 +3,7 @@ from oeqa.utils.commands import runCmd, bitbake, get_bb_var, runqemu
 from oeqa.core.decorator.oeid import OETestID
 from oeqa.utils.sshcontrol import SSHControl
 import os
+import glob
 
 class ImageFeatures(OESelftestTestCase):
 
@@ -123,3 +124,35 @@ class ImageFeatures(OESelftestTestCase):
         # check if result image is sparse
         image_stat = os.stat(image_path)
         self.assertTrue(image_stat.st_size > image_stat.st_blocks * 512)
+
+    def test_image_gen_debugfs(self):
+        """
+        Summary:     Check debugfs generation
+        Expected:    1. core-image-minimal can be build with IMAGE_GEN_DEBUGFS variable set
+                     2. debug filesystem is created when variable set
+                     3. debug packages created, either rpm, deb or ipk
+        Product:     oe-core
+        Author:      Humberto Ibarra <[email protected]>
+        """
+
+        image_name = 'core-image-minimal'
+        clean_cmd = '-c clean %s' % image_name
+        deploy_dir_image = get_bb_var('DEPLOY_DIR_IMAGE')
+
+        for pack_class in [ "rpm", "deb", "ipk"]:
+            bitbake(clean_cmd)
+            features = 'IMAGE_GEN_DEBUGFS = "1"\n'
+            features += 'IMAGE_FSTYPES_DEBUGFS = "tar.bz2"\n'
+            features += 'PACKAGE_CLASSES = "package_%s"' % pack_class
+            self.write_config(features)
+
+            bitbake(image_name)
+            debug_files = glob.glob(os.path.join(deploy_dir_image,"*-dbg.rootfs.tar.bz2"))
+            self.assertNotEqual(len(debug_files), 0,
+                    'debug filesystem not generated for %s' % pack_class)
+
+            deploy_packages_var = 'DEPLOY_DIR_%s' % pack_class.upper()
+            debug_pack_files = glob.glob(os.path.join(get_bb_var(deploy_packages_var),
+                    get_bb_var("MACHINE").replace("-","_"), "*-dbg*"))
+            self.assertNotEqual(len(debug_pack_files), 0,
+                    'debug packages not generated for %s' % pack_class)
Signature · 1 line
2.7.5
#2 lore raw
Quoted 21 lines · Humberto Ibarra
meta/lib/oeqa/selftest/cases/imagefeatures.py +13 -0
+        image_name = 'core-image-minimal'
+        clean_cmd = '-c clean %s' % image_name
+        deploy_dir_image = get_bb_var('DEPLOY_DIR_IMAGE')
+
+        for pack_class in [ "rpm", "deb", "ipk"]:
+            bitbake(clean_cmd)
+            features = 'IMAGE_GEN_DEBUGFS = "1"\n'
+            features += 'IMAGE_FSTYPES_DEBUGFS = "tar.bz2"\n'
+            features += 'PACKAGE_CLASSES = "package_%s"' % pack_class
+            self.write_config(features)
+
+            bitbake(image_name)
+            debug_files = glob.glob(os.path.join(deploy_

dir_image,"*-dbg.rootfs.tar.bz2"))

meta/lib/oeqa/selftest/cases/imagefeatures.py +5 -0
+            self.assertNotEqual(len(debug_files), 0,
+                    'debug filesystem not generated for %s' % pack_class)
+
+            deploy_packages_var = 'DEPLOY_DIR_%s' % pack_class.upper()
+            debug_pack_files = glob.glob(os.path.join(get_bb_

var(deploy_packages_var),

meta/lib/oeqa/selftest/cases/imagefeatures.py class ImageFeatures(OESelftestTestCase): · line 158

Quoted 3 lines
meta/lib/oeqa/selftest/cases/imagefeatures.py +3 -0
+                    get_bb_var("MACHINE").replace("-","_"), "*-dbg*"))
+            self.assertNotEqual(len(debug_pack_files), 0,
+                    'debug packages not generated for %s' % pack_class)

Each call to get_bb_var() is a call to bitbake, so it's best to batch up these as much as possible into a single get_bb_vars() call.

Also is there any point to checking that dbg packages were created?

Ross

#3 lore raw

Thought about testing debug packages because the bug comments mentioned iterating through rpm, deb and ipk. If there is no value to this part I could drop it and only test for the debug filesystem. In this cases there any value to check the debug filesystem in all three package classes?

Humberto

From: Burton, Ross [mailto:[email protected]]
Sent: Friday, June 16, 2017 12:07 PM
To: Ibarra Lopez, Humberto <[email protected]>
Cc: OE-core <[email protected]>
Subject: Re: [OE-core] [PATCH 1/1] imagefeatures.py: Added testcase to track IMAGE_GEN_DEBUGFS

On 16 June 2017 at 18:01, Humberto Ibarra <[email protected]<mailto:[email protected]>> wrote:

+        image_name = 'core-image-minimal'
+        clean_cmd = '-c clean %s' % image_name
+        deploy_dir_image = get_bb_var('DEPLOY_DIR_IMAGE')
+
+        for pack_class in [ "rpm", "deb", "ipk"]:
+            bitbake(clean_cmd)
+            features = 'IMAGE_GEN_DEBUGFS = "1"\n'
+            features += 'IMAGE_FSTYPES_DEBUGFS = "tar.bz2"\n'
+            features += 'PACKAGE_CLASSES = "package_%s"' % pack_class
+            self.write_config(features)
+
+            bitbake(image_name)
+            debug_files = glob.glob(os.path.join(deploy_dir_image,"*-dbg.rootfs.tar.bz2"))
+            self.assertNotEqual(len(debug_files), 0,

+ 'debug filesystem not generated for %s' % pack_class)
+
+ deploy_packages_var = 'DEPLOY_DIR_%s' % pack_class.upper()
+ debug_pack_files = glob.glob(os.path.join(get_bb_var(deploy_packages_var),
+ get_bb_var("MACHINE").replace("-","_"), "*-dbg*"))
+ self.assertNotEqual(len(debug_pack_files), 0,
+ 'debug packages not generated for %s' % pack_class)

Each call to get_bb_var() is a call to bitbake, so it's best to batch up these as much as possible into a single get_bb_vars() call.

Also is there any point to checking that dbg packages were created?

Ross

#4 lore raw
Quoted 6 lines · Humberto

Thought about testing debug packages because the bug comments mentioned iterating through rpm, deb and ipk. If there is no value to this part I could drop it and only test for the debug filesystem. In this cases there any value to check the debug filesystem in all three package classes?

The debugfs generation involves using the package manager, but we exercise those codepaths already so I'd be happy with just one package manager being used for speed.

Ross