ChrisOS Research Project Technical systems documentation

Source reference: docs/development/testing.md

In this chapter

Deterministic source record. The complete textual file is reproduced below; this page does not replace architectural interpretation in the authored chapters.

File identity

Field Value
Path docs/development/testing.md
Lines 97
Bytes 2371
SHA-256 e062fa0005d21758c1912a8c13774b08106b2751d9e20b1973f679a4648df1f7
ChrisOS revision 92fb561574bd929522ea005b9fd433138bea3236

Detected syntactic dependencies

Line Include
— No preprocessor include detected.

Detected symbols

Line Symbol
— No C-like function definition detected by the scanner.

Complete source

The following block is the complete textual file at the recorded revision. No lines are elided, abbreviated or paraphrased.

# Testing and evidence

ChrisOS has several classes of tests. They answer different questions and should not be treated as interchangeable.

## Evidence levels

| Level | What it proves |
| --- | --- |
| Source present | Code exists; no execution claim |
| Host-tested | Logic passed a host-side test |
| QEMU-tested | The guest path executed under the specified QEMU configuration |
| Hardware-tested | The path executed on identified physical hardware |

A host unit test does not prove a device driver on hardware. A QEMU device test does not prove compatibility with arbitrary physical devices.

## Continuous integration

The current GitHub Actions workflow is <code>.github/workflows/host-foundation.yml</code>. It exercises a focused host-side foundation set on pushes and pull requests.

Do not assume every QEMU or graphics gate runs in hosted CI.

## Host gates

~~~bash
make host-gates
make host-sanitize
make host-stress
~~~

## QEMU gates

~~~bash
make qemu-gates
~~~

Individual targets include:

- <code>test-qemu-ata</code>
- <code>test-qemu-ahci</code>
- <code>test-qemu-nvme</code>
- <code>test-qemu-vblk</code>
- <code>test-qemu-usb</code>
- <code>test-qemu-gpu</code>
- <code>test-qemu-riscv</code>
- <code>test-qemu-noata</code>
- <code>test-qemu-install</code>
- <code>test-qemu-safe</code>
- <code>test-qemu-xhci</code>

These headless gates use TCG unless a target explicitly says otherwise.

## VirGL

~~~bash
make test-qemu-virgl
~~~

This gate requires host VirGL/OpenGL support. A host capability skip means "not tested on this host"; it is neither a guest pass nor a guest failure.

## ChrisVM

~~~bash
make chrisvm-test
~~~

The ChrisVM suite validates emulator/machine behavior and guest fixtures independently from the full QEMU boot path.

## Broad local gate

~~~bash
make full-gates
~~~

## Record evidence

For a capability-changing pull request, record:

~~~text
Commit:
Host:
Command:
Result:
Relevant serial/test marker:
Not tested:
~~~

For hardware evidence, also record machine/device identity and firmware mode.

## Failure triage

1. Keep the first failure and serial log.
2. Rerun the narrow target, not the entire suite.
3. Distinguish host dependency failures from guest failures.
4. Expand to broader gates only after the narrow path is stable.

QEMU gate logs belong under <code>build/</code> and should not be committed.

Role of this record

The atlas guarantees file-by-file traceability. Responsibility, invariants, ownership, concurrency, security, performance and subsystem interactions belong in authored chapters and must cite this file when applicable.

Document record
ID: source-e062fa0005d21758 Reviewed source: 92fb561574bd Class: generated-source-reference