From 32c3ad30eb5c384d174ef00fe7459bc2afc2f4df Mon Sep 17 00:00:00 2001 From: Simon Cropp Date: Sat, 10 Jan 2026 13:39:06 +1100 Subject: [PATCH 1/3] . --- .../DiffEngine.AotTests.csproj | 20 +++++++ src/DiffEngine.AotTests/GlobalUsings.cs | 1 + src/DiffEngine.AotTests/Program.cs | 58 +++++++++++++++++++ src/DiffEngine.slnx | 3 + src/DiffEngine/DiffEngine.csproj | 1 + src/DiffEngine/OrderReader.cs | 4 +- 6 files changed, 84 insertions(+), 3 deletions(-) create mode 100644 src/DiffEngine.AotTests/DiffEngine.AotTests.csproj create mode 100644 src/DiffEngine.AotTests/GlobalUsings.cs create mode 100644 src/DiffEngine.AotTests/Program.cs diff --git a/src/DiffEngine.AotTests/DiffEngine.AotTests.csproj b/src/DiffEngine.AotTests/DiffEngine.AotTests.csproj new file mode 100644 index 00000000..339cf7f3 --- /dev/null +++ b/src/DiffEngine.AotTests/DiffEngine.AotTests.csproj @@ -0,0 +1,20 @@ + + + + Exe + net9.0 + enable + true + true + true + + win-x64 + + true + + + + + + + diff --git a/src/DiffEngine.AotTests/GlobalUsings.cs b/src/DiffEngine.AotTests/GlobalUsings.cs new file mode 100644 index 00000000..c1d1f261 --- /dev/null +++ b/src/DiffEngine.AotTests/GlobalUsings.cs @@ -0,0 +1 @@ +global using DiffEngine; diff --git a/src/DiffEngine.AotTests/Program.cs b/src/DiffEngine.AotTests/Program.cs new file mode 100644 index 00000000..5df4a5ae --- /dev/null +++ b/src/DiffEngine.AotTests/Program.cs @@ -0,0 +1,58 @@ +public static class Program +{ + public static int Main() + { + try + { + TestDiffToolsAccess(); + TestDefinitionsAccess(); + TestToolResolution(); + + Console.WriteLine("All DiffEngine AOT tests passed!"); + return 0; + } + catch (Exception ex) + { + Console.Error.WriteLine($"Test failed: {ex}"); + return 1; + } + } + + static void TestDiffToolsAccess() + { + // Test that we can access DiffTools static properties without reflection issues + var isDetected = DiffTools.IsDetectedForExtension(DiffTool.VisualStudioCode, "txt"); + Console.WriteLine($"DiffTools.IsDetectedForExtension(VSCode, 'txt'): {isDetected}"); + + var allTools = DiffTools.Resolved.ToList(); + Console.WriteLine($"DiffTools.Resolved count: {allTools.Count}"); + } + + static void TestDefinitionsAccess() + { + // Test that tool definitions can be accessed + var definitions = Definitions.Tools.ToList(); + Console.WriteLine($"Definitions.Tools count: {definitions.Count}"); + + foreach (var def in definitions.Take(3)) + { + Console.WriteLine($" Tool: {def.Tool}, Url: {def.Url}"); + } + } + + static void TestToolResolution() + { + // Test tool resolution + var found = DiffTools.TryFindByExtension("txt", out var resolved); + Console.WriteLine($"TryFindByExtension('txt'): found={found}"); + + if (found && resolved != null) + { + Console.WriteLine($" Resolved tool: {resolved.Tool}"); + } + + // Test by name + var foundByName = DiffTools.TryFindByName(DiffTool.VisualStudioCode, out _); + Console.WriteLine($"TryFindByName(VisualStudioCode): found={foundByName}"); + } +} diff --git a/src/DiffEngine.slnx b/src/DiffEngine.slnx index daf64eff..2adaed3a 100644 --- a/src/DiffEngine.slnx +++ b/src/DiffEngine.slnx @@ -33,4 +33,7 @@ + + + diff --git a/src/DiffEngine/DiffEngine.csproj b/src/DiffEngine/DiffEngine.csproj index 2a93061b..e5e38d54 100644 --- a/src/DiffEngine/DiffEngine.csproj +++ b/src/DiffEngine/DiffEngine.csproj @@ -3,6 +3,7 @@ net462;net472;net48;net9.0;net10.0 $(TargetFrameworks);net6.0;net7.0;net8.0;net9.0;net10.0 true + true diff --git a/src/DiffEngine/OrderReader.cs b/src/DiffEngine/OrderReader.cs index 2f988845..90799217 100644 --- a/src/DiffEngine/OrderReader.cs +++ b/src/DiffEngine/OrderReader.cs @@ -2,9 +2,7 @@ { public record Result(bool UsedToolOrderEnvVar, IEnumerable Order); - static Result defaultResult = new(false, Enum - .GetValues(typeof(DiffTool)) - .Cast()); + static Result defaultResult = new(false, Enum.GetValues()); public static Result ReadToolOrder() { From b76f451370fa3a26e93faf5722a357680984b3fc Mon Sep 17 00:00:00 2001 From: Simon Cropp Date: Sat, 10 Jan 2026 14:43:28 +1100 Subject: [PATCH 2/3] Update DiffEngine.AotTests.csproj --- src/DiffEngine.AotTests/DiffEngine.AotTests.csproj | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/DiffEngine.AotTests/DiffEngine.AotTests.csproj b/src/DiffEngine.AotTests/DiffEngine.AotTests.csproj index 339cf7f3..5f37fcf3 100644 --- a/src/DiffEngine.AotTests/DiffEngine.AotTests.csproj +++ b/src/DiffEngine.AotTests/DiffEngine.AotTests.csproj @@ -9,8 +9,6 @@ true win-x64 - - true From 56b66a6ce17f20933c05857163eb86f4e529972c Mon Sep 17 00:00:00 2001 From: Simon Cropp Date: Sun, 11 Jan 2026 11:17:50 +1100 Subject: [PATCH 3/3] Update .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 542da962..c3c65245 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ obj/ *.received.* nugets/ .claude/settings.local.json +nul