feat(linux): gate graphical backends and capabilities
This commit is contained in:
parent
07bb1c5a74
commit
11501d52ca
13 changed files with 1924 additions and 32 deletions
35
.github/workflows/headless-portability.yml
vendored
35
.github/workflows/headless-portability.yml
vendored
|
|
@ -63,6 +63,16 @@ jobs:
|
|||
with:
|
||||
dotnet-version: "10.0.x"
|
||||
|
||||
- name: Install Linux graphical smoke dependencies
|
||||
shell: bash
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y --no-install-recommends \
|
||||
libgl1-mesa-dri \
|
||||
mesa-utils \
|
||||
xauth \
|
||||
xvfb
|
||||
|
||||
- name: Build presentation-free closure
|
||||
shell: pwsh
|
||||
run: |
|
||||
|
|
@ -140,7 +150,7 @@ jobs:
|
|||
dotnet test `
|
||||
tests/AcDream.App.Tests/AcDream.App.Tests.csproj `
|
||||
-c Release `
|
||||
--filter "FullyQualifiedName~LinuxMonotonicFramePacingWaiterTests|FullyQualifiedName~LinuxPlatformBoundaryTests|FullyQualifiedName~GraphicalHostPlatformServicesTests|FullyQualifiedName~GraphicalLegacyConfigurationMigratorTests"
|
||||
--filter "FullyQualifiedName~LinuxMonotonicFramePacingWaiterTests|FullyQualifiedName~LinuxPlatformBoundaryTests|FullyQualifiedName~GraphicalHostPlatformServicesTests|FullyQualifiedName~GraphicalLegacyConfigurationMigratorTests|FullyQualifiedName~GraphicalWindowBackendSelectionTests|FullyQualifiedName~GraphicalCapabilityRequirementsTests|FullyQualifiedName~StudioWindowTests"
|
||||
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
|
||||
|
||||
- name: Verify Linux package contract
|
||||
|
|
@ -169,3 +179,26 @@ jobs:
|
|||
src/AcDream.App \
|
||||
--exclude='FramePacingWaiterFactory.cs' \
|
||||
--exclude='WindowsHighResolutionFramePacingWaiter.cs'
|
||||
|
||||
- name: Verify actionable unsupported-driver gate
|
||||
shell: bash
|
||||
run: |
|
||||
set -euo pipefail
|
||||
root=artifacts/acdream-linux-x64
|
||||
report=artifacts/linux-x11-capabilities.json
|
||||
set +e
|
||||
ACDREAM_DISPLAY_PROTOCOL=x11 \
|
||||
xvfb-run -a "$root/AcDream.App" \
|
||||
ui-studio /tmp/not-needed \
|
||||
--mockup \
|
||||
--capability-report "$report"
|
||||
code=$?
|
||||
set -e
|
||||
|
||||
test "$code" -eq 4
|
||||
test "$(jq -r '.ActiveDisplayProtocol' "$report")" = X11
|
||||
test "$(jq -r '.Lifecycle.ShutdownComplete' "$report")" = true
|
||||
test "$(jq -r '.Lifecycle.OwnedWindowCount' "$report")" -eq 0
|
||||
test "$(jq -r '.Lifecycle.OwnedGlApiCount' "$report")" -eq 0
|
||||
test "$(jq -r '.Lifecycle.OwnedInputContextCount' "$report")" -eq 0
|
||||
jq -e '.SupportFailures | length > 0' "$report"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue