44 lines
2.4 KiB
Markdown
44 lines
2.4 KiB
Markdown
# Native telemetry restart test
|
|
|
|
Run from the repository root with a disposable existing Proton test prefix and
|
|
the installed authorized dependency tree:
|
|
|
|
```sh
|
|
python3 tests/native/telemetry_restart/run.py \
|
|
--work .local/restart-failure/verified \
|
|
--compat .local/rhs-19-work/compat \
|
|
--external-addons '/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons'
|
|
```
|
|
|
|
The work directory must be new. The runner copies the current addon and adds the
|
|
fixture only to that copy. It reuses the native preparation-stage shutdown probe
|
|
so extraction placement is not a prerequisite. It then explicitly stops and
|
|
relaunches its owned Workbench process with the same
|
|
private profile. Workbench hosting does not automatically reload this fixture.
|
|
Two rounds use the actual native PlayerManager connection count and EndGameMode
|
|
callback. Production reload behavior is not changed.
|
|
|
|
The fixture checks native JSON/profile round-trips, an occupied checkpoint not
|
|
being submitted while the round is live, constructor recovery from unfinished
|
|
state, a single persisted defeat on shutdown, and completed-state reopening
|
|
without another defeat. Forced-stop recovery is simulated by constructing a new
|
|
service from the saved unfinished checkpoint; this is not an AMP process-kill
|
|
or multiplayer dedicated-server test. Empty occupancy and completion variants
|
|
also have production-method tests in `tests/test_telemetry.py`.
|
|
|
|
The copied test class replaces only the telemetry dispatch tick, preventing
|
|
network submissions. A reserved `.invalid` endpoint is an additional safeguard.
|
|
The fixture restores the original service's state after each recovery probe.
|
|
No test code or test results are included in the published addon.
|
|
|
|
Native evidence is retained under the work directory's `profile/logs`, including
|
|
source hashes and cleanup verification. Queued payloads are in
|
|
`profile/profile/EscapistsTelemetryState.json` and can be checked with the
|
|
receiver's `validateEvent` function.
|
|
|
|
The general native report also grades optional asset and backend errors. This
|
|
fixture retains that complete report as `telemetry-check.json`, while its result
|
|
requires completed telemetry assertions, no script/runtime failures, unchanged
|
|
inputs, confirmed process cleanup and valid queued results. It does not certify
|
|
Rally/RHS/WCS assets, DLC ownership or the rest of the mission.
|