-
Notifications
You must be signed in to change notification settings - Fork 1
Home
pepedinho edited this page May 12, 2026
·
2 revisions
Walkman is a declarative integration testing framework built for bare-metal operating systems, specifically tailored for AuriOS. It solves the complex problem of automating CLI testing in environments that lack standard testing harnesses.
Testing an OS kernel usually involve manual QEMU runs and repetitive typing. Walkman automates this by treating QEMU as a standard input/output stream. Instead of writing complex Python or Bash scripts to interact with the OS, developers define the expected behavior in clean, readable YAML configurations.
Under the hood, Walkman uses the rexpect library to spawn a child process (typically the QEMU emulator).
-
Process Spawning: Walkman launches the command specified in the YAML file and captures its
stdoutandstdin. -
Serial Communication: For Walkman to read the OS output, the OS must mirror its TTY/VGA output to the COM1 serial port. Walkman expects QEMU to be launched with
-serial stdioor-nographic. -
State Machine: The test runner operates as a state machine. It first traverses the
boot_sequenceto ensure the OS reaches a stable state, then systematically executes theshell_interactions. -
Deterministic Evaluation: Each expected string is evaluated sequentially. If the OS fails to output the expected string within the
timeout_mswindow, the test fails, preventing infinite hangs.