Fix for mixed version loclists, tests (#521)
[pyelftools.git] / test / test_dwarf_aranges.py
1 import os
2 import unittest
3
4 from elftools.elf.elffile import ELFFile
5
6 address_a = 0x112f;
7 address_b = 0x1154;
8
9 class TestRangeLists(unittest.TestCase):
10 def test_arange_absent(self):
11 with open(os.path.join('test', 'testfiles_for_unittests', 'aranges_absent.elf'), 'rb') as f:
12 elffile = ELFFile(f)
13 self.assertTrue(elffile.has_dwarf_info())
14 aranges = elffile.get_dwarf_info().get_aranges()
15 self.assertIsNone(aranges)
16
17 def test_arange_partial(self):
18 with open(os.path.join('test', 'testfiles_for_unittests', 'aranges_partial.elf'), 'rb') as f:
19 elffile = ELFFile(f)
20 self.assertTrue(elffile.has_dwarf_info())
21 aranges = elffile.get_dwarf_info().get_aranges()
22 self.assertIsNotNone(aranges)
23 self.assertIsNone(aranges.cu_offset_at_addr(address_a))
24 self.assertIsNotNone(aranges.cu_offset_at_addr(address_b))
25
26 def test_arange_complete(self):
27 with open(os.path.join('test', 'testfiles_for_unittests', 'aranges_complete.elf'), 'rb') as f:
28 elffile = ELFFile(f)
29 self.assertTrue(elffile.has_dwarf_info())
30 aranges = elffile.get_dwarf_info().get_aranges()
31 self.assertIsNotNone(aranges)
32 self.assertIsNotNone(aranges.cu_offset_at_addr(address_a))
33 self.assertIsNotNone(aranges.cu_offset_at_addr(address_b))
34
35 if __name__ == '__main__':
36 unittest.main()