dotnet / linker

387 stars 126 forks source link

Fix analyzer test generation for non-public Main #3151

Closed sbomer closed 1 year ago

sbomer commented 1 year ago

In https://github.com/dotnet/runtime/pull/79011 @tlakollo discovered that the ILLink analyzer testcase generator was generating extra testcases in dotnet/runtime, compared to linker. It turned out that in dotnet/linker, testcases with non-public Main methods were not getting generated, because the generator was getting a reference assembly for Mono.Linker.Tests.Cases.dll (which doesn't contain the non-public entry point), whereas dotnet/runtime has ref assembly generation turned off (so the analyzer was correctly discovering testcases based on the implementation assembly).

This fixes the issue by turning off ref assembly generation for all projects except those specifically designed to be ref assemblies.

The CompilerGeneratedCodeSubstitutions is disabled as in https://github.com/dotnet/runtime/pull/79011.