Upstream version 8.36.161.0
[platform/framework/web/crosswalk.git] / src / third_party / pyelftools / test / test_dwarf_structs.py
1 try:
2     import unittest2 as unittest
3 except ImportError:
4     import unittest
5 import sys
6
7 sys.path.extend(['.', '..'])
8 from elftools.dwarf.structs import DWARFStructs
9
10
11 class TestDWARFStructs(unittest.TestCase):
12     def test_lineprog_header(self):
13         ds = DWARFStructs(little_endian=True, dwarf_format=32, address_size=4)
14
15         c = ds.Dwarf_lineprog_header.parse(
16             b'\x04\x10\x00\x00' +    # initial lenght
17             b'\x05\x02' +            # version
18             b'\x20\x00\x00\x00' +    # header length
19             b'\x05\x10\x40\x50' +    # until and including line_range
20             b'\x06' +                # opcode_base
21             b'\x00\x01\x04\x08\x0C' + # standard_opcode_lengths
22             # 2 dir names followed by a NULL
23             b'\x61\x62\x00\x70\x00\x00' + 
24             # a file entry
25             b'\x61\x72\x00\x0C\x0D\x0F' + 
26             # and another entry
27             b'\x45\x50\x51\x00\x86\x12\x07\x08' +
28             # followed by NULL
29             b'\x00')
30
31         self.assertEqual(c.version, 0x205)
32         self.assertEqual(c.opcode_base, 6)
33         self.assertEqual(c.standard_opcode_lengths, [0, 1, 4, 8, 12])
34         self.assertEqual(c.include_directory, [b'ab', b'p'])
35         self.assertEqual(len(c.file_entry), 2)
36         self.assertEqual(c.file_entry[0].name, b'ar')
37         self.assertEqual(c.file_entry[1].name, b'EPQ')
38         self.assertEqual(c.file_entry[1].dir_index, 0x12 * 128 + 6)
39
40
41 if __name__ == '__main__':
42     unittest.main()
43