def test_read_memory_until_error_no_error(gdb_base_fixture): from memfault_gdb import read_memory_until_error read_size = 1024 size = 1024 * 1024 inferior = MagicMock() inferior.read_memory.return_value = b"A" * read_size data = read_memory_until_error(inferior, 0x20000000, size, read_size=read_size) assert data == b"A" * size
def test_read_memory_until_error_after_10k(gdb_base_fixture): from memfault_gdb import read_memory_until_error read_size = 1024 size = 1024 * 1024 inferior = MagicMock() total_size = 0 def _read_memory_raise_after_10k(_addr, _size): nonlocal total_size total_size += _size if total_size > _size * 10: raise Exception() return b"A" * _size inferior.read_memory.side_effect = _read_memory_raise_after_10k data = read_memory_until_error(inferior, 0x20000000, size, read_size=read_size) assert data == b"A" * read_size * 10