зеркало из https://github.com/dotnet/sdk.git
Fix processing non-public classes and generic types in AssemblyScheduler.cs (#43377)
While looking at why https://github.com/dotnet/sdk/pull/43295 is having issues running on Helix I noticed that we were passing ``-class "Microsoft.WebTools.AspireServer.UnitTests.MockFactory`1"`` to the test script which caused a parse error because of the backtick. We shouldn't pass generic types since xunit can't do anything with it. Additionally I noticed that we were passing some nested types even though they were internal. This is because we didn't check the visibility correctly, we must use `TypeAttributes.VisibilityMask` to check for just the visibility (the same also applies to checking for class). See https://learn.microsoft.com/en-us/dotnet/api/system.reflection.typeattributes?view=net-8.0&redirectedfrom=MSDN#examples
This commit is contained in:
Родитель
3a04ae176f
Коммит
e6da8ca6de
|
@ -267,13 +267,14 @@ namespace Microsoft.DotNet.SdkCustomHelix.Sdk
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private static bool ShouldIncludeType(MetadataReader reader, TypeDefinition type, int testMethodCount)
|
private static bool ShouldIncludeType(MetadataReader reader, TypeDefinition type, int testMethodCount)
|
||||||
{
|
{
|
||||||
// xunit only handles public, non-abstract classes
|
// xunit only handles public, non-abstract, non-generic classes
|
||||||
var isPublic =
|
var isPublic =
|
||||||
TypeAttributes.Public == (type.Attributes & TypeAttributes.Public) ||
|
TypeAttributes.Public == (type.Attributes & TypeAttributes.VisibilityMask) ||
|
||||||
TypeAttributes.NestedPublic == (type.Attributes & TypeAttributes.NestedPublic);
|
TypeAttributes.NestedPublic == (type.Attributes & TypeAttributes.VisibilityMask);
|
||||||
if (!isPublic ||
|
if (!isPublic ||
|
||||||
TypeAttributes.Abstract == (type.Attributes & TypeAttributes.Abstract) ||
|
TypeAttributes.Abstract == (type.Attributes & TypeAttributes.Abstract) ||
|
||||||
TypeAttributes.Class != (type.Attributes & TypeAttributes.Class))
|
type.GetGenericParameters().Count != 0 ||
|
||||||
|
TypeAttributes.Class != (type.Attributes & TypeAttributes.ClassSemanticsMask))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче