test(vulkan): isolate the hardware witness lane
Tag the production offscreen witness as Lane=Vulkan, exclude capability-owned tests from the portable Release filter, and give lavapipe an explicit trait-only invocation after the portable Vulkan contracts. Document the lane and pin witness, portable-filter, and workflow ownership without initializing Vulkan. Mutations performed and restored: 1. Removed the witness trait: VulkanLaneOwnershipContractTests first failed Assert.Matches because the Lane=Vulkan/Fact/method pattern was absent. 2. Removed Lane!=Vulkan from the default filter: the contract first failed Assert.Contains, not found Lane!=Vulkan. 3. Weakened the dedicated invocation to Lane!=Vulkan: the contract first failed Assert.Contains, not found --filter Lane=Vulkan in the hardware step. 4. Narrowed the dedicated invocation with FullyQualifiedName: the contract first failed Assert.DoesNotContain because FullyQualifiedName was present at position 231.
This commit is contained in:
parent
15a796c3a1
commit
7506e5f14e
5 changed files with 112 additions and 5 deletions
|
|
@ -12,9 +12,10 @@ The command verifies that `AcDream.slnx` contains every `.csproj` under `src/`,
|
|||
then discovers and runs every hermetic test in every default test assembly once
|
||||
in a fresh Release process. It does not retry failures. Tests carrying an
|
||||
explicit non-hermetic `Lane` trait (`InstalledDat`, `PreparedPackage`, `Live`,
|
||||
`Manual`, `Timing`, `Windows`, `Linux`, or `SystemFont`), `Purpose=Diagnostic`, or
|
||||
`Status=KnownFailure` are excluded from the hermetic total and run through
|
||||
their owned lane instead. The graph currently contains 54 projects,
|
||||
`Manual`, `Timing`, `Windows`, `Linux`, `Vulkan`, or `SystemFont`),
|
||||
`Purpose=Diagnostic`, or `Status=KnownFailure` are excluded from the hermetic
|
||||
total and run through their owned lane instead. The graph currently contains
|
||||
54 projects,
|
||||
including all 17 maintained .NET tools and three render-pack SDK samples;
|
||||
data-dependent tools and SDK samples are built but are not executed as tests.
|
||||
|
||||
|
|
@ -108,6 +109,18 @@ and Forgejo fails a task that stops reporting as a zombie.
|
|||
|
||||
## Non-hermetic test lanes
|
||||
|
||||
`Lane=Vulkan` owns tests that require a Vulkan loader, a Vulkan 1.3-capable
|
||||
physical device with a graphics queue, and coherent host-visible readback
|
||||
memory. The portable Release gate excludes this capability lane. The
|
||||
`linux-vulkan` CI job installs lavapipe and runs it explicitly; missing Vulkan
|
||||
capability is a failure there, not a skip. Run the same dedicated lane locally
|
||||
on a capable device with:
|
||||
|
||||
```powershell
|
||||
dotnet test tests/AcDream.App.Tests/AcDream.App.Tests.csproj -c Release `
|
||||
--filter 'Lane=Vulkan'
|
||||
```
|
||||
|
||||
Installed-DAT tests require an explicit opt-in and a retail DAT directory:
|
||||
|
||||
```powershell
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue