From 9398a5da2d8aa0c103f2a5d373806486b3edf450 Mon Sep 17 00:00:00 2001 From: Sam Harwell Date: Tue, 28 May 2019 11:14:49 -0500 Subject: [PATCH 1/3] Add missing copyright headers --- .../AnalyzerVerifier.vb | 4 +++- .../AnalyzerVerifier`1.vb | 4 +++- .../AnalyzerVerifier.vb | 4 +++- .../AnalyzerVerifier`1.vb | 4 +++- .../AnalyzerVerifier.vb | 4 +++- .../AnalyzerVerifier`1.vb | 4 +++- .../VisualBasicAnalyzerTest.vb | 4 +++- .../VisualBasicAnalyzerVerifier.vb | 4 +++- .../CodeFixVerifier.vb | 4 +++- .../CodeFixVerifier`2.vb | 4 +++- .../CodeFixVerifier.vb | 4 +++- .../CodeFixVerifier`2.vb | 4 +++- .../CodeFixVerifier.vb | 4 +++- .../CodeFixVerifier`2.vb | 4 +++- .../VisualBasicCodeFixTest.vb | 4 +++- .../VisualBasicCodefixVerifier.vb | 4 +++- 16 files changed, 48 insertions(+), 16 deletions(-) diff --git a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing.MSTest/AnalyzerVerifier.vb b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing.MSTest/AnalyzerVerifier.vb index a9df70051e..821a5c3246 100644 --- a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing.MSTest/AnalyzerVerifier.vb +++ b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing.MSTest/AnalyzerVerifier.vb @@ -1,4 +1,6 @@ -Imports Microsoft.CodeAnalysis.Diagnostics +' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +Imports Microsoft.CodeAnalysis.Diagnostics Module AnalyzerVerifier Function Create(Of TAnalyzer As {DiagnosticAnalyzer, New})() As AnalyzerVerifier(Of TAnalyzer) diff --git a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing.MSTest/AnalyzerVerifier`1.vb b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing.MSTest/AnalyzerVerifier`1.vb index b6a07fb1ca..16bec5a4b5 100644 --- a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing.MSTest/AnalyzerVerifier`1.vb +++ b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing.MSTest/AnalyzerVerifier`1.vb @@ -1,4 +1,6 @@ -Imports Microsoft.CodeAnalysis.Diagnostics +' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +Imports Microsoft.CodeAnalysis.Diagnostics Imports Microsoft.CodeAnalysis.Testing.Verifiers Imports Microsoft.CodeAnalysis.VisualBasic.Testing diff --git a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing.NUnit/AnalyzerVerifier.vb b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing.NUnit/AnalyzerVerifier.vb index a9df70051e..821a5c3246 100644 --- a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing.NUnit/AnalyzerVerifier.vb +++ b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing.NUnit/AnalyzerVerifier.vb @@ -1,4 +1,6 @@ -Imports Microsoft.CodeAnalysis.Diagnostics +' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +Imports Microsoft.CodeAnalysis.Diagnostics Module AnalyzerVerifier Function Create(Of TAnalyzer As {DiagnosticAnalyzer, New})() As AnalyzerVerifier(Of TAnalyzer) diff --git a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing.NUnit/AnalyzerVerifier`1.vb b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing.NUnit/AnalyzerVerifier`1.vb index 6aab17305b..e1c1704c60 100644 --- a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing.NUnit/AnalyzerVerifier`1.vb +++ b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing.NUnit/AnalyzerVerifier`1.vb @@ -1,4 +1,6 @@ -Imports Microsoft.CodeAnalysis.Diagnostics +' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +Imports Microsoft.CodeAnalysis.Diagnostics Imports Microsoft.CodeAnalysis.Testing.Verifiers Imports Microsoft.CodeAnalysis.VisualBasic.Testing diff --git a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing.XUnit/AnalyzerVerifier.vb b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing.XUnit/AnalyzerVerifier.vb index a9df70051e..821a5c3246 100644 --- a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing.XUnit/AnalyzerVerifier.vb +++ b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing.XUnit/AnalyzerVerifier.vb @@ -1,4 +1,6 @@ -Imports Microsoft.CodeAnalysis.Diagnostics +' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +Imports Microsoft.CodeAnalysis.Diagnostics Module AnalyzerVerifier Function Create(Of TAnalyzer As {DiagnosticAnalyzer, New})() As AnalyzerVerifier(Of TAnalyzer) diff --git a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing.XUnit/AnalyzerVerifier`1.vb b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing.XUnit/AnalyzerVerifier`1.vb index 40570e8f13..481d3cfc27 100644 --- a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing.XUnit/AnalyzerVerifier`1.vb +++ b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing.XUnit/AnalyzerVerifier`1.vb @@ -1,4 +1,6 @@ -Imports Microsoft.CodeAnalysis.Diagnostics +' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +Imports Microsoft.CodeAnalysis.Diagnostics Imports Microsoft.CodeAnalysis.Testing.Verifiers Imports Microsoft.CodeAnalysis.VisualBasic.Testing diff --git a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing/VisualBasicAnalyzerTest.vb b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing/VisualBasicAnalyzerTest.vb index 508617ab63..91a559d024 100644 --- a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing/VisualBasicAnalyzerTest.vb +++ b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing/VisualBasicAnalyzerTest.vb @@ -1,4 +1,6 @@ -Imports Microsoft.CodeAnalysis.Diagnostics +' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +Imports Microsoft.CodeAnalysis.Diagnostics Imports Microsoft.CodeAnalysis.Testing Public Class VisualBasicAnalyzerTest(Of TAnalyzer As {DiagnosticAnalyzer, New}, TVerifier As {IVerifier, New}) diff --git a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing/VisualBasicAnalyzerVerifier.vb b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing/VisualBasicAnalyzerVerifier.vb index 7b076d680a..6e84981cb9 100644 --- a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing/VisualBasicAnalyzerVerifier.vb +++ b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing/VisualBasicAnalyzerVerifier.vb @@ -1,4 +1,6 @@ -Imports Microsoft.CodeAnalysis.Diagnostics +' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +Imports Microsoft.CodeAnalysis.Diagnostics Imports Microsoft.CodeAnalysis.Testing Public Class VisualBasicAnalyzerVerifier(Of TAnalyzer As {DiagnosticAnalyzer, New}, TVerifier As {IVerifier, New}) diff --git a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing.MSTest/CodeFixVerifier.vb b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing.MSTest/CodeFixVerifier.vb index fb2962f7dd..4c56af9831 100644 --- a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing.MSTest/CodeFixVerifier.vb +++ b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing.MSTest/CodeFixVerifier.vb @@ -1,4 +1,6 @@ -Imports Microsoft.CodeAnalysis.CodeFixes +' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +Imports Microsoft.CodeAnalysis.CodeFixes Imports Microsoft.CodeAnalysis.Diagnostics Module CodeFixVerifier diff --git a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing.MSTest/CodeFixVerifier`2.vb b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing.MSTest/CodeFixVerifier`2.vb index 63eab6d40f..b2d2c0f887 100644 --- a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing.MSTest/CodeFixVerifier`2.vb +++ b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing.MSTest/CodeFixVerifier`2.vb @@ -1,4 +1,6 @@ -Imports Microsoft.CodeAnalysis.CodeFixes +' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +Imports Microsoft.CodeAnalysis.CodeFixes Imports Microsoft.CodeAnalysis.Diagnostics Imports Microsoft.CodeAnalysis.Testing.Verifiers Imports Microsoft.CodeAnalysis.VisualBasic.Testing diff --git a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing.NUnit/CodeFixVerifier.vb b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing.NUnit/CodeFixVerifier.vb index fb2962f7dd..4c56af9831 100644 --- a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing.NUnit/CodeFixVerifier.vb +++ b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing.NUnit/CodeFixVerifier.vb @@ -1,4 +1,6 @@ -Imports Microsoft.CodeAnalysis.CodeFixes +' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +Imports Microsoft.CodeAnalysis.CodeFixes Imports Microsoft.CodeAnalysis.Diagnostics Module CodeFixVerifier diff --git a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing.NUnit/CodeFixVerifier`2.vb b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing.NUnit/CodeFixVerifier`2.vb index 664b5c2885..5564409bd8 100644 --- a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing.NUnit/CodeFixVerifier`2.vb +++ b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing.NUnit/CodeFixVerifier`2.vb @@ -1,4 +1,6 @@ -Imports Microsoft.CodeAnalysis.CodeFixes +' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +Imports Microsoft.CodeAnalysis.CodeFixes Imports Microsoft.CodeAnalysis.Diagnostics Imports Microsoft.CodeAnalysis.Testing.Verifiers Imports Microsoft.CodeAnalysis.VisualBasic.Testing diff --git a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing.XUnit/CodeFixVerifier.vb b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing.XUnit/CodeFixVerifier.vb index fb2962f7dd..4c56af9831 100644 --- a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing.XUnit/CodeFixVerifier.vb +++ b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing.XUnit/CodeFixVerifier.vb @@ -1,4 +1,6 @@ -Imports Microsoft.CodeAnalysis.CodeFixes +' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +Imports Microsoft.CodeAnalysis.CodeFixes Imports Microsoft.CodeAnalysis.Diagnostics Module CodeFixVerifier diff --git a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing.XUnit/CodeFixVerifier`2.vb b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing.XUnit/CodeFixVerifier`2.vb index d63c5de89f..05cffd871e 100644 --- a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing.XUnit/CodeFixVerifier`2.vb +++ b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing.XUnit/CodeFixVerifier`2.vb @@ -1,4 +1,6 @@ -Imports Microsoft.CodeAnalysis.CodeFixes +' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +Imports Microsoft.CodeAnalysis.CodeFixes Imports Microsoft.CodeAnalysis.Diagnostics Imports Microsoft.CodeAnalysis.Testing.Verifiers Imports Microsoft.CodeAnalysis.VisualBasic.Testing diff --git a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing/VisualBasicCodeFixTest.vb b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing/VisualBasicCodeFixTest.vb index bdc734bae6..d88351ebe4 100644 --- a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing/VisualBasicCodeFixTest.vb +++ b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing/VisualBasicCodeFixTest.vb @@ -1,4 +1,6 @@ -Imports Microsoft.CodeAnalysis.CodeFixes +' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +Imports Microsoft.CodeAnalysis.CodeFixes Imports Microsoft.CodeAnalysis.Diagnostics Imports Microsoft.CodeAnalysis.Testing diff --git a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing/VisualBasicCodefixVerifier.vb b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing/VisualBasicCodefixVerifier.vb index 8b43f39e5b..d170433a03 100644 --- a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing/VisualBasicCodefixVerifier.vb +++ b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing/VisualBasicCodefixVerifier.vb @@ -1,4 +1,6 @@ -Imports Microsoft.CodeAnalysis.CodeFixes +' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +Imports Microsoft.CodeAnalysis.CodeFixes Imports Microsoft.CodeAnalysis.Diagnostics Imports Microsoft.CodeAnalysis.Testing From 55853464ab3fc1a8c452f0e8d2bb75b795597a4b Mon Sep 17 00:00:00 2001 From: Sam Harwell Date: Tue, 28 May 2019 11:15:11 -0500 Subject: [PATCH 2/3] Remove unnecessary import directives --- .../AnalyzerVerifier`1.vb | 1 - .../AnalyzerVerifier`1.vb | 1 - .../AnalyzerVerifier`1.vb | 1 - .../CodeFixVerifier`2.vb | 1 - .../CodeFixVerifier`2.vb | 1 - .../CodeFixVerifier`2.vb | 1 - 6 files changed, 6 deletions(-) diff --git a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing.MSTest/AnalyzerVerifier`1.vb b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing.MSTest/AnalyzerVerifier`1.vb index 16bec5a4b5..30f19ca2db 100644 --- a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing.MSTest/AnalyzerVerifier`1.vb +++ b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing.MSTest/AnalyzerVerifier`1.vb @@ -2,7 +2,6 @@ Imports Microsoft.CodeAnalysis.Diagnostics Imports Microsoft.CodeAnalysis.Testing.Verifiers -Imports Microsoft.CodeAnalysis.VisualBasic.Testing Public Class AnalyzerVerifier(Of TAnalyzer As {DiagnosticAnalyzer, New}) Inherits VisualBasicAnalyzerVerifier(Of TAnalyzer, MSTestVerifier) diff --git a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing.NUnit/AnalyzerVerifier`1.vb b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing.NUnit/AnalyzerVerifier`1.vb index e1c1704c60..b2bc60934c 100644 --- a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing.NUnit/AnalyzerVerifier`1.vb +++ b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing.NUnit/AnalyzerVerifier`1.vb @@ -2,7 +2,6 @@ Imports Microsoft.CodeAnalysis.Diagnostics Imports Microsoft.CodeAnalysis.Testing.Verifiers -Imports Microsoft.CodeAnalysis.VisualBasic.Testing Public Class AnalyzerVerifier(Of TAnalyzer As {DiagnosticAnalyzer, New}) Inherits VisualBasicAnalyzerVerifier(Of TAnalyzer, NUnitVerifier) diff --git a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing.XUnit/AnalyzerVerifier`1.vb b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing.XUnit/AnalyzerVerifier`1.vb index 481d3cfc27..b0d6eefdd0 100644 --- a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing.XUnit/AnalyzerVerifier`1.vb +++ b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing.XUnit/AnalyzerVerifier`1.vb @@ -2,7 +2,6 @@ Imports Microsoft.CodeAnalysis.Diagnostics Imports Microsoft.CodeAnalysis.Testing.Verifiers -Imports Microsoft.CodeAnalysis.VisualBasic.Testing Public Class AnalyzerVerifier(Of TAnalyzer As {DiagnosticAnalyzer, New}) Inherits VisualBasicAnalyzerVerifier(Of TAnalyzer, XUnitVerifier) diff --git a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing.MSTest/CodeFixVerifier`2.vb b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing.MSTest/CodeFixVerifier`2.vb index b2d2c0f887..a3de627237 100644 --- a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing.MSTest/CodeFixVerifier`2.vb +++ b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing.MSTest/CodeFixVerifier`2.vb @@ -3,7 +3,6 @@ Imports Microsoft.CodeAnalysis.CodeFixes Imports Microsoft.CodeAnalysis.Diagnostics Imports Microsoft.CodeAnalysis.Testing.Verifiers -Imports Microsoft.CodeAnalysis.VisualBasic.Testing Public Class CodeFixVerifier(Of TAnalyzer As {DiagnosticAnalyzer, New}, TCodeFix As {CodeFixProvider, New}) Inherits VisualBasicCodeFixVerifier(Of TAnalyzer, TCodeFix, MSTestVerifier) diff --git a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing.NUnit/CodeFixVerifier`2.vb b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing.NUnit/CodeFixVerifier`2.vb index 5564409bd8..ba85c684ff 100644 --- a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing.NUnit/CodeFixVerifier`2.vb +++ b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing.NUnit/CodeFixVerifier`2.vb @@ -3,7 +3,6 @@ Imports Microsoft.CodeAnalysis.CodeFixes Imports Microsoft.CodeAnalysis.Diagnostics Imports Microsoft.CodeAnalysis.Testing.Verifiers -Imports Microsoft.CodeAnalysis.VisualBasic.Testing Public Class CodeFixVerifier(Of TAnalyzer As {DiagnosticAnalyzer, New}, TCodeFix As {CodeFixProvider, New}) Inherits VisualBasicCodeFixVerifier(Of TAnalyzer, TCodeFix, NUnitVerifier) diff --git a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing.XUnit/CodeFixVerifier`2.vb b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing.XUnit/CodeFixVerifier`2.vb index 05cffd871e..ea978fd675 100644 --- a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing.XUnit/CodeFixVerifier`2.vb +++ b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing.XUnit/CodeFixVerifier`2.vb @@ -3,7 +3,6 @@ Imports Microsoft.CodeAnalysis.CodeFixes Imports Microsoft.CodeAnalysis.Diagnostics Imports Microsoft.CodeAnalysis.Testing.Verifiers -Imports Microsoft.CodeAnalysis.VisualBasic.Testing Public Class CodeFixVerifier(Of TAnalyzer As {DiagnosticAnalyzer, New}, TCodeFix As {CodeFixProvider, New}) Inherits VisualBasicCodeFixVerifier(Of TAnalyzer, TCodeFix, XUnitVerifier) From 406ef986b12bb148a3acf9bd358808bc1fdeb463 Mon Sep 17 00:00:00 2001 From: Sam Harwell Date: Tue, 28 May 2019 11:19:42 -0500 Subject: [PATCH 3/3] Initial support for project references --- .../AnalyzerTest`1.cs | 52 +++++++++++++------ .../ProjectState.cs | 33 ++++++++++++ .../PublicAPI.Unshipped.txt | 14 +++-- .../SolutionState.cs | 14 +++++ .../CSharpProjectState.cs | 16 ++++++ .../PublicAPI.Unshipped.txt | 3 ++ .../CodeFixTest`1.cs | 8 +-- .../PublicAPI.Unshipped.txt | 3 ++ .../VisualBasicProjectState.vb | 17 ++++++ 9 files changed, 137 insertions(+), 23 deletions(-) create mode 100644 src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.Analyzer.Testing/ProjectState.cs create mode 100644 src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.CSharp.Analyzer.Testing/CSharpProjectState.cs create mode 100644 src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing/VisualBasicProjectState.vb diff --git a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.Analyzer.Testing/AnalyzerTest`1.cs b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.Analyzer.Testing/AnalyzerTest`1.cs index 552ca79f3c..8f99312278 100644 --- a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.Analyzer.Testing/AnalyzerTest`1.cs +++ b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.Analyzer.Testing/AnalyzerTest`1.cs @@ -136,7 +136,7 @@ public virtual async Task RunAsync(CancellationToken cancellationToken = default var fixableDiagnostics = ImmutableArray.Empty; var testState = TestState.WithInheritedValuesApplied(null, fixableDiagnostics).WithProcessedMarkup(MarkupOptions, defaultDiagnostic, supportedDiagnostics, fixableDiagnostics, DefaultFilePath); - await VerifyDiagnosticsAsync(testState.Sources.ToArray(), testState.AdditionalFiles.ToArray(), testState.AdditionalReferences.ToArray(), testState.ExpectedDiagnostics.ToArray(), Verify, cancellationToken).ConfigureAwait(false); + await VerifyDiagnosticsAsync(testState.Sources.ToArray(), testState.AdditionalFiles.ToArray(), testState.AdditionalProjects.ToArray(), testState.AdditionalReferences.ToArray(), testState.ExpectedDiagnostics.ToArray(), Verify, cancellationToken).ConfigureAwait(false); } /// @@ -182,21 +182,22 @@ protected internal virtual DiagnosticDescriptor GetDefaultDiagnostic(DiagnosticA /// /// An array of strings to create source documents from to run the analyzers on. /// Additional documents to include in the project. + /// Additional projects to include in the solution. /// Additional metadata references to include in the project. /// A collection of s that should appear after the analyzer /// is run on the sources. /// The verifier to use for test assertions. /// The that the task will observe. /// A representing the asynchronous operation. - protected async Task VerifyDiagnosticsAsync((string filename, SourceText content)[] sources, (string filename, SourceText content)[] additionalFiles, MetadataReference[] additionalMetadataReferences, DiagnosticResult[] expected, IVerifier verifier, CancellationToken cancellationToken) + protected async Task VerifyDiagnosticsAsync((string filename, SourceText content)[] sources, (string filename, SourceText content)[] additionalFiles, ProjectState[] additionalProjects, MetadataReference[] additionalMetadataReferences, DiagnosticResult[] expected, IVerifier verifier, CancellationToken cancellationToken) { var analyzers = GetDiagnosticAnalyzers().ToImmutableArray(); - VerifyDiagnosticResults(await GetSortedDiagnosticsAsync(sources, additionalFiles, additionalMetadataReferences, analyzers, verifier, cancellationToken).ConfigureAwait(false), analyzers, expected, verifier); - await VerifyGeneratedCodeDiagnosticsAsync(analyzers, sources, additionalFiles, additionalMetadataReferences, expected, verifier, cancellationToken).ConfigureAwait(false); - await VerifySuppressionDiagnosticsAsync(analyzers, sources, additionalFiles, additionalMetadataReferences, expected, verifier, cancellationToken).ConfigureAwait(false); + VerifyDiagnosticResults(await GetSortedDiagnosticsAsync(sources, additionalFiles, additionalProjects, additionalMetadataReferences, analyzers, verifier, cancellationToken).ConfigureAwait(false), analyzers, expected, verifier); + await VerifyGeneratedCodeDiagnosticsAsync(analyzers, sources, additionalFiles, additionalProjects, additionalMetadataReferences, expected, verifier, cancellationToken).ConfigureAwait(false); + await VerifySuppressionDiagnosticsAsync(analyzers, sources, additionalFiles, additionalProjects, additionalMetadataReferences, expected, verifier, cancellationToken).ConfigureAwait(false); } - private async Task VerifyGeneratedCodeDiagnosticsAsync(ImmutableArray analyzers, (string filename, SourceText content)[] sources, (string filename, SourceText content)[] additionalFiles, MetadataReference[] additionalMetadataReferences, DiagnosticResult[] expected, IVerifier verifier, CancellationToken cancellationToken) + private async Task VerifyGeneratedCodeDiagnosticsAsync(ImmutableArray analyzers, (string filename, SourceText content)[] sources, (string filename, SourceText content)[] additionalFiles, ProjectState[] additionalProjects, MetadataReference[] additionalMetadataReferences, DiagnosticResult[] expected, IVerifier verifier, CancellationToken cancellationToken) { if (TestBehaviors.HasFlag(TestBehaviors.SkipGeneratedCodeCheck)) { @@ -218,10 +219,10 @@ private async Task VerifyGeneratedCodeDiagnosticsAsync(ImmutableArray code"); var commentPrefix = Language == LanguageNames.CSharp ? "//" : "'"; - VerifyDiagnosticResults(await GetSortedDiagnosticsAsync(sources.Select(x => (x.filename, x.content.Replace(new TextSpan(0, 0), $" {commentPrefix} \r\n"))).ToArray(), additionalFiles, additionalMetadataReferences, analyzers, generatedCodeVerifier, cancellationToken).ConfigureAwait(false), analyzers, expectedResults, generatedCodeVerifier); + VerifyDiagnosticResults(await GetSortedDiagnosticsAsync(sources.Select(x => (x.filename, x.content.Replace(new TextSpan(0, 0), $" {commentPrefix} \r\n"))).ToArray(), additionalFiles, additionalProjects, additionalMetadataReferences, analyzers, generatedCodeVerifier, cancellationToken).ConfigureAwait(false), analyzers, expectedResults, generatedCodeVerifier); } - private async Task VerifySuppressionDiagnosticsAsync(ImmutableArray analyzers, (string filename, SourceText content)[] sources, (string filename, SourceText content)[] additionalFiles, MetadataReference[] additionalMetadataReferences, DiagnosticResult[] expected, IVerifier verifier, CancellationToken cancellationToken) + private async Task VerifySuppressionDiagnosticsAsync(ImmutableArray analyzers, (string filename, SourceText content)[] sources, (string filename, SourceText content)[] additionalFiles, ProjectState[] additionalProjects, MetadataReference[] additionalMetadataReferences, DiagnosticResult[] expected, IVerifier verifier, CancellationToken cancellationToken) { if (TestBehaviors.HasFlag(TestBehaviors.SkipSuppressionCheck)) { @@ -245,7 +246,7 @@ private async Task VerifySuppressionDiagnosticsAsync(ImmutableArray IsSubjectToExclusion(x, sources)).Select(x => x.Id).Distinct(); var suppression = prefix + " " + string.Join(", ", suppressedDiagnostics); - VerifyDiagnosticResults(await GetSortedDiagnosticsAsync(sources.Select(x => (x.filename, x.content.Replace(new TextSpan(0, 0), $"{suppression}\r\n"))).ToArray(), additionalFiles, additionalMetadataReferences, analyzers, suppressionVerifier, cancellationToken).ConfigureAwait(false), analyzers, expectedResults, suppressionVerifier); + VerifyDiagnosticResults(await GetSortedDiagnosticsAsync(sources.Select(x => (x.filename, x.content.Replace(new TextSpan(0, 0), $"{suppression}\r\n"))).ToArray(), additionalFiles, additionalProjects, additionalMetadataReferences, analyzers, suppressionVerifier, cancellationToken).ConfigureAwait(false), analyzers, expectedResults, suppressionVerifier); } /// @@ -476,15 +477,16 @@ private static bool IsInSourceFile(DiagnosticResult result, (string filename, So /// /// Classes in the form of strings. /// Additional documents to include in the project. + /// Additional projects to include in the solution. /// Additional metadata references to include in the project. /// The analyzers to be run on the sources. /// The verifier to use for test assertions. /// The that the task will observe. /// A collection of s that surfaced in the source code, sorted by /// . - private Task> GetSortedDiagnosticsAsync((string filename, SourceText content)[] sources, (string filename, SourceText content)[] additionalFiles, MetadataReference[] additionalMetadataReferences, ImmutableArray analyzers, IVerifier verifier, CancellationToken cancellationToken) + private Task> GetSortedDiagnosticsAsync((string filename, SourceText content)[] sources, (string filename, SourceText content)[] additionalFiles, ProjectState[] additionalProjects, MetadataReference[] additionalMetadataReferences, ImmutableArray analyzers, IVerifier verifier, CancellationToken cancellationToken) { - return GetSortedDiagnosticsAsync(GetSolution(sources, additionalFiles, additionalMetadataReferences, verifier), analyzers, CompilerDiagnostics, cancellationToken); + return GetSortedDiagnosticsAsync(GetSolution(sources, additionalFiles, additionalProjects, additionalMetadataReferences, verifier), analyzers, CompilerDiagnostics, cancellationToken); } /// @@ -553,14 +555,15 @@ protected virtual AnalyzerOptions GetAnalyzerOptions(Project project) /// /// Classes in the form of strings. /// Additional documents to include in the project. + /// Additional projects to include in the solution. /// Additional metadata references to include in the project. /// The verifier to use for test assertions. /// A solution containing a project with the specified sources and additional files. - private Solution GetSolution((string filename, SourceText content)[] sources, (string filename, SourceText content)[] additionalFiles, MetadataReference[] additionalMetadataReferences, IVerifier verifier) + private Solution GetSolution((string filename, SourceText content)[] sources, (string filename, SourceText content)[] additionalFiles, ProjectState[] additionalProjects, MetadataReference[] additionalMetadataReferences, IVerifier verifier) { verifier.LanguageIsSupported(Language); - var project = CreateProject(sources, additionalFiles, additionalMetadataReferences, Language); + var project = CreateProject(sources, additionalFiles, additionalProjects, additionalMetadataReferences, Language); var documents = project.Documents.ToArray(); verifier.Equal(sources.Length, documents.Length, "Amount of sources did not match amount of Documents created"); @@ -577,15 +580,16 @@ private Solution GetSolution((string filename, SourceText content)[] sources, (s /// /// Classes in the form of strings. /// Additional documents to include in the project. + /// Additional projects to include in the solution. /// Additional metadata references to include in the project. /// The language the source classes are in. Values may be taken from the /// class. /// A created out of the s created from the source /// strings. - protected Project CreateProject((string filename, SourceText content)[] sources, (string filename, SourceText content)[] additionalFiles, MetadataReference[] additionalMetadataReferences, string language) + protected Project CreateProject((string filename, SourceText content)[] sources, (string filename, SourceText content)[] additionalFiles, ProjectState[] additionalProjects, MetadataReference[] additionalMetadataReferences, string language) { language = language ?? language; - var project = CreateProjectImpl(sources, additionalFiles, additionalMetadataReferences, language); + var project = CreateProjectImpl(sources, additionalFiles, additionalProjects, additionalMetadataReferences, language); return ApplyCompilationOptions(project); } @@ -594,12 +598,13 @@ protected Project CreateProject((string filename, SourceText content)[] sources, /// /// Classes in the form of strings. /// Additional documents to include in the project. + /// Additional projects to include in the solution. /// Additional metadata references to include in the project. /// The language the source classes are in. Values may be taken from the /// class. /// A created out of the s created from the source /// strings. - protected virtual Project CreateProjectImpl((string filename, SourceText content)[] sources, (string filename, SourceText content)[] additionalFiles, MetadataReference[] additionalMetadataReferences, string language) + protected virtual Project CreateProjectImpl((string filename, SourceText content)[] sources, (string filename, SourceText content)[] additionalFiles, ProjectState[] additionalProjects, MetadataReference[] additionalMetadataReferences, string language) { var fileNamePrefix = DefaultFilePathPrefix; var fileExt = DefaultFileExt; @@ -607,6 +612,21 @@ protected virtual Project CreateProjectImpl((string filename, SourceText content var projectId = ProjectId.CreateNewId(debugName: DefaultTestProjectName); var solution = CreateSolution(projectId, language); + foreach (var projectState in additionalProjects) + { + var additionalProjectId = ProjectId.CreateNewId(debugName: projectState.Name); + solution = solution.AddProject(additionalProjectId, projectState.Name, projectState.AssemblyName, projectState.Language); + + for (var i = 0; i < projectState.Sources.Count; i++) + { + (var newFileName, var source) = sources[i]; + var documentId = DocumentId.CreateNewId(additionalProjectId, debugName: newFileName); + solution = solution.AddDocument(documentId, newFileName, source); + } + + solution = solution.AddProjectReference(projectId, new ProjectReference(additionalProjectId)); + } + solution = solution.AddMetadataReferences(projectId, additionalMetadataReferences); for (var i = 0; i < sources.Length; i++) diff --git a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.Analyzer.Testing/ProjectState.cs b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.Analyzer.Testing/ProjectState.cs new file mode 100644 index 0000000000..34998fe131 --- /dev/null +++ b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.Analyzer.Testing/ProjectState.cs @@ -0,0 +1,33 @@ +// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +namespace Microsoft.CodeAnalysis.Testing +{ + public abstract class ProjectState + { + private readonly string _defaultPrefix; + private readonly string _defaultExtension; + + protected ProjectState(string name, string defaultPrefix, string defaultExtension) + { + Name = name; + _defaultPrefix = defaultPrefix; + _defaultExtension = defaultExtension; + + Sources = new SourceFileList(defaultPrefix, defaultExtension); + } + + public string Name { get; } + + public string AssemblyName => Name; + + public abstract string Language { get; } + + /// + /// Gets the set of source files for analyzer or code fix testing. Files may be added to this list using one of + /// the methods. + /// + public SourceFileList Sources { get; } + + public MetadataReferenceCollection AdditionalReferences { get; } = new MetadataReferenceCollection(); + } +} diff --git a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.Analyzer.Testing/PublicAPI.Unshipped.txt b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.Analyzer.Testing/PublicAPI.Unshipped.txt index ef74f6fcd1..4aca2792a5 100644 --- a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.Analyzer.Testing/PublicAPI.Unshipped.txt +++ b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.Analyzer.Testing/PublicAPI.Unshipped.txt @@ -2,7 +2,7 @@ Microsoft.CodeAnalysis.Testing.AnalyzerTest Microsoft.CodeAnalysis.Testing.AnalyzerTest.AnalyzerTest() -> void Microsoft.CodeAnalysis.Testing.AnalyzerTest.CompilerDiagnostics.get -> Microsoft.CodeAnalysis.Testing.CompilerDiagnostics Microsoft.CodeAnalysis.Testing.AnalyzerTest.CompilerDiagnostics.set -> void -Microsoft.CodeAnalysis.Testing.AnalyzerTest.CreateProject((string filename, Microsoft.CodeAnalysis.Text.SourceText content)[] sources, (string filename, Microsoft.CodeAnalysis.Text.SourceText content)[] additionalFiles, Microsoft.CodeAnalysis.MetadataReference[] additionalMetadataReferences, string language) -> Microsoft.CodeAnalysis.Project +Microsoft.CodeAnalysis.Testing.AnalyzerTest.CreateProject((string filename, Microsoft.CodeAnalysis.Text.SourceText content)[] sources, (string filename, Microsoft.CodeAnalysis.Text.SourceText content)[] additionalFiles, Microsoft.CodeAnalysis.Testing.ProjectState[] additionalProjects, Microsoft.CodeAnalysis.MetadataReference[] additionalMetadataReferences, string language) -> Microsoft.CodeAnalysis.Project Microsoft.CodeAnalysis.Testing.AnalyzerTest.DisabledDiagnostics.get -> System.Collections.Generic.List Microsoft.CodeAnalysis.Testing.AnalyzerTest.ExpectedDiagnostics.get -> System.Collections.Generic.List Microsoft.CodeAnalysis.Testing.AnalyzerTest.GetSortedDiagnosticsAsync(Microsoft.CodeAnalysis.Solution solution, System.Collections.Immutable.ImmutableArray analyzers, Microsoft.CodeAnalysis.Testing.CompilerDiagnostics compilerDiagnostics, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task> @@ -14,7 +14,7 @@ Microsoft.CodeAnalysis.Testing.AnalyzerTest.TestBehaviors.get -> Micr Microsoft.CodeAnalysis.Testing.AnalyzerTest.TestBehaviors.set -> void Microsoft.CodeAnalysis.Testing.AnalyzerTest.TestCode.set -> void Microsoft.CodeAnalysis.Testing.AnalyzerTest.TestState.get -> Microsoft.CodeAnalysis.Testing.SolutionState -Microsoft.CodeAnalysis.Testing.AnalyzerTest.VerifyDiagnosticsAsync((string filename, Microsoft.CodeAnalysis.Text.SourceText content)[] sources, (string filename, Microsoft.CodeAnalysis.Text.SourceText content)[] additionalFiles, Microsoft.CodeAnalysis.MetadataReference[] additionalMetadataReferences, Microsoft.CodeAnalysis.Testing.DiagnosticResult[] expected, Microsoft.CodeAnalysis.Testing.IVerifier verifier, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +Microsoft.CodeAnalysis.Testing.AnalyzerTest.VerifyDiagnosticsAsync((string filename, Microsoft.CodeAnalysis.Text.SourceText content)[] sources, (string filename, Microsoft.CodeAnalysis.Text.SourceText content)[] additionalFiles, Microsoft.CodeAnalysis.Testing.ProjectState[] additionalProjects, Microsoft.CodeAnalysis.MetadataReference[] additionalMetadataReferences, Microsoft.CodeAnalysis.Testing.DiagnosticResult[] expected, Microsoft.CodeAnalysis.Testing.IVerifier verifier, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task Microsoft.CodeAnalysis.Testing.AnalyzerTest.XmlReferences.get -> System.Collections.Generic.Dictionary Microsoft.CodeAnalysis.Testing.AnalyzerVerifier Microsoft.CodeAnalysis.Testing.AnalyzerVerifier.AnalyzerVerifier() -> void @@ -88,9 +88,16 @@ Microsoft.CodeAnalysis.Testing.MetadataReferenceCollection.Add(System.Reflection Microsoft.CodeAnalysis.Testing.MetadataReferenceCollection.Add(string path) -> void Microsoft.CodeAnalysis.Testing.MetadataReferenceCollection.MetadataReferenceCollection() -> void Microsoft.CodeAnalysis.Testing.MetadataReferences +Microsoft.CodeAnalysis.Testing.ProjectState +Microsoft.CodeAnalysis.Testing.ProjectState.AdditionalReferences.get -> Microsoft.CodeAnalysis.Testing.MetadataReferenceCollection +Microsoft.CodeAnalysis.Testing.ProjectState.AssemblyName.get -> string +Microsoft.CodeAnalysis.Testing.ProjectState.Name.get -> string +Microsoft.CodeAnalysis.Testing.ProjectState.ProjectState(string name, string defaultPrefix, string defaultExtension) -> void +Microsoft.CodeAnalysis.Testing.ProjectState.Sources.get -> Microsoft.CodeAnalysis.Testing.SourceFileList Microsoft.CodeAnalysis.Testing.SolutionState Microsoft.CodeAnalysis.Testing.SolutionState.AdditionalFiles.get -> Microsoft.CodeAnalysis.Testing.SourceFileCollection Microsoft.CodeAnalysis.Testing.SolutionState.AdditionalFilesFactories.get -> System.Collections.Generic.List>> +Microsoft.CodeAnalysis.Testing.SolutionState.AdditionalProjects.get -> System.Collections.Generic.List Microsoft.CodeAnalysis.Testing.SolutionState.AdditionalReferences.get -> Microsoft.CodeAnalysis.Testing.MetadataReferenceCollection Microsoft.CodeAnalysis.Testing.SolutionState.ExpectedDiagnostics.get -> System.Collections.Generic.List Microsoft.CodeAnalysis.Testing.SolutionState.InheritanceMode.get -> Microsoft.CodeAnalysis.Testing.StateInheritanceMode? @@ -121,6 +128,7 @@ abstract Microsoft.CodeAnalysis.Testing.AnalyzerTest.CreateCompilatio abstract Microsoft.CodeAnalysis.Testing.AnalyzerTest.DefaultFileExt.get -> string abstract Microsoft.CodeAnalysis.Testing.AnalyzerTest.GetDiagnosticAnalyzers() -> System.Collections.Generic.IEnumerable abstract Microsoft.CodeAnalysis.Testing.AnalyzerTest.Language.get -> string +abstract Microsoft.CodeAnalysis.Testing.ProjectState.Language.get -> string override Microsoft.CodeAnalysis.Testing.DiagnosticResult.ToString() -> string override Microsoft.CodeAnalysis.Testing.EmptyDiagnosticAnalyzer.Initialize(Microsoft.CodeAnalysis.Diagnostics.AnalysisContext context) -> void override Microsoft.CodeAnalysis.Testing.EmptyDiagnosticAnalyzer.SupportedDiagnostics.get -> System.Collections.Immutable.ImmutableArray @@ -155,7 +163,7 @@ static readonly Microsoft.CodeAnalysis.Testing.MetadataReferences.SystemCollecti static readonly Microsoft.CodeAnalysis.Testing.MetadataReferences.SystemCoreReference -> Microsoft.CodeAnalysis.MetadataReference static readonly Microsoft.CodeAnalysis.Testing.MetadataReferences.SystemReference -> Microsoft.CodeAnalysis.MetadataReference virtual Microsoft.CodeAnalysis.Testing.AnalyzerTest.ApplyCompilationOptions(Microsoft.CodeAnalysis.Project project) -> Microsoft.CodeAnalysis.Project -virtual Microsoft.CodeAnalysis.Testing.AnalyzerTest.CreateProjectImpl((string filename, Microsoft.CodeAnalysis.Text.SourceText content)[] sources, (string filename, Microsoft.CodeAnalysis.Text.SourceText content)[] additionalFiles, Microsoft.CodeAnalysis.MetadataReference[] additionalMetadataReferences, string language) -> Microsoft.CodeAnalysis.Project +virtual Microsoft.CodeAnalysis.Testing.AnalyzerTest.CreateProjectImpl((string filename, Microsoft.CodeAnalysis.Text.SourceText content)[] sources, (string filename, Microsoft.CodeAnalysis.Text.SourceText content)[] additionalFiles, Microsoft.CodeAnalysis.Testing.ProjectState[] additionalProjects, Microsoft.CodeAnalysis.MetadataReference[] additionalMetadataReferences, string language) -> Microsoft.CodeAnalysis.Project virtual Microsoft.CodeAnalysis.Testing.AnalyzerTest.CreateSolution(Microsoft.CodeAnalysis.ProjectId projectId, string language) -> Microsoft.CodeAnalysis.Solution virtual Microsoft.CodeAnalysis.Testing.AnalyzerTest.CreateWorkspace() -> Microsoft.CodeAnalysis.AdhocWorkspace virtual Microsoft.CodeAnalysis.Testing.AnalyzerTest.DefaultFilePath.get -> string diff --git a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.Analyzer.Testing/SolutionState.cs b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.Analyzer.Testing/SolutionState.cs index 3b92dd2fc9..25138febe3 100644 --- a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.Analyzer.Testing/SolutionState.cs +++ b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.Analyzer.Testing/SolutionState.cs @@ -44,6 +44,13 @@ public SolutionState(string defaultPrefix, string defaultExtension) public List>> AdditionalFilesFactories { get; } = new List>>(); + /// + /// Gets a list of additional projects to include in the solution. A will be + /// added from the primary project to each of the additional projects provided here. Markup, additional files, + /// and diagnostics in additional projects are not yet supported. + /// + public List AdditionalProjects { get; } = new List(); + public MetadataReferenceCollection AdditionalReferences { get; } = new MetadataReferenceCollection(); /// @@ -142,6 +149,11 @@ public SolutionState WithInheritedValuesApplied(SolutionState baseState, Immutab result.AdditionalFiles.AddRange(baseState.AdditionalFiles); } + if (AdditionalProjects.Count == 0) + { + result.AdditionalProjects.AddRange(baseState.AdditionalProjects); + } + if (AdditionalReferences.Count == 0) { result.AdditionalReferences.AddRange(baseState.AdditionalReferences); @@ -164,6 +176,7 @@ public SolutionState WithInheritedValuesApplied(SolutionState baseState, Immutab result.InheritanceMode = StateInheritanceMode.Explicit; result.Sources.AddRange(Sources); result.AdditionalFiles.AddRange(AdditionalFiles); + result.AdditionalProjects.AddRange(AdditionalProjects); result.AdditionalReferences.AddRange(AdditionalReferences); result.ExpectedDiagnostics.AddRange(ExpectedDiagnostics); result.AdditionalFiles.AddRange(AdditionalFilesFactories.SelectMany(factory => factory())); @@ -260,6 +273,7 @@ public SolutionState WithProcessedMarkup(MarkupOptions markupOptions, Diagnostic result.InheritanceMode = StateInheritanceMode.Explicit; result.Sources.AddRange(testSources); result.AdditionalFiles.AddRange(additionalFiles); + result.AdditionalProjects.AddRange(AdditionalProjects); result.AdditionalReferences.AddRange(AdditionalReferences); result.ExpectedDiagnostics.AddRange(additionalExpected); return result; diff --git a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.CSharp.Analyzer.Testing/CSharpProjectState.cs b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.CSharp.Analyzer.Testing/CSharpProjectState.cs new file mode 100644 index 0000000000..3049140399 --- /dev/null +++ b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.CSharp.Analyzer.Testing/CSharpProjectState.cs @@ -0,0 +1,16 @@ +// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using Microsoft.CodeAnalysis.Testing; + +namespace Microsoft.CodeAnalysis.CSharp.Testing +{ + public class CSharpProjectState : ProjectState + { + public CSharpProjectState(string name) + : base(name, defaultPrefix: "Test", defaultExtension: "cs") + { + } + + public override string Language => LanguageNames.CSharp; + } +} diff --git a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.CSharp.Analyzer.Testing/PublicAPI.Unshipped.txt b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.CSharp.Analyzer.Testing/PublicAPI.Unshipped.txt index 69ac506e16..e07cdf16fe 100644 --- a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.CSharp.Analyzer.Testing/PublicAPI.Unshipped.txt +++ b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.CSharp.Analyzer.Testing/PublicAPI.Unshipped.txt @@ -2,7 +2,10 @@ Microsoft.CodeAnalysis.CSharp.Testing.CSharpAnalyzerTest Microsoft.CodeAnalysis.CSharp.Testing.CSharpAnalyzerTest.CSharpAnalyzerTest() -> void Microsoft.CodeAnalysis.CSharp.Testing.CSharpAnalyzerVerifier Microsoft.CodeAnalysis.CSharp.Testing.CSharpAnalyzerVerifier.CSharpAnalyzerVerifier() -> void +Microsoft.CodeAnalysis.CSharp.Testing.CSharpProjectState +Microsoft.CodeAnalysis.CSharp.Testing.CSharpProjectState.CSharpProjectState(string name) -> void override Microsoft.CodeAnalysis.CSharp.Testing.CSharpAnalyzerTest.CreateCompilationOptions() -> Microsoft.CodeAnalysis.CompilationOptions override Microsoft.CodeAnalysis.CSharp.Testing.CSharpAnalyzerTest.DefaultFileExt.get -> string override Microsoft.CodeAnalysis.CSharp.Testing.CSharpAnalyzerTest.GetDiagnosticAnalyzers() -> System.Collections.Generic.IEnumerable override Microsoft.CodeAnalysis.CSharp.Testing.CSharpAnalyzerTest.Language.get -> string +override Microsoft.CodeAnalysis.CSharp.Testing.CSharpProjectState.Language.get -> string diff --git a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.CodeFix.Testing/CodeFixTest`1.cs b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.CodeFix.Testing/CodeFixTest`1.cs index 211f4369f5..ad1e3429c4 100644 --- a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.CodeFix.Testing/CodeFixTest`1.cs +++ b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.CodeFix.Testing/CodeFixTest`1.cs @@ -186,14 +186,14 @@ public override async Task RunAsync(CancellationToken cancellationToken = defaul var fixedState = rawFixedState.WithProcessedMarkup(MarkupOptions, defaultDiagnostic, supportedDiagnostics, fixableDiagnostics, DefaultFilePath); var batchFixedState = rawBatchFixedState.WithProcessedMarkup(MarkupOptions, defaultDiagnostic, supportedDiagnostics, fixableDiagnostics, DefaultFilePath); - await VerifyDiagnosticsAsync(testState.Sources.ToArray(), testState.AdditionalFiles.ToArray(), testState.AdditionalReferences.ToArray(), testState.ExpectedDiagnostics.ToArray(), Verify.PushContext("Diagnostics of test state"), cancellationToken).ConfigureAwait(false); + await VerifyDiagnosticsAsync(testState.Sources.ToArray(), testState.AdditionalFiles.ToArray(), testState.AdditionalProjects.ToArray(), testState.AdditionalReferences.ToArray(), testState.ExpectedDiagnostics.ToArray(), Verify.PushContext("Diagnostics of test state"), cancellationToken).ConfigureAwait(false); if (CodeFixExpected()) { - await VerifyDiagnosticsAsync(fixedState.Sources.ToArray(), fixedState.AdditionalFiles.ToArray(), fixedState.AdditionalReferences.ToArray(), fixedState.ExpectedDiagnostics.ToArray(), Verify.PushContext("Diagnostics of fixed state"), cancellationToken).ConfigureAwait(false); + await VerifyDiagnosticsAsync(fixedState.Sources.ToArray(), fixedState.AdditionalFiles.ToArray(), fixedState.AdditionalProjects.ToArray(), fixedState.AdditionalReferences.ToArray(), fixedState.ExpectedDiagnostics.ToArray(), Verify.PushContext("Diagnostics of fixed state"), cancellationToken).ConfigureAwait(false); if (CodeFixExpected(BatchFixedState)) { - await VerifyDiagnosticsAsync(batchFixedState.Sources.ToArray(), batchFixedState.AdditionalFiles.ToArray(), batchFixedState.AdditionalReferences.ToArray(), batchFixedState.ExpectedDiagnostics.ToArray(), Verify.PushContext("Diagnostics of batch fixed state"), cancellationToken).ConfigureAwait(false); + await VerifyDiagnosticsAsync(batchFixedState.Sources.ToArray(), batchFixedState.AdditionalFiles.ToArray(), batchFixedState.AdditionalProjects.ToArray(), batchFixedState.AdditionalReferences.ToArray(), batchFixedState.ExpectedDiagnostics.ToArray(), Verify.PushContext("Diagnostics of batch fixed state"), cancellationToken).ConfigureAwait(false); } await VerifyFixAsync(testState, fixedState, batchFixedState, Verify, cancellationToken).ConfigureAwait(false); @@ -328,7 +328,7 @@ private async Task VerifyFixAsync( IVerifier verifier, CancellationToken cancellationToken) { - var project = CreateProject(oldState.Sources.ToArray(), oldState.AdditionalFiles.ToArray(), oldState.AdditionalReferences.ToArray(), language); + var project = CreateProject(oldState.Sources.ToArray(), oldState.AdditionalFiles.ToArray(), oldState.AdditionalProjects.ToArray(), oldState.AdditionalReferences.ToArray(), language); var compilerDiagnostics = await GetCompilerDiagnosticsAsync(project, cancellationToken).ConfigureAwait(false); project = await getFixedProject(analyzers, codeFixProviders, CodeFixIndex, CodeFixEquivalenceKey, project, numberOfIterations, verifier, cancellationToken).ConfigureAwait(false); diff --git a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing/PublicAPI.Unshipped.txt b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing/PublicAPI.Unshipped.txt index e7fac28040..b9f37ecc05 100644 --- a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing/PublicAPI.Unshipped.txt +++ b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing/PublicAPI.Unshipped.txt @@ -2,7 +2,10 @@ Microsoft.CodeAnalysis.VisualBasic.Testing.VisualBasicAnalyzerTest(Of TAnalyzer, Microsoft.CodeAnalysis.VisualBasic.Testing.VisualBasicAnalyzerTest(Of TAnalyzer, TVerifier).New() -> Void Microsoft.CodeAnalysis.VisualBasic.Testing.VisualBasicAnalyzerVerifier(Of TAnalyzer, TVerifier) Microsoft.CodeAnalysis.VisualBasic.Testing.VisualBasicAnalyzerVerifier(Of TAnalyzer, TVerifier).New() -> Void +Microsoft.CodeAnalysis.VisualBasic.Testing.VisualBasicProjectState +Microsoft.CodeAnalysis.VisualBasic.Testing.VisualBasicProjectState.New(name As String) -> Void Overrides Microsoft.CodeAnalysis.VisualBasic.Testing.VisualBasicAnalyzerTest(Of TAnalyzer, TVerifier).CreateCompilationOptions() -> Microsoft.CodeAnalysis.CompilationOptions Overrides Microsoft.CodeAnalysis.VisualBasic.Testing.VisualBasicAnalyzerTest(Of TAnalyzer, TVerifier).DefaultFileExt() -> String Overrides Microsoft.CodeAnalysis.VisualBasic.Testing.VisualBasicAnalyzerTest(Of TAnalyzer, TVerifier).GetDiagnosticAnalyzers() -> System.Collections.Generic.IEnumerable(Of Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer) Overrides Microsoft.CodeAnalysis.VisualBasic.Testing.VisualBasicAnalyzerTest(Of TAnalyzer, TVerifier).Language() -> String +Overrides Microsoft.CodeAnalysis.VisualBasic.Testing.VisualBasicProjectState.Language() -> String diff --git a/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing/VisualBasicProjectState.vb b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing/VisualBasicProjectState.vb new file mode 100644 index 0000000000..4bc69cf3fa --- /dev/null +++ b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing/VisualBasicProjectState.vb @@ -0,0 +1,17 @@ +' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +Imports Microsoft.CodeAnalysis.Testing + +Public Class VisualBasicProjectState + Inherits ProjectState + + Public Sub New(name As String) + MyBase.New(name, defaultPrefix:="Test", defaultExtension:="vb") + End Sub + + Public Overrides ReadOnly Property Language As String + Get + Return LanguageNames.VisualBasic + End Get + End Property +End Class