forked from Manuel/meeting-assistant
24 lines
3.0 KiB
Markdown
24 lines
3.0 KiB
Markdown
# Windows platform acceptance
|
||
|
||
The Windows crop checks use the existing Windows test target. Runtime acceptance is separate from the normal macOS cross-build already recorded by Ticket 01. Use `docs/platform-test-verification.md` for the complete build, discovery, execution and verifier commands; every command must succeed, and a Windows RID alone is insufficient. Operational ASR/backend acceptance remains separate from these pipeline checks.
|
||
|
||
## Target and native crop evidence
|
||
|
||
Run the actual `net10.0-windows10.0.19041.0` test target on Windows or a demonstrated compatible Wine runtime. Keep the SDK/runtime and Wine version, source revision/content manifest, complete build logs, discovery, TRX and verifier output together. The existing Gitea jobs collect those artifacts separately from the portable target.
|
||
|
||
The Windows verifier requires the five existing Outlook cases, both Windows runtime checks, the passed application-composition guard and these three additional cases:
|
||
|
||
- `WindowsScreenshotImageCropperTests.WindowsCropUsesOcrPixelCoordinates`
|
||
- `WindowsScreenshotImageCropperTests.WindowsCropPreservesExpectedPixelsAtNonzeroOrigin`
|
||
- `WindowsScreenshotImageCropperTests.WindowsCropRejectsInvalidBounds`
|
||
|
||
These tests resolve `IScreenshotImageCropper` from the Windows application factory, assert its real Windows implementation, and call `SaveCroppedScreenshotAsync`. The isolated factory suppresses background activities but preserves the production registrations. No capture permission, Outlook instance, OCR service or credential is needed. A 4×3 opaque PNG encodes a different color at every coordinate. Each valid crop checks every pixel and exact dimensions: 2×2 at (0,0) and 3×2 at (1,1), reaching the right and bottom boundaries. Invalid cases cover negative origins, zero/negative sizes, entirely outside origins and partially overflowing bounds. Each must throw the existing `InvalidDataException` and leave no crop file.
|
||
|
||
Each case records runtime, host, architecture and registered cropper in its TRX output. Portable compilation excludes these cases. Their compilation on macOS is preparation, not a native pixel pass. Synthetic verifier fixtures exercise evidence rejection only.
|
||
|
||
## CI observation and acceptance states
|
||
|
||
Observe an external run for the tested content, including both explicit-target jobs, named discovery, TRX, build logs, verifier outcome and two separate uploaded artifacts. Record run URL, revision and job outcomes. A run for an older revision, a workflow file, a cached status, or synthetic artifact checks cannot satisfy this row. An implementation request alone does not authorize publishing uncommitted prerequisites to trigger CI.
|
||
|
||
Use only `passed`, `failed`, `open — not executed with reason`, or `not configured/disabled — no pass` per host/profile/backend/model/operation row. Preserve the dated 602-pass and 639-pass portable baselines in their original evidence. Derive current totals from current TRX. Supplement the existing OpenSpec owners with the new evidence link; do not rewrite Ticket 01 or communication Task 4.2/4.4.
|