2
0
mirror of synced 2025-01-10 16:46:05 +00:00

57 lines
1.7 KiB
C#
Raw Normal View History

2024-04-25 10:25:12 +02:00
using CodexPlugin;
using NUnit.Framework;
using Utils;
2024-05-07 09:49:00 +02:00
namespace CodexTests.UtilityTests
2024-04-25 10:25:12 +02:00
{
[TestFixture]
public class LogHelperTests : AutoBootstrapDistTest
2024-04-25 10:25:12 +02:00
{
[Test]
2024-05-07 09:49:00 +02:00
[Ignore("Used to find the most common log messages.")]
2024-04-25 10:25:12 +02:00
public void FindMostCommonLogMessages()
{
2024-05-09 09:32:48 +02:00
var uploader = StartCodex(s => s.WithName("uploader").WithLogLevel(CodexLogLevel.Trace));
var downloader = StartCodex(s => s.WithName("downloader").WithLogLevel(CodexLogLevel.Trace));
2024-04-25 10:25:12 +02:00
2024-04-25 15:04:02 +02:00
var cid = uploader.UploadFile(GenerateTestFile(100.MB()));
2024-04-25 10:25:12 +02:00
Thread.Sleep(1000);
var logStartUtc = DateTime.UtcNow;
Thread.Sleep(1000);
2024-04-25 10:25:12 +02:00
downloader.DownloadContent(cid);
2024-04-25 15:04:02 +02:00
var map = GetLogMap(downloader, logStartUtc).OrderByDescending(p => p.Value);
Log("Downloader - Receive");
2024-04-25 10:25:12 +02:00
foreach (var entry in map)
{
2024-04-25 15:04:02 +02:00
if (entry.Value > 9)
{
Log($"'{entry.Key}' = {entry.Value}");
}
2024-04-25 10:25:12 +02:00
}
}
private Dictionary<string, int> GetLogMap(ICodexNode node, DateTime? startUtc = null)
2024-04-25 10:25:12 +02:00
{
var log = Ci.DownloadLog(node);
var map = new Dictionary<string, int>();
log.IterateLines(line =>
{
2024-04-27 14:20:31 +02:00
var log = CodexLogLine.Parse(line);
if (log == null) return;
if (startUtc.HasValue)
{
2024-04-27 14:20:31 +02:00
if (log.TimestampUtc < startUtc) return;
}
2024-05-07 09:49:00 +02:00
2024-04-27 14:20:31 +02:00
if (map.ContainsKey(log.Message)) map[log.Message] += 1;
else map.Add(log.Message, 1);
2024-04-25 10:25:12 +02:00
});
return map;
}
}
}