test: Correct pylint warnings in fs_helper
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@chromium.org>
This commit is contained in:
parent
4349ba5977
commit
7cbb57321e
@ -1,10 +1,10 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0+
|
# SPDX-License-Identifier: GPL-2.0+
|
||||||
#
|
#
|
||||||
# Helper functions for dealing with filesystems
|
|
||||||
#
|
|
||||||
# Copyright (c) 2018, Linaro Limited
|
# Copyright (c) 2018, Linaro Limited
|
||||||
# Author: Takahiro Akashi <takahiro.akashi@linaro.org>
|
# Author: Takahiro Akashi <takahiro.akashi@linaro.org>
|
||||||
|
|
||||||
|
"""Helper functions for dealing with filesystems"""
|
||||||
|
|
||||||
import re
|
import re
|
||||||
import os
|
import os
|
||||||
from subprocess import call, check_call, check_output, CalledProcessError
|
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
|
"""Create a file system volume
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
|
config (u_boot_config): U-Boot configuration
|
||||||
fs_type (str): File system type, e.g. 'ext4'
|
fs_type (str): File system type, e.g. 'ext4'
|
||||||
size (int): Size of file system in bytes
|
size (int): Size of file system in bytes
|
||||||
prefix (str): Prefix string of volume's file name
|
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 = f'{prefix}.{fs_type}.img'
|
||||||
fs_img = config.persistent_data_dir + '/' + fs_img
|
fs_img = os.path.join(config.persistent_data_dir, fs_img)
|
||||||
|
|
||||||
if fs_type == 'fat16':
|
if fs_type == 'fat16':
|
||||||
mkfs_opt = '-F 16'
|
mkfs_opt = '-F 16'
|
||||||
@ -32,23 +36,31 @@ def mk_fs(config, fs_type, size, prefix):
|
|||||||
else:
|
else:
|
||||||
fs_lnxtype = fs_type
|
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
|
# Some distributions do not add /sbin to the default PATH, where mkfs lives
|
||||||
if '/sbin' not in os.environ["PATH"].split(os.pathsep):
|
if '/sbin' not in os.environ["PATH"].split(os.pathsep):
|
||||||
os.environ["PATH"] += os.pathsep + '/sbin'
|
os.environ["PATH"] += os.pathsep + '/sbin'
|
||||||
|
|
||||||
try:
|
try:
|
||||||
check_call('rm -f %s' % fs_img, shell=True)
|
check_call(f'rm -f {fs_img}', shell=True)
|
||||||
check_call('dd if=/dev/zero of=%s bs=1M count=%d'
|
check_call(f'dd if=/dev/zero of={fs_img} bs=1M count={count}',
|
||||||
% (fs_img, count), shell=True)
|
shell=True)
|
||||||
check_call('mkfs.%s %s %s'
|
check_call(f'mkfs.{fs_lnxtype} {mkfs_opt} {fs_img}', shell=True)
|
||||||
% (fs_lnxtype, mkfs_opt, fs_img), shell=True)
|
|
||||||
if fs_type == 'ext4':
|
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:
|
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
|
return fs_img
|
||||||
except CalledProcessError:
|
except CalledProcessError:
|
||||||
call('rm -f %s' % fs_img, shell=True)
|
call(f'rm -f {fs_img}', shell=True)
|
||||||
raise
|
raise
|
||||||
|
|
||||||
|
# Just for trying out
|
||||||
|
if __name__ == "__main__":
|
||||||
|
import collections
|
||||||
|
|
||||||
|
CNF= collections.namedtuple('config', 'persistent_data_dir')
|
||||||
|
|
||||||
|
mk_fs(CNF('.'), 'ext4', 0x1000000, 'pref')
|
||||||
|
Loading…
Reference in New Issue
Block a user