From 5cf54eed4a3fe06f8c122d3a07dbd7fbedaf5904 Mon Sep 17 00:00:00 2001 From: Theofilos Augoustis Date: Tue, 10 Jun 2025 14:17:35 +0200 Subject: Rename tests directory --- tests/test_sparse_memory.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 tests/test_sparse_memory.py (limited to 'tests/test_sparse_memory.py') diff --git a/tests/test_sparse_memory.py b/tests/test_sparse_memory.py new file mode 100644 index 0000000..4fd9cba --- /dev/null +++ b/tests/test_sparse_memory.py @@ -0,0 +1,33 @@ +import unittest + +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) + + def test_basic_read_write(self): + mem = SparseMemory() + + 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') + + mem.write(0x321, b'Hello World!') + self.assertEqual(mem.read(0x321, 12), b'Hello World!') + + self.assertRaises(MemoryAccessError, mem.read, 0x300, mem.page_size * 3) + +if __name__ == '__main__': + unittest.main() -- cgit 1.4.1