test: replace composition source freezes
This commit is contained in:
parent
caa5eb8b2b
commit
80c7b44457
8 changed files with 471 additions and 406 deletions
|
|
@ -6,6 +6,7 @@ using AcDream.App.Rendering.Gpu;
|
|||
using AcDream.App.Rendering.Wb;
|
||||
using AcDream.App.Rendering.Residency;
|
||||
using AcDream.App.World;
|
||||
using AcDream.App.Tests.Architecture;
|
||||
using AcDream.App.Tests.Rendering.Gpu;
|
||||
using AcDream.Content;
|
||||
using AcDream.Core.Physics;
|
||||
|
|
@ -121,23 +122,21 @@ public sealed class WorldRenderCompositionTests
|
|||
[Fact]
|
||||
public void GameWindowUsesPhaseAndNoLongerBuildsWorldFoundationInline()
|
||||
{
|
||||
string source = File.ReadAllText(Path.Combine(
|
||||
FindRepoRoot(),
|
||||
"src",
|
||||
"AcDream.App",
|
||||
"Rendering",
|
||||
"GameWindow.cs"));
|
||||
IReadOnlyList<CompiledCall> calls =
|
||||
CompiledCallGraph.ReadDeclared(typeof(GameWindow));
|
||||
|
||||
Assert.Contains("new WorldRenderCompositionPhase(", source,
|
||||
StringComparison.Ordinal);
|
||||
Assert.DoesNotContain("BindlessSupport.TryCreate(_gl", source,
|
||||
StringComparison.Ordinal);
|
||||
Assert.DoesNotContain("_terrainModernShader = new Shader", source,
|
||||
StringComparison.Ordinal);
|
||||
Assert.DoesNotContain("_wbMeshAdapter = new", source,
|
||||
StringComparison.Ordinal);
|
||||
Assert.DoesNotContain("_textureCache = new TextureCache", source,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Single(
|
||||
calls,
|
||||
call => call.Target.DeclaringType
|
||||
== typeof(WorldRenderCompositionPhase)
|
||||
&& call.Target.IsConstructor);
|
||||
Assert.DoesNotContain(
|
||||
calls,
|
||||
call => call.Target.IsConstructor
|
||||
&& call.Target.DeclaringType is { } type
|
||||
&& (type == typeof(TerrainModernRenderer)
|
||||
|| type == typeof(WbMeshAdapter)
|
||||
|| type == typeof(TextureCache)));
|
||||
}
|
||||
|
||||
private sealed class Fixture
|
||||
|
|
@ -385,15 +384,4 @@ public sealed class WorldRenderCompositionTests
|
|||
private static T Stub<T>() where T : class =>
|
||||
(T)RuntimeHelpers.GetUninitializedObject(typeof(T));
|
||||
|
||||
private static string FindRepoRoot()
|
||||
{
|
||||
DirectoryInfo? directory = new(AppContext.BaseDirectory);
|
||||
while (directory is not null)
|
||||
{
|
||||
if (File.Exists(Path.Combine(directory.FullName, "AcDream.slnx")))
|
||||
return directory.FullName;
|
||||
directory = directory.Parent;
|
||||
}
|
||||
throw new DirectoryNotFoundException("Could not find AcDream.slnx.");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue