aboutsummaryrefslogtreecommitdiffstats
path: root/test/e2e/std_bump_alloc
diff options
context:
space:
mode:
Diffstat (limited to 'test/e2e/std_bump_alloc')
-rw-r--r--test/e2e/std_bump_alloc/run_bump_alloc.atk1610
-rw-r--r--test/e2e/std_bump_alloc/run_bump_reset.atk166
-rw-r--r--test/e2e/std_bump_alloc/test_bump_alloc.py24
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