Example #1
0
 def test_twice(self):
     prog = Program()
     with tempfile.NamedTemporaryFile() as f:
         f.write(create_elf_file(ET.CORE, []))
         f.flush()
         prog.set_core_dump(f.name)
         self.assertRaisesRegex(ValueError,
                                'program memory was already initialized',
                                prog.set_core_dump, f.name)
Example #2
0
 def test_simple(self):
     data = b"hello, world"
     prog = Program()
     with tempfile.NamedTemporaryFile() as f:
         f.write(
             create_elf_file(
                 ET.CORE,
                 [ElfSection(p_type=PT.LOAD, vaddr=0xFFFF0000, data=data)]))
         f.flush()
         prog.set_core_dump(f.name)
     self.assertEqual(prog.read(0xFFFF0000, len(data)), data)
     self.assertRaises(FaultError, prog.read, 0x0, len(data), physical=True)
Example #3
0
 def test_zero_fill(self):
     data = b'hello, world'
     prog = Program()
     with tempfile.NamedTemporaryFile() as f:
         f.write(
             create_elf_file(ET.CORE, [
                 ElfSection(
                     p_type=PT.LOAD,
                     vaddr=0xffff0000,
                     data=data,
                     memsz=len(data) + 4,
                 ),
             ]))
         f.flush()
         prog.set_core_dump(f.name)
     self.assertEqual(prog.read(0xffff0000, len(data) + 4), data + bytes(4))
Example #4
0
 def test_physical(self):
     data = b'hello, world'
     prog = Program()
     with tempfile.NamedTemporaryFile() as f:
         f.write(
             create_elf_file(ET.CORE, [
                 ElfSection(
                     p_type=PT.LOAD,
                     vaddr=0xffff0000,
                     paddr=0xa0,
                     data=data,
                 ),
             ]))
         f.flush()
         prog.set_core_dump(f.name)
     self.assertEqual(prog.read(0xffff0000, len(data)), data)
     self.assertEqual(prog.read(0xa0, len(data), physical=True), data)
Example #5
0
 def test_unsaved(self):
     data = b"hello, world"
     prog = Program()
     with tempfile.NamedTemporaryFile() as f:
         f.write(
             create_elf_file(
                 ET.CORE,
                 [
                     ElfSection(
                         p_type=PT.LOAD,
                         vaddr=0xFFFF0000,
                         data=data,
                         memsz=len(data) + 4,
                     ),
                 ],
             )
         )
         f.flush()
         prog.set_core_dump(f.name)
     with self.assertRaisesRegex(FaultError, "memory not saved in core dump") as cm:
         prog.read(0xFFFF0000, len(data) + 4)
     self.assertEqual(cm.exception.address, 0xFFFF000C)