diff options
| author | JJ Liebig <jonathan.liebig@gmail.com> | 2026-09-18 02:42:37 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-09-18 02:42:37 +0200 |
| commit | da6bcd5969779bfe0396bcf89a8025d4375d611e (patch) | |
| tree | aece03633c003ba0fce01bc2564ad14e0fe9cac9 /scripts | |
| parent | b88e8116e9e1f7e2f6e8b211536311cd17feca9a (diff) | |
fix(windows): preserve mouse capture during refresh (#4319)
* fix(windows): preserve mouse capture during refresh
refs #4284
* test(windows): fix default input gauntlet invocation
* fix(windows): preserve pixel mouse transitions
refs #4284
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/test_windows_input.ps1 | 4 | ||||
| -rw-r--r-- | scripts/windows_input/README.md | 10 |
2 files changed, 13 insertions, 1 deletions
diff --git a/scripts/test_windows_input.ps1 b/scripts/test_windows_input.ps1 index dfbd41b4..28839a07 100644 --- a/scripts/test_windows_input.ps1 +++ b/scripts/test_windows_input.ps1 @@ -29,8 +29,10 @@ $root = [IO.Directory]::CreateDirectory($OutputDirectory).FullName $null = Invoke-GauntletProcess $python @($reportScript, 'matrix', '--output', (Join-Path $root 'matrix.json')) $matrix = Read-GauntletJson (Join-Path $root 'matrix.json') if ($MatrixOnly) { Write-Host "Matrix: $root/matrix.json"; exit 0 } +$caseSelectionProvided = $PSBoundParameters.ContainsKey('Cases') +$Cases = @($Cases | Where-Object { -not [string]::IsNullOrWhiteSpace($_) }) $knownCases = @($matrix.cases | ForEach-Object id) -if (@($Cases).Count -and @($Cases | Where-Object { $_ -notin $knownCases }).Count) { throw 'Unknown case selection' } +if (($caseSelectionProvided -and -not @($Cases).Count) -or @($Cases | Where-Object { $_ -notin $knownCases }).Count) { throw 'Unknown case selection' } $selectedCases = if (@($Cases).Count) { @($matrix.cases | Where-Object id -in $Cases) } else { @($matrix.cases) } if (-not $IsWindows) { throw 'Real-host qualification requires Windows and an interactive desktop; no tests passed' } if (-not $AllowInputInjection) { throw 'Read scripts/windows_input/README.md, then explicitly pass -AllowInputInjection on an isolated desktop' } diff --git a/scripts/windows_input/README.md b/scripts/windows_input/README.md index 340ecb0e..36caf3f6 100644 --- a/scripts/windows_input/README.md +++ b/scripts/windows_input/README.md @@ -51,6 +51,16 @@ The full catalogue normally exits `2` because operator-assisted and explicitly unimplemented qualification cases remain. That is incomplete coverage, not an automated test failure; inspect the printed matrix and retained `report.json`. +### Expected outcome + +A healthy run builds and identifies the current checkout, reaches the result +matrix, and reports no `FAIL` rows or cleanup errors. The default Herdr column +should identify itself as `Win32 (Herdr)*` from captured runtime evidence. A full +run may still exit `2` and show `MANUAL`, `NOT TESTED`, or a documented host +capability limitation when a terminal channel, physical gesture, or oracle is +unavailable. A focused campaign exits `0` when every selected observation passes; +exit `1` means an assertion, harness, or cleanup failure and needs investigation. + The recipe itself is the explicit opt-in to foreground input injection. It builds the current checkout in release mode, stages that exact binary with the pinned ConPTY runtime, and prints its path and hash. Use `-ExePath` only to compare a |
