test(diagnostics): restore RenderingDiagnostics state in try/finally

Final code review of Phase 1 flagged that the three flag-mutating
tests leaked static state across test boundaries. Wrap each in
try/finally that snapshots IndoorAll on entry and restores it on
exit, matching the PhysicsDiagnosticsTests pattern at line 30-49.
Tests now safe under parallel test runs + future additions.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Erik 2026-05-19 12:08:51 +02:00
parent 25f009140a
commit 9f152d9754

View file

@ -5,47 +5,77 @@ namespace AcDream.Core.Tests.Rendering;
public sealed class RenderingDiagnosticsTests public sealed class RenderingDiagnosticsTests
{ {
// Each flag-mutating test snapshots the IndoorAll state on entry and
// restores it via try/finally. RenderingDiagnostics is a process-wide
// static (env-var-initialized); without restoration a mutated state
// leaks into other tests + into parallel test runs. Mirrors the
// PhysicsDiagnosticsTests pattern at line 30-49.
[Fact] [Fact]
public void IndoorAll_True_TurnsAllFlagsOn() public void IndoorAll_True_TurnsAllFlagsOn()
{ {
// Reset all flags off first to make the test deterministic bool initial = RenderingDiagnostics.IndoorAll;
// regardless of env-var state on the test runner. try
RenderingDiagnostics.ProbeIndoorWalkEnabled = false; {
RenderingDiagnostics.ProbeIndoorLookupEnabled = false; // Reset all flags off first to make the test deterministic
RenderingDiagnostics.ProbeIndoorUploadEnabled = false; // regardless of env-var state on the test runner.
RenderingDiagnostics.ProbeIndoorXformEnabled = false; RenderingDiagnostics.ProbeIndoorWalkEnabled = false;
RenderingDiagnostics.ProbeIndoorCullEnabled = false; RenderingDiagnostics.ProbeIndoorLookupEnabled = false;
RenderingDiagnostics.ProbeIndoorUploadEnabled = false;
RenderingDiagnostics.ProbeIndoorXformEnabled = false;
RenderingDiagnostics.ProbeIndoorCullEnabled = false;
RenderingDiagnostics.IndoorAll = true; RenderingDiagnostics.IndoorAll = true;
Assert.True(RenderingDiagnostics.ProbeIndoorWalkEnabled); Assert.True(RenderingDiagnostics.ProbeIndoorWalkEnabled);
Assert.True(RenderingDiagnostics.ProbeIndoorLookupEnabled); Assert.True(RenderingDiagnostics.ProbeIndoorLookupEnabled);
Assert.True(RenderingDiagnostics.ProbeIndoorUploadEnabled); Assert.True(RenderingDiagnostics.ProbeIndoorUploadEnabled);
Assert.True(RenderingDiagnostics.ProbeIndoorXformEnabled); Assert.True(RenderingDiagnostics.ProbeIndoorXformEnabled);
Assert.True(RenderingDiagnostics.ProbeIndoorCullEnabled); Assert.True(RenderingDiagnostics.ProbeIndoorCullEnabled);
Assert.True(RenderingDiagnostics.IndoorAll); Assert.True(RenderingDiagnostics.IndoorAll);
}
finally
{
RenderingDiagnostics.IndoorAll = initial;
}
} }
[Fact] [Fact]
public void IndoorAll_False_TurnsAllFlagsOff() public void IndoorAll_False_TurnsAllFlagsOff()
{ {
RenderingDiagnostics.IndoorAll = true; // start from all-on bool initial = RenderingDiagnostics.IndoorAll;
RenderingDiagnostics.IndoorAll = false; try
{
RenderingDiagnostics.IndoorAll = true; // start from all-on
RenderingDiagnostics.IndoorAll = false;
Assert.False(RenderingDiagnostics.ProbeIndoorWalkEnabled); Assert.False(RenderingDiagnostics.ProbeIndoorWalkEnabled);
Assert.False(RenderingDiagnostics.ProbeIndoorLookupEnabled); Assert.False(RenderingDiagnostics.ProbeIndoorLookupEnabled);
Assert.False(RenderingDiagnostics.ProbeIndoorUploadEnabled); Assert.False(RenderingDiagnostics.ProbeIndoorUploadEnabled);
Assert.False(RenderingDiagnostics.ProbeIndoorXformEnabled); Assert.False(RenderingDiagnostics.ProbeIndoorXformEnabled);
Assert.False(RenderingDiagnostics.ProbeIndoorCullEnabled); Assert.False(RenderingDiagnostics.ProbeIndoorCullEnabled);
Assert.False(RenderingDiagnostics.IndoorAll); Assert.False(RenderingDiagnostics.IndoorAll);
}
finally
{
RenderingDiagnostics.IndoorAll = initial;
}
} }
[Fact] [Fact]
public void IndoorAll_OneOff_ReadsAsFalse() public void IndoorAll_OneOff_ReadsAsFalse()
{ {
RenderingDiagnostics.IndoorAll = true; bool initial = RenderingDiagnostics.IndoorAll;
RenderingDiagnostics.ProbeIndoorCullEnabled = false; // flip one off try
Assert.False(RenderingDiagnostics.IndoorAll); {
RenderingDiagnostics.IndoorAll = true;
RenderingDiagnostics.ProbeIndoorCullEnabled = false; // flip one off
Assert.False(RenderingDiagnostics.IndoorAll);
}
finally
{
RenderingDiagnostics.IndoorAll = initial;
}
} }
[Theory] [Theory]