tests: preserve descriptor phi rejection coverage for writable buffers

This commit is contained in:
nmzik
2026-10-04 07:15:44 +04:00
parent 5f01308b20
commit 919c058fee
+6 -6
View File
@@ -2352,7 +2352,7 @@ void TestDynamicSrtReadRemainsExplicit() {
"unified memory-offset layout is inconsistent");
}
void TestPhiValidation() {
void TestWritableDescriptorPhi() {
Fixture fixture;
auto *left = fixture.block;
auto *right = fixture.AddBlock();
@@ -2370,16 +2370,16 @@ void TestPhiValidation() {
MemoryFlags{0, 20}, merge);
MemoryInfo memory;
memory.kind = ResourceKind::Buffer;
fixture.Emit(ValueOpcode::LoadBufferU32,
{handle, Value(0u), Value(0u), Value(0u), Value(true)},
fixture.Emit(ValueOpcode::StoreBufferU32,
{handle, Value(0u), Value(0u), Value(0u), Value(1u), Value(true)},
fixture.AddMemory(memory, 20), merge);
CheckFatal([&] { fixture.PlanAndTrack(); }, "not a valid runtime value",
"control-dependent descriptor phi was accepted");
"control-dependent writable descriptor phi was accepted");
Check(!fixture.program.resource_tracking_complete &&
fixture.program.info.buffers.empty() &&
fixture.program.descriptor_sources.empty(),
"control-dependent descriptor phi was not rejected transactionally");
"control-dependent writable descriptor phi was not rejected transactionally");
}
ResourcePlan ConditionalSamplerPlan(bool diamond, bool reverse, bool reverse_phi,
@@ -3474,7 +3474,7 @@ int main() {
Run("draw-uniform scalar image", TestUniformScalarBufferImage);
Run("SRT runtime", TestSrtFlatteningAndRuntimeMemoization);
Run("dynamic SRT", TestDynamicSrtReadRemainsExplicit);
Run("phi validation", TestPhiValidation);
Run("writable descriptor phi", TestWritableDescriptorPhi);
Run("conditional sampler phi", TestConditionalSamplerPhi);
Run("finite image phi cycle", TestFiniteImagePhiCycle);
Run("finite image bit scan sentinel", TestFiniteImageBitScanSentinel);