From 2f563af1c27f232abc0516348aa08e1f6e0a20f2 Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Sun, 14 Apr 2024 15:10:43 +0300 Subject: Add bump allocator --- test/e2e/std_bump_alloc/run_bump_alloc.atk16 | 10 ++++++++++ test/e2e/std_bump_alloc/run_bump_reset.atk16 | 6 ++++++ test/e2e/std_bump_alloc/test_bump_alloc.py | 24 ++++++++++++++++++++++++ 3 files changed, 40 insertions(+) create mode 100644 test/e2e/std_bump_alloc/run_bump_alloc.atk16 create mode 100644 test/e2e/std_bump_alloc/run_bump_reset.atk16 create mode 100644 test/e2e/std_bump_alloc/test_bump_alloc.py (limited to 'test/e2e/std_bump_alloc') diff --git a/test/e2e/std_bump_alloc/run_bump_alloc.atk16 b/test/e2e/std_bump_alloc/run_bump_alloc.atk16 new file mode 100644 index 0000000..b9a8411 --- /dev/null +++ b/test/e2e/std_bump_alloc/run_bump_alloc.atk16 @@ -0,0 +1,10 @@ +@include %bootstrap +@include %std_bump_alloc + +@label main + calli bump_reset + + ldi 5 RA ; allocate 5 words + calli bump_alloc + + hlt diff --git a/test/e2e/std_bump_alloc/run_bump_reset.atk16 b/test/e2e/std_bump_alloc/run_bump_reset.atk16 new file mode 100644 index 0000000..6e14bb7 --- /dev/null +++ b/test/e2e/std_bump_alloc/run_bump_reset.atk16 @@ -0,0 +1,6 @@ +@include %bootstrap +@include %std_bump_alloc + +@label main + calli bump_reset + hlt diff --git a/test/e2e/std_bump_alloc/test_bump_alloc.py b/test/e2e/std_bump_alloc/test_bump_alloc.py new file mode 100644 index 0000000..9e64b8c --- /dev/null +++ b/test/e2e/std_bump_alloc/test_bump_alloc.py @@ -0,0 +1,24 @@ +from atk16_asm import assemble +from atk16_emu import Machine +from test.utils import pad_bytearray, assemble_and_run_until_halted + +def test_bump_reset(): + machine = assemble_and_run_until_halted( + "test/e2e/std_bump_alloc/run_bump_reset.atk16" + ) + + heap_next_p = 0xE7EF + heap_next = machine.mem_read(heap_next_p) + assert heap_next == heap_next_p - 1 + +def test_bump_alloc(): + machine = assemble_and_run_until_halted( + "test/e2e/std_bump_alloc/run_bump_alloc.atk16" + ) + + heap_next_p = 0xE7EF + heap_next = machine.mem_read(heap_next_p) + assert heap_next == heap_next_p - 1 - 5 + + returned_value = machine.rg.value + assert returned_value == heap_next + 1 -- cgit v1.3