Skip to content
pepedinho edited this page May 12, 2026 · 2 revisions

Welcome to the Walkman Documentation !

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.

The Philosophy

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.

Architecture

Under the hood, Walkman uses the rexpect library to spawn a child process (typically the QEMU emulator).

  1. Process Spawning: Walkman launches the command specified in the YAML file and captures its stdout and stdin.
  2. 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 stdio or -nographic.
  3. State Machine: The test runner operates as a state machine. It first traverses the boot_sequence to ensure the OS reaches a stable state, then systematically executes the shell_interactions.
  4. Deterministic Evaluation: Each expected string is evaluated sequentially. If the OS fails to output the expected string within the timeout_ms window, the test fails, preventing infinite hangs.

Clone this wiki locally