diff --git a/scripts/build/check_init_priorities.py b/scripts/build/check_init_priorities.py index 1ae2772a54948..73a5574ef67df 100755 --- a/scripts/build/check_init_priorities.py +++ b/scripts/build/check_init_priorities.py @@ -98,9 +98,9 @@ class variables in the {"level name": ["call", ...]} format. Attributes: file_path: path of the file to be loaded. """ - def __init__(self, file_path): + def __init__(self, file_path, elf_file): self.file_path = file_path - self._elf = ELFFile(open(file_path, "rb")) + self._elf = ELFFile(elf_file) self._load_objects() self._load_level_addr() self._process_initlevels() @@ -226,7 +226,7 @@ class Validator(): edt_pickle: name of the EDT pickle file log: a logging.Logger object """ - def __init__(self, elf_file_path, edt_pickle, log): + def __init__(self, elf_file_path, edt_pickle, log, elf_file): self.log = log edt_pickle_path = pathlib.Path( @@ -237,7 +237,7 @@ def __init__(self, elf_file_path, edt_pickle, log): self._ord2node = edt.dep_ord2node - self._obj = ZephyrInitLevels(elf_file_path) + self._obj = ZephyrInitLevels(elf_file_path, elf_file) self.errors = 0 @@ -344,17 +344,18 @@ def main(argv=None): log.info(f"check_init_priorities: {args.elf_file}") - validator = Validator(args.elf_file, args.edt_pickle, log) - if args.initlevels: - validator.print_initlevels() - else: - validator.check_edt() + with open(args.elf_file, "rb") as elf_file: + validator = Validator(args.elf_file, args.edt_pickle, log, elf_file) + if args.initlevels: + validator.print_initlevels() + else: + validator.check_edt() - if args.always_succeed: - return 0 + if args.always_succeed: + return 0 - if validator.errors: - return 1 + if validator.errors: + return 1 return 0 diff --git a/scripts/build/check_init_priorities_test.py b/scripts/build/check_init_priorities_test.py index e249321a62082..67129eaac70ec 100755 --- a/scripts/build/check_init_priorities_test.py +++ b/scripts/build/check_init_priorities_test.py @@ -82,7 +82,7 @@ def test_load_objects(self, mock_zilinit): sts.iter_symbols.return_value = [s0, s1, s2] - obj = check_init_priorities.ZephyrInitLevels("") + obj = check_init_priorities.ZephyrInitLevels("", None) obj._elf = mock_elf obj._load_objects() @@ -126,7 +126,7 @@ def test_load_level_addr(self, mock_zilinit): sts.iter_symbols.return_value = [s0, s1, s2, s3, s4, s5, s6] - obj = check_init_priorities.ZephyrInitLevels("") + obj = check_init_priorities.ZephyrInitLevels("", None) obj._elf = mock_elf obj._load_level_addr() @@ -142,7 +142,7 @@ def test_load_level_addr(self, mock_zilinit): @mock.patch("check_init_priorities.ZephyrInitLevels.__init__", return_value=None) def test_device_ord_from_name(self, mock_zilinit): - obj = check_init_priorities.ZephyrInitLevels("") + obj = check_init_priorities.ZephyrInitLevels("", None) self.assertEqual(obj._device_ord_from_name(None), None) self.assertEqual(obj._device_ord_from_name("hey, hi!"), None) @@ -150,7 +150,7 @@ def test_device_ord_from_name(self, mock_zilinit): @mock.patch("check_init_priorities.ZephyrInitLevels.__init__", return_value=None) def test_object_name(self, mock_zilinit): - obj = check_init_priorities.ZephyrInitLevels("") + obj = check_init_priorities.ZephyrInitLevels("", None) obj._objects = {0x123: ("name", 4)} self.assertEqual(obj._object_name(0), "NULL") @@ -159,7 +159,7 @@ def test_object_name(self, mock_zilinit): @mock.patch("check_init_priorities.ZephyrInitLevels.__init__", return_value=None) def test_initlevel_pointer_32(self, mock_zilinit): - obj = check_init_priorities.ZephyrInitLevels("") + obj = check_init_priorities.ZephyrInitLevels("", None) obj._elf = mock.Mock() obj._elf.elfclass = 32 mock_section = mock.Mock() @@ -176,7 +176,7 @@ def test_initlevel_pointer_32(self, mock_zilinit): @mock.patch("check_init_priorities.ZephyrInitLevels.__init__", return_value=None) def test_initlevel_pointer_64(self, mock_zilinit): - obj = check_init_priorities.ZephyrInitLevels("") + obj = check_init_priorities.ZephyrInitLevels("", None) obj._elf = mock.Mock() obj._elf.elfclass = 64 mock_section = mock.Mock() @@ -195,7 +195,7 @@ def test_initlevel_pointer_64(self, mock_zilinit): @mock.patch("check_init_priorities.ZephyrInitLevels._initlevel_pointer") @mock.patch("check_init_priorities.ZephyrInitLevels.__init__", return_value=None) def test_process_initlevels(self, mock_zilinit, mock_ip, mock_on): - obj = check_init_priorities.ZephyrInitLevels("") + obj = check_init_priorities.ZephyrInitLevels("", None) obj._init_level_addr = { "EARLY": 0x00, "PRE_KERNEL_1": 0x00, @@ -250,15 +250,15 @@ def test_initialize(self, mock_pl, mock_zil): mock_zil.return_value = mock_obj with mock.patch("builtins.open", mock.mock_open()) as mock_open: - validator = check_init_priorities.Validator("path", "pickle", mock_log) + validator = check_init_priorities.Validator("path", "pickle", mock_log, None) self.assertEqual(validator._obj, mock_obj) - mock_zil.assert_called_once_with("path") + mock_zil.assert_called_once_with("path", None) mock_open.assert_called_once_with(pathlib.Path("pickle"), "rb") @mock.patch("check_init_priorities.Validator.__init__", return_value=None) def test_check_dep_same_node(self, mock_vinit): - validator = check_init_priorities.Validator("", "", None) + validator = check_init_priorities.Validator("", "", None, None) validator.log = mock.Mock() validator._check_dep(123, 123) @@ -269,7 +269,7 @@ def test_check_dep_same_node(self, mock_vinit): @mock.patch("check_init_priorities.Validator.__init__", return_value=None) def test_check_dep_no_prio(self, mock_vinit): - validator = check_init_priorities.Validator("", "", None) + validator = check_init_priorities.Validator("", "", None, None) validator.log = mock.Mock() validator._obj = mock.Mock() @@ -289,7 +289,7 @@ def test_check_dep_no_prio(self, mock_vinit): @mock.patch("check_init_priorities.Validator.__init__", return_value=None) def test_check(self, mock_vinit): - validator = check_init_priorities.Validator("", "", None) + validator = check_init_priorities.Validator("", "", None, None) validator.log = mock.Mock() validator._obj = mock.Mock() validator.errors = 0 @@ -313,7 +313,7 @@ def test_check(self, mock_vinit): @mock.patch("check_init_priorities.Validator.__init__", return_value=None) def test_check_same_prio_assert(self, mock_vinit): - validator = check_init_priorities.Validator("", "", None) + validator = check_init_priorities.Validator("", "", None, None) validator.log = mock.Mock() validator._obj = mock.Mock() validator.errors = 0 @@ -331,7 +331,7 @@ def test_check_same_prio_assert(self, mock_vinit): @mock.patch("check_init_priorities.Validator.__init__", return_value=None) def test_check_ignored(self, mock_vinit): - validator = check_init_priorities.Validator("", "", None) + validator = check_init_priorities.Validator("", "", None, None) validator.log = mock.Mock() validator._obj = mock.Mock() validator.errors = 0 @@ -374,7 +374,7 @@ def test_check_edt(self, mock_vinit, mock_cd): dev2 = mock.Mock() dev2.depends_on = [d2] - validator = check_init_priorities.Validator("", "", None) + validator = check_init_priorities.Validator("", "", None, None) validator._ord2node = {1: dev0, 2: dev1, 3: dev2} validator._obj = mock.Mock() validator._obj.devices = {1: 10, 2: 10, 3: 20} diff --git a/scripts/build/gen_offset_header.py b/scripts/build/gen_offset_header.py index 3eb9f21988e07..5f4dcd3d650ff 100755 --- a/scripts/build/gen_offset_header.py +++ b/scripts/build/gen_offset_header.py @@ -77,8 +77,7 @@ def gen_offset_header(input_name, input_file, output_file): args = parser.parse_args() - input_file = open(args.input, 'rb') - output_file = open(args.output, 'w') + with open(args.input, 'rb') as input_file, open(args.output, 'w') as output_file: + ret = gen_offset_header(args.input, input_file, output_file) - ret = gen_offset_header(args.input, input_file, output_file) sys.exit(ret)