diff options
author | Lukas Funke <lukas.funke@weidmueller.com> | 2023-07-18 13:53:09 +0200 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2023-08-02 07:51:09 -0600 |
commit | 43176ed86d9f120efb3e86084d83a714bf076d29 (patch) | |
tree | a26d06fdaf2d4cc5ec1633ab583e594476f1d6a5 /tools | |
parent | 7755b2200777f72dca87dd169138e95f011bbcb9 (diff) | |
download | u-boot-43176ed86d9f120efb3e86084d83a714bf076d29.zip u-boot-43176ed86d9f120efb3e86084d83a714bf076d29.tar.gz u-boot-43176ed86d9f120efb3e86084d83a714bf076d29.tar.bz2 |
binman: elf: Check for ELF_TOOLS availability and remove extra semicolon
Check if elf tools are available when running DecodeElf(). Also
remove superfuous semicolon at line ending.
Signed-off-by: Lukas Funke <lukas.funke@weidmueller.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Revert part of patch to make binman test pass
Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/binman/elf.py | 10 | ||||
-rw-r--r-- | tools/binman/elf_test.py | 16 |
2 files changed, 20 insertions, 6 deletions
diff --git a/tools/binman/elf.py b/tools/binman/elf.py index 4219001..2ecc95f 100644 --- a/tools/binman/elf.py +++ b/tools/binman/elf.py @@ -447,13 +447,15 @@ def DecodeElf(data, location): Returns: ElfInfo object containing information about the decoded ELF file """ + if not ELF_TOOLS: + raise ValueError("Python: No module named 'elftools'") file_size = len(data) with io.BytesIO(data) as fd: elf = ELFFile(fd) - data_start = 0xffffffff; - data_end = 0; - mem_end = 0; - virt_to_phys = 0; + data_start = 0xffffffff + data_end = 0 + mem_end = 0 + virt_to_phys = 0 for i in range(elf.num_segments()): segment = elf.get_segment(i) diff --git a/tools/binman/elf_test.py b/tools/binman/elf_test.py index cc95b42..e3dee79 100644 --- a/tools/binman/elf_test.py +++ b/tools/binman/elf_test.py @@ -255,8 +255,20 @@ class TestElf(unittest.TestCase): fname = self.ElfTestFile('embed_data') with self.assertRaises(ValueError) as e: elf.GetSymbolFileOffset(fname, ['embed_start', 'embed_end']) - self.assertIn("Python: No module named 'elftools'", - str(e.exception)) + with self.assertRaises(ValueError) as e: + elf.DecodeElf(tools.read_file(fname), 0xdeadbeef) + with self.assertRaises(ValueError) as e: + elf.GetFileOffset(fname, 0xdeadbeef) + with self.assertRaises(ValueError) as e: + elf.GetSymbolFromAddress(fname, 0xdeadbeef) + with self.assertRaises(ValueError) as e: + entry = FakeEntry(10) + section = FakeSection() + elf.LookupAndWriteSymbols(fname, entry, section, True) + + self.assertIn( + "Section 'section_path': entry 'entry_path': Cannot write symbols to an ELF file without Python elftools", + str(e.exception)) finally: elf.ELF_TOOLS = old_val |