# V2 DRM Automated Testing

V2 DRM automated testing verifies game functions correctly with and without
protection enabled. The release matrix runs protected signed builds and
unprotected DRM-free builds through the same boot, gameplay, entitlement,
persistence, telemetry, and safe-failure journeys.

with and without protection enabled.

## Test Matrix

`V2/ue/Build/DRM/v2-drm-automated-testing.json` defines two build modes:
ProtectedDRM and UnprotectedDRMFree. Each test suite runs with protection
enabled and without protection enabled, writes release evidence under
`$(ArchiveRoot)/DRM/AutomatedTesting`, and uses the Unreal automation spec at
`V2/ue/Source/V2Tests/Private/Launch/DRMAutomatedTesting.spec.cpp`.

Required automated suites cover boot and startup parity, gameplay smoke parity,
online entitlement parity, persistence and telemetry parity, and removal pathway
regression. Functional journeys include BootToMainMenu, TrainingModeSmoke,
ArcadeMatchSmoke, OnlineEntitlementHandshake, OfflineLicenseBoot,
SaveLoadRoundTrip, SettingsRoundTrip, TelemetryDelivery, DRMFreeArtifactBoot,
and TamperSafeBoot.

## CI Gates

`V2/ue/Tools/plan-v2-drm-automated-testing.py` emits the deterministic DRM
automated testing plan. `V2/ue/Tools/check-v2-drm-automated-testing.py`
validates the manifest, planner output, automation spec, documentation
dependency, protected/unprotected matrix, Horde wiring, CI workflow wiring, and
this runbook.

Required release gates:

- `drm-automated-testing-plan-generated`
- `drm-automated-testing-build-mode-coverage`
- `drm-automated-testing-suite-coverage`
- `drm-automated-testing-protected-unprotected-matrix`
- `drm-automated-testing-game-function-coverage`
- `drm-automated-testing-release-evidence`
