1 #-------------------------------------------------------------------------------
4 # Eli Bendersky (eliben@gmail.com)
5 # This code is in the public domain
6 #-------------------------------------------------------------------------------
8 import unittest2
as unittest
13 from utils
import setup_syspath
; setup_syspath()
14 from elftools
.elf
.elffile
import ELFFile
16 class TestARMSupport(unittest
.TestCase
):
18 with
open(os
.path
.join('test', 'testfiles_for_unittests',
19 'simple_gcc.elf.arm'), 'rb') as f
:
21 self
.assertEqual(elf
.get_machine_arch(), 'ARM')
23 # Check some other properties of this ELF file derived from readelf
24 self
.assertEqual(elf
['e_entry'], 0x8018)
25 self
.assertEqual(elf
.num_sections(), 14)
26 self
.assertEqual(elf
.num_segments(), 2)
28 def test_DWARF_indirect_forms(self
):
29 # This file uses a lot of DW_FORM_indirect, and is also an ARM ELF
30 # with non-trivial DWARF info.
31 # So this is a simple sanity check that we can successfully parse it
32 # and extract the expected amount of CUs.
33 with
open(os
.path
.join('test', 'testfiles_for_unittests',
34 'arm_with_form_indirect.elf'), 'rb') as f
:
36 self
.assertTrue(elffile
.has_dwarf_info())
38 dwarfinfo
= elffile
.get_dwarf_info()
39 all_CUs
= list(dwarfinfo
.iter_CUs())
40 self
.assertEqual(len(all_CUs
), 9)
42 if __name__
== '__main__':