/
githubmirror
/
roslyn
Обзор
Документация
Войти
/
githubmirror
/
roslyn
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Workspaces/CoreTest/GeneratedCodeRecognitionTests.cs
103 строки
4 KB
Jared Parsons
Port more tests to run on Linux (#83052)
10 апр 2026, 00:39
Не верифицирован
10 апр 2026, 00:39
82a89d0
Код
Авторство
О чём код?
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. #nullable disable using System.IO; using System.Threading; using Microsoft.CodeAnalysis.Shared.Extensions; using Microsoft.CodeAnalysis.Test.Utilities; using Microsoft.CodeAnalysis.Text; using Roslyn.Test.Utilities; using Xunit; namespace Microsoft.CodeAnalysis.UnitTests; [UseExportProvider] public sealed class GeneratedCodeRecognitionTests { [Fact] public void TestFileNamesNotGenerated() => TestFileNames(false, "", "Test", "Test.cs", "Test.vb", "AssemblyInfo.cs", "AssemblyInfo.vb", ".NETFramework,Version=v4.5.AssemblyAttributes.cs", ".NETFramework,Version=v4.5.AssemblyAttributes.vb", "Test.notgenerated.cs", "Test.notgenerated.vb", "Test.generated", "Test.designer"); [Fact] public void TestFileNamesGenerated() => TestFileNames(true, "TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92", "TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs", "TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.vb", "Test.designer.cs", "Test.designer.vb", "Test.Designer.cs", "Test.Designer.vb", "Test.generated.cs", "Test.generated.vb", "Test.g.cs", "Test.g.vb", "Test.g.i.cs", "Test.g.i.vb"); private static void TestFileNames(bool assertGenerated, params string[] fileNames) { var project = CreateProject(); var projectWithUserConfiguredGeneratedCodeTrue = project.AddAnalyzerConfigDocument(".editorconfig", SourceText.From(""" [*.{cs,vb}] generated_code = true """), filePath: TestHelpers.GetRootedPath(".editorconfig")).Project; var projectWithUserConfiguredGeneratedCodeFalse = project.AddAnalyzerConfigDocument(".editorconfig", SourceText.From(""" [*.{cs,vb}] generated_code = false """), filePath: TestHelpers.GetRootedPath(".editorconfig")).Project; foreach (var fileName in fileNames) { TestCore(fileName, project, assertGenerated); // Verify user configuration always overrides generated code heuristic. if (fileName.EndsWith(".cs") || fileName.EndsWith(".vb")) { TestCore(fileName, projectWithUserConfiguredGeneratedCodeTrue, assertGenerated: true); TestCore(fileName, projectWithUserConfiguredGeneratedCodeFalse, assertGenerated: false); } } static void TestCore(string fileName, Project project, bool assertGenerated) { var document = project.AddDocument(fileName, "", filePath: Path.Combine(TestHelpers.GetRootedPath(), fileName)); if (assertGenerated) { Assert.True(document.IsGeneratedCode(CancellationToken.None), string.Format("Expected file '{0}' to be interpreted as generated code", fileName)); } else { Assert.False(document.IsGeneratedCode(CancellationToken.None), string.Format("Did not expect file '{0}' to be interpreted as generated code", fileName)); } } } private static Project CreateProject() { var projectName = "TestProject"; var projectId = ProjectId.CreateNewId(projectName); return new AdhocWorkspace().CurrentSolution .AddProject(projectId, projectName, projectName, LanguageNames.CSharp) .GetProject(projectId); } }