mirror of
https://github.com/godotengine/godot.git
synced 2025-10-20 08:23:29 +00:00

- Change TFM and LangVersion - Better exception throwing (CA1510, CA1512, CA1513) - Better exception utility method definition (CA1859) - Prefer comparing `.Count` over calling `.Any()` (CA1860) - Prefer `.AsSpan()` over `.Substring()` (CA1846) - Add a few more `scoped` - Use `RuntimeHelpers.GetUninitializedObject()` instead of `FormatterServices.GetUninitializedObject()` - Use delegate instead of delegate pointer in variant generic conversions - Enable EnforceExtendedAnalyzerRules in source generator projects - Disable CS8981 on structs named movable in Godot.NativeInterop
48 lines
1.6 KiB
C#
48 lines
1.6 KiB
C#
using System.IO;
|
|
using System.Threading.Tasks;
|
|
using Microsoft.CodeAnalysis;
|
|
using Microsoft.CodeAnalysis.CodeFixes;
|
|
using Microsoft.CodeAnalysis.CSharp.Testing;
|
|
using Microsoft.CodeAnalysis.Diagnostics;
|
|
using Microsoft.CodeAnalysis.Testing.Verifiers;
|
|
|
|
namespace Godot.SourceGenerators.Tests;
|
|
|
|
public static class CSharpCodeFixVerifier<TCodeFix, TAnalyzer>
|
|
where TCodeFix : CodeFixProvider, new()
|
|
where TAnalyzer : DiagnosticAnalyzer, new()
|
|
{
|
|
public class Test : CSharpCodeFixTest<TAnalyzer, TCodeFix, XUnitVerifier>
|
|
{
|
|
public Test()
|
|
{
|
|
ReferenceAssemblies = Constants.Net80;
|
|
SolutionTransforms.Add((Solution solution, ProjectId projectId) =>
|
|
{
|
|
Project project = solution.GetProject(projectId)!
|
|
.AddMetadataReference(Constants.GodotSharpAssembly.CreateMetadataReference());
|
|
return project.Solution;
|
|
});
|
|
}
|
|
}
|
|
|
|
public static Task Verify(string sources, string fixedSources)
|
|
{
|
|
return MakeVerifier(sources, fixedSources).RunAsync();
|
|
}
|
|
|
|
public static Test MakeVerifier(string source, string results)
|
|
{
|
|
var verifier = new Test();
|
|
|
|
verifier.TestCode = File.ReadAllText(Path.Combine(Constants.SourceFolderPath, source));
|
|
verifier.FixedCode = File.ReadAllText(Path.Combine(Constants.GeneratedSourceFolderPath, results));
|
|
|
|
verifier.TestState.AnalyzerConfigFiles.Add(("/.globalconfig", $"""
|
|
is_global = true
|
|
build_property.GodotProjectDir = {Constants.ExecutingAssemblyPath}
|
|
"""));
|
|
|
|
return verifier;
|
|
}
|
|
}
|