diff options
| author | Theofilos Augoustis <theofilos.augoustis@gmail.com> | 2025-09-10 10:29:10 +0000 |
|---|---|---|
| committer | Theofilos Augoustis <theofilos.augoustis@gmail.com> | 2025-09-10 10:29:10 +0000 |
| commit | b90c46e2777ffec89c1fdbd8ded150fcc9ed4084 (patch) | |
| tree | 60348e73e4b3a08a89d374684561c6ed5654d82d /tests/test_sparse_memory.py | |
| parent | aafb69e4d91b79fa5a8a3c31dd1004edb66af0bd (diff) | |
| download | focaccia-b90c46e2777ffec89c1fdbd8ded150fcc9ed4084.tar.gz focaccia-b90c46e2777ffec89c1fdbd8ded150fcc9ed4084.zip | |
Add support for running tests with flake check
Diffstat (limited to 'tests/test_sparse_memory.py')
| -rw-r--r-- | tests/test_sparse_memory.py | 55 |
1 files changed, 30 insertions, 25 deletions
diff --git a/tests/test_sparse_memory.py b/tests/test_sparse_memory.py index 4fd9cba..7dda8f0 100644 --- a/tests/test_sparse_memory.py +++ b/tests/test_sparse_memory.py @@ -1,33 +1,38 @@ -import unittest +import pytest from focaccia.snapshot import SparseMemory, MemoryAccessError -class TestSparseMemory(unittest.TestCase): - def test_oob_read(self): - mem = SparseMemory() - for addr in range(mem.page_size): - self.assertRaises(MemoryAccessError, mem.read, addr, 1) - self.assertRaises(MemoryAccessError, mem.read, addr, 30) - self.assertRaises(MemoryAccessError, mem.read, addr + 0x10, 30) - self.assertRaises(MemoryAccessError, mem.read, addr, mem.page_size) - self.assertRaises(MemoryAccessError, mem.read, addr, mem.page_size - 1) - self.assertRaises(MemoryAccessError, mem.read, addr, mem.page_size + 1) +@pytest.fixture +def mem(): + return SparseMemory() - def test_basic_read_write(self): - mem = SparseMemory() +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) - data = b'a' * mem.page_size * 2 - mem.write(0x300, data) - self.assertEqual(mem.read(0x300, len(data)), data) - self.assertEqual(mem.read(0x300, 1), b'a') - self.assertEqual(mem.read(0x400, 1), b'a') - self.assertEqual(mem.read(0x299 + mem.page_size * 2, 1), b'a') - self.assertEqual(mem.read(0x321, 12), b'aaaaaaaaaaaa') +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' - mem.write(0x321, b'Hello World!') - self.assertEqual(mem.read(0x321, 12), b'Hello World!') + mem.write(0x321, b'Hello World!') + assert mem.read(0x321, 12) == b'Hello World!' - self.assertRaises(MemoryAccessError, mem.read, 0x300, mem.page_size * 3) + with pytest.raises(MemoryAccessError): + mem.read(0x300, mem.page_size * 3) -if __name__ == '__main__': - unittest.main() |