feat(cordis): 完成阶段5访问介导与诊断

This commit is contained in:
2026-08-17 01:09:32 +08:00
parent de5ab449cd
commit 8738e633ee
35 changed files with 1540 additions and 50 deletions
@@ -3,6 +3,7 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text.RegularExpressions;
using System.Threading;
@@ -241,6 +242,16 @@ namespace ShrinkModFramework.Tests
CopyFixture("ExternalFixture.Mod.V3.dll.bytes", target);
ShrinkModLoader.LoadNewExternalMods(settings);
AssertExternalFixture("3.0.0", "v3");
settings.externalAssemblyRevisionSoftLimit = 2;
var diagnostics = ShrinkModDiagnostics.CaptureExternalAssemblies(settings);
Assert.AreEqual(1, diagnostics.CurrentRevisionCount,
"同一路径只有最终有效 revision 是 current");
Assert.GreaterOrEqual(diagnostics.ResidentRevisionCount, 3,
"v1、失败但已加载的 v2、v3 Assembly 在 Mono 下都会常驻");
Assert.Greater(diagnostics.EstimatedResidentBytes, 0L);
Assert.IsTrue(diagnostics.IsSoftLimitExceeded);
Assert.AreEqual(1, diagnostics.ResidentRevisions.Count(item => item.IsCurrent));
}
finally
{