diff options
Diffstat (limited to 'test/e2e/std_bump_alloc')
| -rw-r--r-- | test/e2e/std_bump_alloc/run_bump_alloc.atk16 | 10 | ||||
| -rw-r--r-- | test/e2e/std_bump_alloc/run_bump_reset.atk16 | 6 | ||||
| -rw-r--r-- | test/e2e/std_bump_alloc/test_bump_alloc.py | 24 |
3 files changed, 40 insertions, 0 deletions
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 |
