diff mbox series

[v3,1/1] selftest: wic: wic_sector_size add wic-tools path

Message ID 20241101082208.1635320-2-vince_chang@aspeedtech.com
State Accepted, archived
Commit 013dcdf75669421bc38d699263cb1e8d5b95d398
Headers show
Series wic support different sector size | expand

Commit Message

Vince Chang Nov. 1, 2024, 8:22 a.m. UTC
Add wic-tools to the PATH to avoid failures when running the
wic_sector_size test case on a build host that doesn’t have parted.

Signed-off-by: Vince Chang <vince_chang@aspeedtech.com>
---
 meta/lib/oeqa/selftest/cases/wic.py | 92 +++++++++++++++--------------
 1 file changed, 48 insertions(+), 44 deletions(-)
diff mbox series

Patch

diff --git a/meta/lib/oeqa/selftest/cases/wic.py b/meta/lib/oeqa/selftest/cases/wic.py
index fa7e4aae8c..207e487002 100644
--- a/meta/lib/oeqa/selftest/cases/wic.py
+++ b/meta/lib/oeqa/selftest/cases/wic.py
@@ -842,55 +842,59 @@  bootloader --ptable gpt""")
 
     def test_wic_sector_size(self):
         """Test generation image sector size"""
-        # Add WIC_SECTOR_SIZE into config
-        config = 'WIC_SECTOR_SIZE = "4096"\n'\
-                 'WIC_BLOCK_SIZE = "4096"\n'\
-                 'WICVARS:append = " WIC_SECTOR_SIZE WIC_BLOCK_SIZE"\n'
-        self.append_config(config)
-        bitbake('core-image-minimal')
-
-        # Check WIC_SECTOR_SIZE apply to bitbake variable
-        wic_sector_size_str = get_bb_var('WIC_SECTOR_SIZE', 'core-image-minimal')
-        wic_sector_size = int(wic_sector_size_str)
-        self.assertEqual(4096, wic_sector_size)
-
-        self.logger.info("Test wic_sector_size: %d \n" % wic_sector_size)
+ 
+        oldpath = os.environ['PATH']
+        os.environ['PATH'] = get_bb_var("PATH", "wic-tools")
 
-        with NamedTemporaryFile("w", suffix=".wks") as wks:
-            wks.writelines(
-                ['bootloader --ptable gpt\n',
-                 'part --fstype ext4 --source rootfs --label rofs-a --mkfs-extraopts "-b 4096"\n',
-                 'part --fstype ext4 --source rootfs --use-uuid --mkfs-extraopts "-b 4096"\n'])
-            wks.flush()
-            cmd = "wic create %s -e core-image-minimal -o %s" % (wks.name, self.resultdir)
-            runCmd(cmd)
-            wksname = os.path.splitext(os.path.basename(wks.name))[0]
-            images = glob(os.path.join(self.resultdir, "%s-*direct" % wksname))
-            self.assertEqual(1, len(images))
+        try:
+            # Add WIC_SECTOR_SIZE into config
+            config = 'WIC_SECTOR_SIZE = "4096"\n'\
+                     'WICVARS:append = " WIC_SECTOR_SIZE"\n'
+            self.append_config(config)
+            bitbake('core-image-minimal')
+
+            # Check WIC_SECTOR_SIZE apply to bitbake variable
+            wic_sector_size_str = get_bb_var('WIC_SECTOR_SIZE', 'core-image-minimal')
+            wic_sector_size = int(wic_sector_size_str)
+            self.assertEqual(4096, wic_sector_size)
+
+            self.logger.info("Test wic_sector_size: %d \n" % wic_sector_size)
+
+            with NamedTemporaryFile("w", suffix=".wks") as wks:
+                wks.writelines(
+                    ['bootloader --ptable gpt\n',
+                     'part --fstype ext4 --source rootfs --label rofs-a --mkfs-extraopts "-b 4096"\n',
+                     'part --fstype ext4 --source rootfs --use-uuid --mkfs-extraopts "-b 4096"\n'])
+                wks.flush()
+                cmd = "wic create %s -e core-image-minimal -o %s" % (wks.name, self.resultdir)
+                runCmd(cmd)
+                wksname = os.path.splitext(os.path.basename(wks.name))[0]
+                images = glob(os.path.join(self.resultdir, "%s-*direct" % wksname))
+                self.assertEqual(1, len(images))
 
-        sysroot = get_bb_var('RECIPE_SYSROOT_NATIVE', 'wic-tools')
-        # list partitions
-        result = runCmd("wic ls %s -n %s" % (images[0], sysroot))
-        self.assertEqual(3, len(result.output.split('\n')))
-        self.logger.info("result: %s \n" % result.output)
+            sysroot = get_bb_var('RECIPE_SYSROOT_NATIVE', 'wic-tools')
+            # list partitions
+            result = runCmd("wic ls %s -n %s" % (images[0], sysroot))
+            self.assertEqual(3, len(result.output.split('\n')))
 
-        # verify partition size with wic
-        res = runCmd("export PARTED_SECTOR_SIZE=%d; parted -m %s unit b p" % (wic_sector_size, images[0]),
-                     stderr=subprocess.PIPE)
+            # verify partition size with wic
+            res = runCmd("export PARTED_SECTOR_SIZE=%d; parted -m %s unit b p" % (wic_sector_size, images[0]),
+                         stderr=subprocess.PIPE)
 
-        self.logger.info("res: %s \n" % res.output)
-        # parse parted output which looks like this:
-        # BYT;\n
-        # /var/tmp/wic/build/tmpgjzzefdd-202410281021-sda.direct:78569472B:file:4096:4096:gpt::;\n
-        # 1:139264B:39284735B:39145472B:ext4:rofs-a:;\n
-        # 2:39284736B:78430207B:39145472B:ext4:primary:;\n
-        disk_info = res.output.splitlines()[1]
-        # Check sector sizes
-        sector_size_logical = int(disk_info.split(":")[3])
-        sector_size_physical = int(disk_info.split(":")[4])
-        self.assertEqual(wic_sector_size, sector_size_logical, "Logical sector size is not %d." % wic_sector_size)
-        self.assertEqual(wic_sector_size, sector_size_physical, "Physical sector size is not %d." % wic_sector_size)
+            # parse parted output which looks like this:
+            # BYT;\n
+            # /var/tmp/wic/build/tmpgjzzefdd-202410281021-sda.direct:78569472B:file:4096:4096:gpt::;\n
+            # 1:139264B:39284735B:39145472B:ext4:rofs-a:;\n
+            # 2:39284736B:78430207B:39145472B:ext4:primary:;\n
+            disk_info = res.output.splitlines()[1]
+            # Check sector sizes
+            sector_size_logical = int(disk_info.split(":")[3])
+            sector_size_physical = int(disk_info.split(":")[4])
+            self.assertEqual(wic_sector_size, sector_size_logical, "Logical sector size is not %d." % wic_sector_size)
+            self.assertEqual(wic_sector_size, sector_size_physical, "Physical sector size is not %d." % wic_sector_size)
 
+        finally:
+            os.environ['PATH'] = oldpath
 
 class Wic2(WicTestCase):