diff options
| author | Jan Tuomi <jan@jantuomi.fi> | 2024-04-13 22:46:53 +0300 |
|---|---|---|
| committer | Jan Tuomi <jan@jantuomi.fi> | 2024-04-13 22:46:53 +0300 |
| commit | 915846b9898f74308509346ba94db0dd2ba1de45 (patch) | |
| tree | f450a174bb33bef47114f2f07433464e4af27459 /test/e2e | |
| parent | a36e5e001a4f17505c40b7f7a8f9c1f514f40de1 (diff) | |
Add memcopy, add test
Diffstat (limited to 'test/e2e')
| -rw-r--r-- | test/e2e/std_mem/run_memcopy.atk16 | 23 | ||||
| -rw-r--r-- | test/e2e/std_mem/test_memset.py | 22 | ||||
| -rw-r--r-- | test/e2e/std_mem/test_std_mem.py | 45 |
3 files changed, 68 insertions, 22 deletions
diff --git a/test/e2e/std_mem/run_memcopy.atk16 b/test/e2e/std_mem/run_memcopy.atk16 new file mode 100644 index 0000000..66f3c1d --- /dev/null +++ b/test/e2e/std_mem/run_memcopy.atk16 @@ -0,0 +1,23 @@ +@include %bootstrap +@include %std_mem + +@label mem_offset_from + 0x9000 +@label mem_offset_to + 0x9100 + +@label main + ; set values 0x0000..0x0004 to 3 + ldi mem_offset_from RA + ldr RA RA + ldi 5 RB + ldi 3 RC + calli memset + hlt + + ldi mem_offset_to RB + ldr RB RB + ldi 5 RC + calli memcopy + + hlt diff --git a/test/e2e/std_mem/test_memset.py b/test/e2e/std_mem/test_memset.py deleted file mode 100644 index 0052ffe..0000000 --- a/test/e2e/std_mem/test_memset.py +++ /dev/null @@ -1,22 +0,0 @@ -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])) diff --git a/test/e2e/std_mem/test_std_mem.py b/test/e2e/std_mem/test_std_mem.py new file mode 100644 index 0000000..f45ca5b --- /dev/null +++ b/test/e2e/std_mem/test_std_mem.py @@ -0,0 +1,45 @@ +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 + n = 5 + value = 3 + assert all([x == value for x in machine.ram.memory[addr:addr+n]]) + +def test_memcopy(): + filename = "test/e2e/std_mem/run_memcopy.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_from = 0x9000 - 0x8000 + addr_to = 0x9100 - 0x8000 + n = 5 + + mem_range_from = machine.ram.memory[addr_from:addr_from+n] + mem_range_to = machine.ram.memory[addr_to:addr_to+n] + + assert [mem_range_from[i] == mem_range_to[i] for i in range(n)] |
