The #421 fix was incomplete
Issue #421 (upstream kkokosa#421, PR #428) fixed hardware-gated tests that report passed instead of skipped. That fix only touched tests/DotLLM.Tests.Unit/Cpu/Kernels/. The identical anti-pattern survives across the integration suite, where it matters more, because those are the tests that verify real models.
The pattern, inside a [SkippableFact]:
_output.WriteLine("[SKIP] fixture not found");
return; // <-- reports PASSED
instead of Skip.If(...).
Surviving instances, measured on this box (gfx1151, Vulkan available):
| suite |
reported |
actually executed |
silent no-ops |
RealGgufVulkanParityTests |
9 passed |
3 |
6 |
other integration Vulkan + CrossBackend* |
77 passed |
9 |
68 |
So of 86 "passing" integration tests, 74 did nothing. On a fixture-less CI runner the number would be higher still, and the suite would report green.
Roughly lines 69, 88, 111, 218, 247, 273, 291 of tests/DotLLM.Tests.Integration/Vulkan/RealGgufVulkanParityTests.cs, plus CrossBackendQuantGateTests and RealHfSafetensorsEndToEndVulkanTests.
This looks unintentional rather than a decision: the same class already uses Skip.If correctly for its Vulkan/SPIR-V availability gates. Only the fixture gates use the silent form.
The worst case: CrossBackendQuantGateTests is 100% inert
This is the class specifically designed to be the format × backend end-to-end matrix — CPU vs CUDA vs Vulkan perplexity agreement per QuantizationType. 105 cases, zero executed. 42 report skipped, 63 report passed.
No fixture exists for any of them. Worse, .docs/corpora/ — the directory its own skip message names as the place documenting how to generate them — does not exist in the repo.
So the intended safety net for cross-backend correctness is entirely notional, and reports green.
Acceptance criteria
References
The #421 fix was incomplete
Issue #421 (upstream kkokosa#421, PR #428) fixed hardware-gated tests that report passed instead of skipped. That fix only touched
tests/DotLLM.Tests.Unit/Cpu/Kernels/. The identical anti-pattern survives across the integration suite, where it matters more, because those are the tests that verify real models.The pattern, inside a
[SkippableFact]:instead of
Skip.If(...).Surviving instances, measured on this box (gfx1151, Vulkan available):
RealGgufVulkanParityTestsCrossBackend*So of 86 "passing" integration tests, 74 did nothing. On a fixture-less CI runner the number would be higher still, and the suite would report green.
Roughly lines 69, 88, 111, 218, 247, 273, 291 of
tests/DotLLM.Tests.Integration/Vulkan/RealGgufVulkanParityTests.cs, plusCrossBackendQuantGateTestsandRealHfSafetensorsEndToEndVulkanTests.This looks unintentional rather than a decision: the same class already uses
Skip.Ifcorrectly for its Vulkan/SPIR-V availability gates. Only the fixture gates use the silent form.The worst case:
CrossBackendQuantGateTestsis 100% inertThis is the class specifically designed to be the format × backend end-to-end matrix — CPU vs CUDA vs Vulkan perplexity agreement per
QuantizationType. 105 cases, zero executed. 42 report skipped, 63 report passed.No fixture exists for any of them. Worse,
.docs/corpora/— the directory its own skip message names as the place documenting how to generate them — does not exist in the repo.So the intended safety net for cross-backend correctness is entirely notional, and reports green.
Acceptance criteria
Skip.If/Skip.IfNot, so absent fixtures report skipped.CrossBackendQuantGateTests' referenced fixture-generation recipe either exists at the path its skip message names, or the message points somewhere real.return;following a[SKIP]log line inside a[SkippableFact], since this has now recurred once after being fixed.References
tests/DotLLM.Tests.Integration/Vulkan/RealGgufVulkanParityTests.cstests/DotLLM.Tests.Integration/CrossBackendQuantGateTests.cs