diff options
| author | godosa <godosa@godosa.eu> | 2026-10-06 23:39:36 +0200 |
|---|---|---|
| committer | godosa <godosa@godosa.eu> | 2026-10-06 23:39:36 +0200 |
| commit | 39066900773e7857faf2d02e7ed51b71d219d97d (patch) | |
| tree | ffab8e4ddd971626776c3b1f4ce1da2c186c2187 /src/Godosa.Core.Tests/Diagnostics/DebugFlagsTests.cs | |
| download | godosa-engine-39066900773e7857faf2d02e7ed51b71d219d97d.tar.gz godosa-engine-39066900773e7857faf2d02e7ed51b71d219d97d.zip | |
godosa-engine: initial public history
Diffstat (limited to 'src/Godosa.Core.Tests/Diagnostics/DebugFlagsTests.cs')
| -rw-r--r-- | src/Godosa.Core.Tests/Diagnostics/DebugFlagsTests.cs | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/Godosa.Core.Tests/Diagnostics/DebugFlagsTests.cs b/src/Godosa.Core.Tests/Diagnostics/DebugFlagsTests.cs new file mode 100644 index 0000000..c67042e --- /dev/null +++ b/src/Godosa.Core.Tests/Diagnostics/DebugFlagsTests.cs @@ -0,0 +1,59 @@ +using Godosa.Core.Diagnostics; +using Xunit; + +namespace Godosa.Core.Tests.Diagnostics; + +public class DebugFlagsTests +{ + [Fact] + public void Categories_AreCommaSeparated_Trimmed_CaseInsensitive() + { + var flags = new DebugFlags(" input , AUDIO"); + Assert.True(flags.On("input")); + Assert.True(flags.On("audio")); + Assert.False(flags.On("frames")); + } + + [Fact] + public void All_TurnsOnEveryCategory_ButNotExactSwitches() + { + var flags = new DebugFlags("all"); + Assert.True(flags.On("script")); + Assert.False(flags.Exact("nohud")); + } + + [Fact] + public void Exact_MatchesOnlyTheNamedSwitch() + { + var flags = new DebugFlags("frames,NoHud"); + Assert.True(flags.Exact("nohud")); + Assert.False(flags.Exact("input")); + } + + [Fact] + public void MissingOrEmpty_TurnsNothingOn() + { + Assert.False(new DebugFlags(null).On("input")); + Assert.False(new DebugFlags(" , ,").On("input")); + } + + [Fact] + public void EngineDebug_Apply_SetsEachLibCategory() + { + try + { + EngineDebug.Apply(new DebugFlags("script")); + Assert.True(EngineDebug.Script); + Assert.False(EngineDebug.Input); + Assert.False(EngineDebug.Audio); + EngineDebug.Apply(new DebugFlags("input,audio")); + Assert.True(EngineDebug.Input); + Assert.True(EngineDebug.Audio); + Assert.False(EngineDebug.Script); + } + finally + { + EngineDebug.Apply(new DebugFlags(null)); + } + } +} |
