[PATCH 04/17] test: Correct pylint warnings in fs_helper

Simon Glass sjg at chromium.org
Sun Oct 30 02:47:06 CET 2022


Tidy this up so that pylint is happy. Use hex for the 1MB size and make
sure it is not a floating-point value.

Add a little main program to allow the code to be tried out, since at
present is only called from a long-running test.

Signed-off-by: Simon Glass <sjg at chromium.org>
---

 test/py/tests/fs_helper.py | 38 +++++++++++++++++++++++++-------------
 1 file changed, 25 insertions(+), 13 deletions(-)

diff --git a/test/py/tests/fs_helper.py b/test/py/tests/fs_helper.py
index 2d8f1f63add..9882ddb1daa 100644
--- a/test/py/tests/fs_helper.py
+++ b/test/py/tests/fs_helper.py
@@ -1,10 +1,10 @@
 # SPDX-License-Identifier:      GPL-2.0+
 #
-# Helper functions for dealing with filesystems
-#
 # Copyright (c) 2018, Linaro Limited
 # Author: Takahiro Akashi <takahiro.akashi at linaro.org>
 
+"""Helper functions for dealing with filesystems"""
+
 import re
 import os
 from subprocess import call, check_call, check_output, CalledProcessError
@@ -13,12 +13,16 @@ def mk_fs(config, fs_type, size, prefix):
     """Create a file system volume
 
     Args:
+        config (u_boot_config): U-Boot configuration
         fs_type (str): File system type, e.g. 'ext4'
         size (int): Size of file system in bytes
         prefix (str): Prefix string of volume's file name
+
+    Raises:
+        CalledProcessError: if any error occurs when creating the filesystem
     """
-    fs_img = '%s.%s.img' % (prefix, fs_type)
-    fs_img = config.persistent_data_dir + '/' + fs_img
+    fs_img = f'{prefix}.{fs_type}.img'
+    fs_img = os.path.join(config.persistent_data_dir, fs_img)
 
     if fs_type == 'fat16':
         mkfs_opt = '-F 16'
@@ -32,23 +36,31 @@ def mk_fs(config, fs_type, size, prefix):
     else:
         fs_lnxtype = fs_type
 
-    count = (size + 1048576 - 1) / 1048576
+    count = (size + 0x100000 - 1) // 0x100000
 
     # Some distributions do not add /sbin to the default PATH, where mkfs lives
     if '/sbin' not in os.environ["PATH"].split(os.pathsep):
         os.environ["PATH"] += os.pathsep + '/sbin'
 
     try:
-        check_call('rm -f %s' % fs_img, shell=True)
-        check_call('dd if=/dev/zero of=%s bs=1M count=%d'
-            % (fs_img, count), shell=True)
-        check_call('mkfs.%s %s %s'
-            % (fs_lnxtype, mkfs_opt, fs_img), shell=True)
+        check_call(f'rm -f {fs_img}', shell=True)
+        check_call(f'dd if=/dev/zero of={fs_img} bs=1M count={count}',
+                   shell=True)
+        check_call(f'mkfs.{fs_lnxtype} {mkfs_opt} {fs_img}', shell=True)
         if fs_type == 'ext4':
-            sb_content = check_output('tune2fs -l %s' % fs_img, shell=True).decode()
+            sb_content = check_output(f'tune2fs -l {fs_img}',
+                                      shell=True).decode()
             if 'metadata_csum' in sb_content:
-                check_call('tune2fs -O ^metadata_csum %s' % fs_img, shell=True)
+                check_call(f'tune2fs -O ^metadata_csum {fs_img}', shell=True)
         return fs_img
     except CalledProcessError:
-        call('rm -f %s' % fs_img, shell=True)
+        call(f'rm -f {fs_img}', shell=True)
         raise
+
+# Just for trying out
+if __name__ == "__main__":
+    import collections
+
+    CNF= collections.namedtuple('config', 'persistent_data_dir')
+
+    mk_fs(CNF('.'), 'ext4', 0x1000000, 'pref')
-- 
2.38.1.273.g43a17bfeac-goog



More information about the U-Boot mailing list