1#-------------------------------------------------------------------------------
2# elftools tests
3#
4# Eli Bendersky (eliben@gmail.com), Santhosh Kumar Mani (santhoshmani@gmail.com)
5# This code is in the public domain
6#-------------------------------------------------------------------------------
7import os
8import unittest
9
10from elftools.elf.elffile import ELFFile
11
12
13class TestRangeLists(unittest.TestCase):
14    # Test the absence of .debug_ranges section
15    def test_range_list_absence(self):
16        with open(os.path.join('test', 'testfiles_for_unittests',
17                               'arm_with_form_indirect.elf'), 'rb') as f:
18            elffile = ELFFile(f)
19            self.assertTrue(elffile.has_dwarf_info())
20            self.assertIsNone(elffile.get_dwarf_info().range_lists())
21
22    # Test the presence of .debug_ranges section
23    def test_range_list_presence(self):
24        with open(os.path.join('test', 'testfiles_for_unittests',
25                               'sample_exe64.elf'), 'rb') as f:
26            elffile = ELFFile(f)
27            self.assertTrue(elffile.has_dwarf_info())
28            self.assertIsNotNone(elffile.get_dwarf_info().range_lists())
29
30
31if __name__ == '__main__':
32    unittest.main()
33