server-monitor-manager/tests/ServerMonitorManager.Control.Tests/LinuxMetricsTests.cs
2026-07-17 11:22:26 +07:00

39 lines
1.2 KiB
C#

using ServerMonitorManager.Agent;
using Xunit;
namespace ServerMonitorManager.Control.Tests;
public sealed class LinuxMetricsTests
{
[Fact]
public void ProcParsersHandleRepresentativeLinuxData()
{
Assert.Equal(0.42, LinuxMetrics.ParseLoadOne("0.42 0.31 0.20 1/100 123\n"));
Assert.Equal(1234L, LinuxMetrics.ParseUptimeSeconds("1234.98 567.00\n"));
Assert.Equal(
(2L * 1024 * 1024, 512L * 1024),
LinuxMetrics.ParseMemory(
[
"MemTotal: 2048 kB",
"MemFree: 100 kB",
"MemAvailable: 512 kB"
]));
Assert.Equal(
(400L, 600L),
LinuxMetrics.ParseNetwork(
[
"Inter-| Receive | Transmit",
" face |bytes ...|bytes ...",
"lo: 10 0 0 0 0 0 0 0 20 0 0 0 0 0 0 0",
"eth0: 100 0 0 0 0 0 0 0 200 0 0 0 0 0 0 0",
"wg0: 300 0 0 0 0 0 0 0 400 0 0 0 0 0 0 0"
]));
}
[Fact]
public void InvalidMemoryTotalsAreRejected()
{
Assert.Throws<InvalidDataException>(() =>
LinuxMetrics.ParseMemory(["MemAvailable: 10 kB"]));
}
}