1#-------------------------------------------------------------------------------
2# elftools tests
3#
4# Karl Vogel (karl.vogel@gmail.com)
5# Eli Bendersky (eliben@gmail.com)
6#
7# This code is in the public domain
8#-------------------------------------------------------------------------------
9import unittest
10import os
11
12from elftools.elf.elffile import ELFFile
13
14
15class TestMIPSSupport(unittest.TestCase):
16    def test_basic(self):
17        with open(os.path.join('test', 'testfiles_for_unittests',
18                               'simple_gcc.elf.mips'), 'rb') as f:
19            elf = ELFFile(f)
20            self.assertEqual(elf.get_machine_arch(), 'MIPS')
21
22            # Check some other properties of this ELF file derived from readelf
23            self.assertEqual(elf['e_entry'], 0x0)
24            self.assertEqual(elf.num_sections(), 25)
25            self.assertEqual(elf.num_segments(), 0)
26
27            # Test that Mips-specific section types work; these types are
28            # available only when the file is identified as MIPS in the
29            # e_machine header field.
30            sec9 = elf.get_section(9)
31            self.assertEqual(sec9['sh_type'], 'SHT_MIPS_DWARF')
32
33
34if __name__ == '__main__':
35    unittest.main()
36