mirror of
https://github.com/saphid/frame-control.git
synced 2026-10-06 10:00:34 +02:00
tests/fakeframe: a container that stands in for the Frame (Arch Linux, or Arch Linux ARM on arm64) with sshd, rsync, Valve's steamos-devkit-service and hooks (vendored unmodified), a fake Steam client for the devkit pipe and the DevTools port (the app's JavaScript runs in Node against stand-in SteamClient/appStore objects), stubs for steam, wpctl, flatpak, podman, Lepton and friends, battery and thermal files under /sys, and fault switches (fakeframe-ctl): pairing mode, approve/deny/timeout, Steam not running, headset asleep, sshd off, disk full, runtimes missing. A second container is the computer running Frame Control. tests/e2e: 29 tests driving the real ui/server.py, frame_connect.py and frame_titles.py against it; skipped unless FRAME_E2E=1. scripts/e2e.sh builds, runs and tears down; CI runs it on ubuntu-24.04-arm. tests/smoke + scripts/frame-smoke.sh: the core cases against a real Frame, recorded with its BUILD_ID, cleaning up after itself; --pair to pair a throwaway key. docs/testing.md describes the layers. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
22 lines
1.1 KiB
Markdown
22 lines
1.1 KiB
Markdown
# Valve's steamos-devkit-service (vendored, for the fake Frame only)
|
|
|
|
Unmodified copy of [steamos-devkit-service](https://gitlab.steamos.cloud/devkit/steamos-devkit-service):
|
|
the HTTP service on port 32000 (`src/`) and its hooks (`hooks/`), which the
|
|
fake Frame image installs at `/usr/lib/steamos-devkit/` and
|
|
`/usr/share/steamos-devkit/hooks/`, where the service looks for them.
|
|
|
|
- Source: commit `74cf8fe` (2025-09-16, tag `v0.20250916.0`).
|
|
- Licence: the repository's `LICENSE` is the LGPL 2.1 (copied here).
|
|
`src/steamos-devkit-service.py` itself carries an MIT header, and
|
|
`hooks/devkit-1-identify` and `hooks/install-ssh-key` carry LGPL-2.1+
|
|
headers. Nothing here ships in Frame Control; it's only built into the
|
|
test image.
|
|
|
|
The service imports `dbus` to advertise itself over mDNS through
|
|
systemd-resolved, which a container doesn't have. The image puts a small
|
|
stand-in `dbus` module on its `PYTHONPATH` (`rootfs/usr/local/lib/fakeframe/pystubs`)
|
|
that records the registration instead. Everything else runs as Valve wrote it.
|
|
|
|
To update: copy `src/`, `hooks/` and `LICENSE` from a newer checkout and update
|
|
the commit line above.
|