blob: 7579ce243f3d1b2a7f3ac036b0d6c97983b88dea [file] [log] [blame]
#------------------------------------------------------------------------------
# elftools tests
#
# Anders Dellien (anders@andersdellien.se)
# This code is in the public domain
#------------------------------------------------------------------------------
import unittest
import os
from elftools.elf.elffile import ELFFile
class TestDieSize(unittest.TestCase):
""" This test verifies that null DIEs are treated correctly - i.e.
removed when we 'unflatten' the linear list and build a tree.
The test file contains a CU with two non-null DIEs (both three bytes big),
where the second one is followed by three null DIEs.
We verify that the null DIEs are discarded and that the length of the second DIE
does not include the null entries that follow it.
"""
def test_die_size(self):
with open(os.path.join('test',
'testfiles_for_unittests', 'trailing_null_dies.elf'),
'rb') as f:
elffile = ELFFile(f)
self.assertTrue(elffile.has_dwarf_info())
dwarfinfo = elffile.get_dwarf_info()
for CU in dwarfinfo.iter_CUs():
for child in CU.get_top_DIE().iter_children():
self.assertEquals(child.size, 3)
if __name__ == '__main__':
unittest.main()