mirror of
https://github.com/par274/sharpemu.git
synced 2026-09-08 01:29:21 +08:00
Reject undefined numeric LogLevel values (#390)
This commit is contained in:
@@ -110,7 +110,8 @@ public static class SharpEmuLog
|
|||||||
}
|
}
|
||||||
|
|
||||||
var normalized = text.Trim();
|
var normalized = text.Trim();
|
||||||
if (Enum.TryParse<LogLevel>(normalized, ignoreCase: true, out level))
|
if (Enum.TryParse<LogLevel>(normalized, ignoreCase: true, out level) &&
|
||||||
|
Enum.IsDefined(level))
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -127,6 +128,7 @@ public static class SharpEmuLog
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
level = default;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,39 @@
|
|||||||
|
// Copyright (C) 2026 SharpEmu Emulator Project
|
||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
using SharpEmu.Logging;
|
||||||
|
using Xunit;
|
||||||
|
|
||||||
|
namespace SharpEmu.Libs.Tests.Logging;
|
||||||
|
|
||||||
|
public sealed class SharpEmuLogTests
|
||||||
|
{
|
||||||
|
[Theory]
|
||||||
|
[InlineData("Trace", LogLevel.Trace)]
|
||||||
|
[InlineData("debug", LogLevel.Debug)]
|
||||||
|
[InlineData(" Info ", LogLevel.Info)]
|
||||||
|
[InlineData("WARNING", LogLevel.Warning)]
|
||||||
|
[InlineData("Error", LogLevel.Error)]
|
||||||
|
[InlineData("critical", LogLevel.Critical)]
|
||||||
|
[InlineData("None", LogLevel.None)]
|
||||||
|
[InlineData("warn", LogLevel.Warning)]
|
||||||
|
[InlineData("fatal", LogLevel.Critical)]
|
||||||
|
public void TryParseLevelAcceptsDefinedNamesAndAliases(string text, LogLevel expected)
|
||||||
|
{
|
||||||
|
Assert.True(SharpEmuLog.TryParseLevel(text, out var actual));
|
||||||
|
Assert.Equal(expected, actual);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Theory]
|
||||||
|
[InlineData(null)]
|
||||||
|
[InlineData("")]
|
||||||
|
[InlineData(" ")]
|
||||||
|
[InlineData("unknown")]
|
||||||
|
[InlineData("999")]
|
||||||
|
[InlineData("-1")]
|
||||||
|
public void TryParseLevelRejectsInvalidValues(string? text)
|
||||||
|
{
|
||||||
|
Assert.False(SharpEmuLog.TryParseLevel(text, out var level));
|
||||||
|
Assert.Equal(default, level);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user