From a36e5e001a4f17505c40b7f7a8f9c1f514f40de1 Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Sat, 13 Apr 2024 22:27:54 +0300 Subject: Fix bugs, add tests --- test/e2e/std_mem/run_memset.atk16 | 21 +++++++++++++++++++++ test/e2e/std_mem/test_memset.py | 22 ++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 test/e2e/std_mem/run_memset.atk16 create mode 100644 test/e2e/std_mem/test_memset.py (limited to 'test') diff --git a/test/e2e/std_mem/run_memset.atk16 b/test/e2e/std_mem/run_memset.atk16 new file mode 100644 index 0000000..07e7666 --- /dev/null +++ b/test/e2e/std_mem/run_memset.atk16 @@ -0,0 +1,21 @@ +@include %bootstrap +@include %std_mem + +@label mem_offset + 0x9000 + +@label main + ; set 0x9005 to value 4 + ldi mem_offset RA + ldr RA RA + addi RA 5 RA + ldi 4 RB + str RB RA + + ; set values 0x0000..0x0004 to 3 + ldi mem_offset RA + ldr RA RA + ldi 5 RB + ldi 3 RC + calli memset + hlt diff --git a/test/e2e/std_mem/test_memset.py b/test/e2e/std_mem/test_memset.py new file mode 100644 index 0000000..0052ffe --- /dev/null +++ b/test/e2e/std_mem/test_memset.py @@ -0,0 +1,22 @@ +from atk16_asm import assemble +from atk16_emu import Machine +from test.utils import pad_bytearray + +def test_memset(): + filename = "test/e2e/std_mem/run_memset.atk16" + with open(filename, "r") as f: + source = f.read() + + obj = assemble(source, filename) + rom_image = pad_bytearray(obj.program) + + machine = Machine() + machine.load_rom_image(rom_image) + machine.reset() + machine.run_until_halted() + machine.print_state_summary() + + addr = 0x9000 - 0x8000 + expected_n = 5 + expected_value = 3 + assert all(map(lambda x: x == expected_value, machine.ram.memory[addr:addr+expected_n])) -- cgit v1.3