mirror of
https://github.com/EFForg/rayhunter.git
synced 2026-06-01 18:53:34 -07:00
Add daemon startup smoke test and let it run on a PC in debug_mode
v0.11.0 shipped a daemon binary that built fine but didn't actually serve a working frontend. CI was green. Nothing in the pipeline asserted that the built binary comes up and serves something. Add daemon/tests/smoke.rs as an integration test that spawns the built binary against a tempdir-backed config with debug_mode = true, picks an ephemeral port, and asserts: - GET /index.html is 2xx and the decompressed body contains "Rayhunter" - GET /api/qmdl-manifest is 2xx - the daemon exits cleanly on SIGINT Captures the daemon's stderr into a buffer so startup/shutdown failures print actionable context instead of just "did not start listening". Runs as part of the regular cargo test invocation, no new CI job. For the smoke test (and #826) to work, the daemon needs to come up on a PC without /dev/diag, a screen, or wpa_supplicant. The DIAG read thread, display driver, and key input were already gated on debug_mode. Gate the two remaining device-dependent workers the same way: - run_battery_notification_worker (polls battery sysfs paths) - wifi_station::run_wifi_client (talks to wpa_supplicant) doc/installing-from-source.md gains a "Running the daemon on your PC" section. doc/porting.md drops its duplicate debug_mode line and links to the new section. Closes #826.
This commit is contained in:
@@ -27,6 +27,25 @@ Then you can build everything with:
|
||||
./scripts/install-dev.sh orbic # replace 'orbic' with your device type
|
||||
```
|
||||
|
||||
## Running the daemon on your PC
|
||||
|
||||
If you don't have a target device handy, you can run `rayhunter-daemon` on your
|
||||
PC with `debug_mode = true`. This skips DIAG, the device display, key input,
|
||||
the battery worker, and the WiFi client, so recording-related endpoints will
|
||||
not work, but the frontend and read-only APIs do.
|
||||
|
||||
```sh
|
||||
mkdir -p ./qmdl && printf 'entries = []\n' > ./qmdl/manifest.toml
|
||||
cat > config.toml <<'EOF'
|
||||
qmdl_store_path = "./qmdl"
|
||||
port = 8080
|
||||
debug_mode = true
|
||||
EOF
|
||||
cargo run -p rayhunter-daemon -- ./config.toml
|
||||
```
|
||||
|
||||
Open `http://127.0.0.1:8080`.
|
||||
|
||||
## Hot-reloading the frontend
|
||||
|
||||
If you are working on the frontend, you normally have to repeat all of the above steps everytime to see a change.
|
||||
|
||||
Reference in New Issue
Block a user