41 lines
1.0 KiB
Python
41 lines
1.0 KiB
Python
"""Tests for reading and writing using the serial port"""
|
|
import pathlib
|
|
|
|
from gtemu import Emulator
|
|
|
|
_ROM_FILE = pathlib.Path(__file__).parent / ".." / "roms" / "echo.rom"
|
|
# _ROM_FILE = pathlib.Path(__file__).parent /'..'/ '..'/ '..'/'..'/'ROMv4.rom'
|
|
|
|
|
|
def setup_module():
|
|
Emulator.load_rom_file(_ROM_FILE)
|
|
|
|
|
|
def setup_function():
|
|
Emulator.reset()
|
|
|
|
|
|
def test_read_initial_state():
|
|
# The following are not necessary, but it was very helpful in debugging
|
|
Emulator.run_to(0x2FF, max_instructions=10_000_000) # Entry of vCPU
|
|
Emulator.run_vcpu_to(0x200) # Pass through loading sequence
|
|
buffer = bytearray()
|
|
for _ in range(5):
|
|
value = Emulator.read_serial(bits=8)
|
|
buffer.append(value)
|
|
assert buffer == b"READY"
|
|
|
|
|
|
def _read_bytes(n):
|
|
buffer = bytearray()
|
|
for _ in range(n):
|
|
buffer.append(Emulator.read_serial(bits=8))
|
|
return bytes(buffer)
|
|
|
|
|
|
def test_write():
|
|
assert _read_bytes(5) == b"READY"
|
|
for b in b"Hello":
|
|
Emulator.send_byte(b)
|
|
assert _read_bytes(5) == b"Hello"
|