diff options
| -rw-r--r-- | tests/test_snapshot.py | 23 | ||||
| -rw-r--r-- | tests/test_sparse_memory.py | 33 |
2 files changed, 32 insertions, 24 deletions
diff --git a/tests/test_snapshot.py b/tests/test_snapshot.py index 0463418..789caf5 100644 --- a/tests/test_snapshot.py +++ b/tests/test_snapshot.py @@ -17,21 +17,22 @@ def test_register_access_empty_state(state, reg): with pytest.raises(RegisterAccessError): state.read_register(reg) -def test_register_read_write(self): - state = ProgramState(self.arch) +def test_register_read_write(arch): + state = ProgramState(arch) for reg in x86.regnames: state.set_register(reg, 0x42) for reg in x86.regnames: val = state.read_register(reg) assert val == 0x42 -def test_register_aliases_empty_state(self): - state = ProgramState(self.arch) - for reg in self.arch.all_regnames: - with pytest.raises(RegisterAccessError): state.read_register(reg) +def test_register_aliases_empty_state(arch): + state = ProgramState(arch) + for reg in arch.all_regnames: + with pytest.raises(RegisterAccessError): + state.read_register(reg) -def test_register_aliases_read_write(self): - state = ProgramState(self.arch) +def test_register_aliases_read_write(arch): + state = ProgramState(arch) for reg in ['EAX', 'EBX', 'ECX', 'EDX']: state.set_register(reg, 0xa0ff0) @@ -45,10 +46,10 @@ def test_register_aliases_read_write(self): 'RAX', 'RBX', 'RCX', 'RDX']: assert state.read_register(reg) == 0xa0ff0, reg -def test_flag_aliases(self): +def test_flag_aliases(arch): flags = ['CF', 'PF', 'AF', 'ZF', 'SF', 'TF', 'IF', 'DF', 'OF', 'IOPL', 'NT', 'RF', 'VM', 'AC', 'VIF', 'VIP', 'ID'] - state = ProgramState(self.arch) + state = ProgramState(arch) state.set_register('RFLAGS', 0) for flag in flags: @@ -56,7 +57,7 @@ def test_flag_aliases(self): state.set_register('RFLAGS', x86.compose_rflags({'ZF': 1, 'PF': 1, 'OF': 0})) - assert state.read_register('ZF') == 1, self.arch.get_reg_accessor('ZF') + assert state.read_register('ZF') == 1, arch.get_reg_accessor('ZF') assert state.read_register('PF') == 1 assert state.read_register('OF') == 0 assert state.read_register('AF') == 0 diff --git a/tests/test_sparse_memory.py b/tests/test_sparse_memory.py index 79b6638..7dda8f0 100644 --- a/tests/test_sparse_memory.py +++ b/tests/test_sparse_memory.py @@ -8,24 +8,31 @@ def mem(): def test_oob_read(mem): for addr in range(mem.page_size): - with pytest.raises(MemoryAccessError): mem.read(addr, 1) - with pytest.raises(MemoryAccessError): mem.read(addr, 30) - with pytest.raises(MemoryAccessError): mem.read(addr + 0x10, 30) - with pytest.raises(MemoryAccessError): mem.read(addr, mem.page_size) - with pytest.raises(MemoryAccessError): mem.read(addr, mem.page_size - 1) - with pytest.raises(MemoryAccessError): mem.read(addr, mem.page_size + 1) + with pytest.raises(MemoryAccessError): + mem.read(addr, 1) + with pytest.raises(MemoryAccessError): + mem.read(addr, 30) + with pytest.raises(MemoryAccessError): + mem.read(addr + 0x10, 30) + with pytest.raises(MemoryAccessError): + mem.read(addr, mem.page_size) + with pytest.raises(MemoryAccessError): + mem.read(addr, mem.page_size - 1) + with pytest.raises(MemoryAccessError): + mem.read(addr, mem.page_size + 1) def test_basic_read_write(mem): data = b'a' * mem.page_size * 2 mem.write(0x300, data) - assert mem.read(0x300 == len(data), data) - assert mem.read(0x300 == 1, b'a') - assert mem.read(0x400 == 1, b'a') - assert mem.read(0x299 + mem.page_size * 2 == 1, b'a') - assert mem.read(0x321 == 12, b'aaaaaaaaaaaa') + assert mem.read(0x300, len(data)) == data + assert mem.read(0x300, 1) == b'a' + assert mem.read(0x400, 1) == b'a' + assert mem.read(0x299 + mem.page_size * 2, 1) == b'a' + assert mem.read(0x321, 12) == b'aaaaaaaaaaaa' mem.write(0x321, b'Hello World!') - assert mem.read(0x321 == 12, b'Hello World!') + assert mem.read(0x321, 12) == b'Hello World!' - with pytest.raises(MemoryAccessError): mem.read(0x300, mem.page_size * 3) + with pytest.raises(MemoryAccessError): + mem.read(0x300, mem.page_size * 3) |