Files
OpenShell/tests/runner
Evan Lezar f4259ebaf2 test(tmachine): add session API, test targets, and environment definitions
Give the conformance test runner a way to act on a running test machine,
and describe the environments it can run in.

tmachine:
- Add a library target exposing Session: up (set up and install from
  cached disks, boot a throwaway overlay, wait for SSH), exec, copy_in,
  copy_out, collect_diagnostics, shell, run_playbooks, and down. QEMU stays
  a child of the session, so a dropped session cannot leak a VM.
- Rebuild `tmachine test` on Session; the CLI is unchanged.
- Use password-only SSH so keys from the caller's agent or ~/.ssh cannot
  exhaust the guest's authentication attempts.
- Let TMACHINE_FIRMWARE_CODE/VARS be set at runtime, falling back to the
  compiled-in paths, so library users built outside Nix can boot ARM guests.

Ansible:
- openshell_client writes /etc/openshell-test/gateway.yaml describing the
  registered gateway (endpoint, plus mTLS paths when client credentials
  exist). The runner combines it with environment capabilities into the
  target file tests read.

Runner:
- Add tests/runner with the environment definition loader and
  tests/environments/docker.yaml (Ubuntu 24.04 Docker rootful deb, amd64
  and arm64). IDs must match their fields, tmachine environments must name
  their tmachine environment and installer, and an architecture the host
  cannot boot is reported as unsupported.

Signed-off-by: Evan Lezar <elezar@nvidia.com>
2026-10-15 23:21:07 +02:00
..