Skip to content

Commit

Permalink
Test failure
Browse files Browse the repository at this point in the history
  • Loading branch information
jaredpar committed Jun 22, 2022
1 parent 49c3800 commit b93c5fc
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 4 deletions.
47 changes: 43 additions & 4 deletions src/Compilers/CSharp/Test/CommandLine/CommandLineTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9240,16 +9240,55 @@ public void SkipAnalyzersParse()
Assert.False(parsedArgs.SkipAnalyzers);
}

[Theory, CombinatorialData]
[Fact]
[WorkItem(40926, "https://github.com/dotnet/roslyn/issues/40926")]
public void SkipAnalyzersSemantics(bool skipAnalyzers)
public void SkipAnalyzersFlagFiltersAnalyzers()
{
var srcFile = Temp.CreateFile().WriteAllText(@"class C {}");
var srcDirectory = Path.GetDirectoryName(srcFile.Path);

var args = new List<string>() { "/reportanalyzer", "/t:library", "/a:" + Assembly.GetExecutingAssembly().Location, srcFile.Path };
var csc = CreateCSharpCompiler(
responseFile: null,
srcDirectory,
args.ToArray());

csc.ResolveAnalyzersFromArguments(
skipAnalyzers: false,
out _,
out var analyzers,
out var generators);
Assert.NotEmpty(analyzers);
Assert.NotEmpty(generators);

csc.ResolveAnalyzersFromArguments(
skipAnalyzers: true,
out _,
out analyzers,
out generators);
Assert.Empty(analyzers);
Assert.NotEmpty(generators);

CleanupAllGeneratedFiles(srcFile.Path);
}

[Theory]
[CombinatorialData]
[WorkItem(40926, "https://github.com/dotnet/roslyn/issues/40926")]
public void NoAnalyzersReportSemantics(bool skipAnalyzers)
{
var srcFile = Temp.CreateFile().WriteAllText(@"class C {}");
var srcDirectory = Path.GetDirectoryName(srcFile.Path);

var outWriter = new StringWriter(CultureInfo.InvariantCulture);
var skipAnalyzersFlag = "/skipanalyzers" + (skipAnalyzers ? "+" : "-");
var csc = CreateCSharpCompiler(null, srcDirectory, new[] { skipAnalyzersFlag, "/reportanalyzer", "/t:library", "/a:" + Assembly.GetExecutingAssembly().Location, srcFile.Path });
var analyzers = skipAnalyzers
? ImmutableArray<DiagnosticAnalyzer>.Empty
: ImmutableArray.Create<DiagnosticAnalyzer>(new HiddenDiagnosticAnalyzer(), new WarningDiagnosticAnalyzer());
var csc = CreateCSharpCompiler(
responseFile: null,
srcDirectory,
new[] { "/reportanalyzer", "/t:library", srcFile.Path },
analyzers: analyzers);
var exitCode = csc.Run(outWriter);
Assert.Equal(0, exitCode);
var output = outWriter.ToString();
Expand Down
10 changes: 10 additions & 0 deletions src/Compilers/Test/Utilities/CSharp/MockCSharpCompiler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,16 @@ protected override void ResolveAnalyzersFromArguments(
}
}

public void ResolveAnalyzersFromArguments(
bool skipAnalyzers,
out List<DiagnosticInfo> diagnostics,
out ImmutableArray<DiagnosticAnalyzer> analyzers,
out ImmutableArray<ISourceGenerator> generators)
{
diagnostics = new List<DiagnosticInfo>();
ResolveAnalyzersFromArguments(diagnostics, this.MessageProvider, skipAnalyzers, out analyzers, out generators);
}

public Compilation CreateCompilation(
TextWriter consoleOutput,
TouchedFileLogger touchedFilesLogger,
Expand Down

0 comments on commit b93c5fc

Please sign in to comment.