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:
parent
25f009140a
commit
9f152d9754
1 changed files with 55 additions and 25 deletions
|
|
@ -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]
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue