Count occupied restarts as failed missions; sync published Workshop version
continuous-integration/drone/push Build is passing
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user