public async Task DiagnosticAnalyzerDriverIsSafeAgainstAnalyzerExceptions()
        {
            var source = TestResource.AllInOneCSharpCode;

            using (var workspace = await TestWorkspace.CreateCSharpAsync(source, TestOptions.Regular))
            {
                var document = workspace.CurrentSolution.Projects.Single().Documents.Single();
                await ThrowingDiagnosticAnalyzer <SyntaxKind> .VerifyAnalyzerEngineIsSafeAgainstExceptionsAsync(async analyzer =>
                                                                                                                await DiagnosticProviderTestUtilities.GetAllDiagnosticsAsync(analyzer, document, new Text.TextSpan(0, document.GetTextAsync().Result.Length), logAnalyzerExceptionAsDiagnostics: true));
            }
        }
Example #2
0
        public void AnalyzerDriverIsSafeAgainstAnalyzerExceptions()
        {
            var compilation = CreateCompilationWithMscorlib45(TestResource.AllInOneCSharpCode);
            var options     = new AnalyzerOptions(
                new[] { new TestAdditionalText() }.ToImmutableArray <AdditionalText>()
                );

            ThrowingDiagnosticAnalyzer <SyntaxKind> .VerifyAnalyzerEngineIsSafeAgainstExceptions(
                analyzer => compilation.GetAnalyzerDiagnostics(new[] { analyzer }, options)
                );
        }
Example #3
0
        public async Task DiagnosticAnalyzerDriverIsSafeAgainstAnalyzerExceptions()
        {
            var source = TestResource.AllInOneCSharpCode;

            using var workspace = TestWorkspace.CreateCSharp(source, TestOptions.Regular);

            await ThrowingDiagnosticAnalyzer <SyntaxKind> .VerifyAnalyzerEngineIsSafeAgainstExceptionsAsync(async analyzer =>
            {
                var analyzerReference = new AnalyzerImageReference(ImmutableArray.Create(analyzer));
                workspace.TryApplyChanges(workspace.CurrentSolution.WithAnalyzerReferences(new[] { analyzerReference }));

                var document = workspace.CurrentSolution.Projects.Single().Documents.Single();
                return(await DiagnosticProviderTestUtilities.GetAllDiagnosticsAsync(document, new TextSpan(0, document.GetTextAsync().Result.Length)));
            });
        }
 public void DiagnosticServiceIsSafeAgainstAnalyzerExceptions_1()
 {
     var analyzer = new ThrowingDiagnosticAnalyzer<SyntaxKind>();
     analyzer.ThrowOn(typeof(DiagnosticAnalyzer).GetProperties().Single().Name);
     AccessSupportedDiagnostics(analyzer);
 }