lib/oe/qa: add ELF machine to string function
Add a function (and test suite) to turn the ELF machine field (e_machine) into a string, so we can tell the user "x86-64" instead of 0x3E. (From OE-Core rev: 72336003741fb16a7ecdd6b753eae56310413ff7) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
1de0cc9ed9
commit
84198174bf
|
@ -144,6 +144,26 @@ class ELFFile:
|
|||
bb.note("%s %s %s failed: %s" % (objdump, cmd, self.name, e))
|
||||
return ""
|
||||
|
||||
def elf_machine_to_string(machine):
|
||||
"""
|
||||
Return the name of a given ELF e_machine field or the hex value as a string
|
||||
if it isn't recognised.
|
||||
"""
|
||||
try:
|
||||
return {
|
||||
0x02: "SPARC",
|
||||
0x03: "x86",
|
||||
0x08: "MIPS",
|
||||
0x14: "PowerPC",
|
||||
0x28: "ARM",
|
||||
0x2A: "SuperH",
|
||||
0x32: "IA-64",
|
||||
0x3E: "x86-64",
|
||||
0xB7: "AArch64"
|
||||
}[machine]
|
||||
except:
|
||||
return "Unknown (%s)" % repr(machine)
|
||||
|
||||
if __name__ == "__main__":
|
||||
import sys
|
||||
elf = ELFFile(sys.argv[1])
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
import unittest
|
||||
import oe.qa
|
||||
|
||||
class TestElf(unittest.TestCase):
|
||||
def test_machine_name(self):
|
||||
"""
|
||||
Test elf_machine_to_string()
|
||||
"""
|
||||
self.assertEqual(oe.qa.elf_machine_to_string(0x02), "SPARC")
|
||||
self.assertEqual(oe.qa.elf_machine_to_string(0x03), "x86")
|
||||
self.assertEqual(oe.qa.elf_machine_to_string(0x08), "MIPS")
|
||||
self.assertEqual(oe.qa.elf_machine_to_string(0x14), "PowerPC")
|
||||
self.assertEqual(oe.qa.elf_machine_to_string(0x28), "ARM")
|
||||
self.assertEqual(oe.qa.elf_machine_to_string(0x2A), "SuperH")
|
||||
self.assertEqual(oe.qa.elf_machine_to_string(0x32), "IA-64")
|
||||
self.assertEqual(oe.qa.elf_machine_to_string(0x3E), "x86-64")
|
||||
self.assertEqual(oe.qa.elf_machine_to_string(0xB7), "AArch64")
|
||||
|
||||
self.assertEqual(oe.qa.elf_machine_to_string(0x00), "Unknown (0)")
|
||||
self.assertEqual(oe.qa.elf_machine_to_string(0xDEADBEEF), "Unknown (3735928559)")
|
||||
self.assertEqual(oe.qa.elf_machine_to_string("foobar"), "Unknown ('foobar')")
|
Loading…
Reference in New Issue