Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[mono] Tests failed: System.Reflection.Emit.Tests #2389

Open
MaximLipnin opened this issue Jan 30, 2020 · 5 comments
Open

[mono] Tests failed: System.Reflection.Emit.Tests #2389

MaximLipnin opened this issue Jan 30, 2020 · 5 comments
Assignees
Labels
area-VM-reflection-mono Reflection issues specific to MonoVM runtime-mono specific to the Mono runtime
Milestone

Comments

@MaximLipnin
Copy link
Contributor

This is a tracking issue for multiple failures in System.Reflection.Emit.Tests on Mono.
The following tests are disabled in CoreFX.issues.rsp file and will be moved into their respective xUnit tests in #2087.

  • System.Reflection.Emit.Tests.AssemblyTests.DefineDynamicModule (Mono behaves like coreclr but the test doesn't detect it)

  • System.Reflection.Emit.Tests.MethodBuilderEquals.Equals

  • System.Reflection.Emit.Tests.ConstructorBuilderToString.ToString_NullRequiredOptionalCustomModifiers

  • System.Reflection.Emit.Tests.ConstructorBuilderToString.ToString_NoRequiredOptionalCustomModifiers

  • System.Reflection.Emit.Tests.EnumBuilderMethodTests.DefineLiteral

  • System.Reflection.Emit.Tests.EnumBuilderMethodTests.DefineLiteral_InvalidLiteralValue_ThrowsArgumentException

  • System.Reflection.Emit.Tests.EnumBuilderMethodTests.SetCustomAttribute_ConstructorInfo_ByteArray

  • System.Reflection.Emit.Tests.EnumBuilderMethodTests.SetCustomAttribute_CustomAttributeBuilder

  • System.Reflection.Emit.Tests.EnumBuilderPropertyTests.Guid_TypeCreated

  • System.Reflection.Emit.Tests.FieldBuilderSetConstant.SetConstant_InvalidType_ThrowsArgumentException

  • System.Reflection.Emit.Tests.GenericTypeParameterBuilderSetInterfaceConstraints.SetInterfaceConstraints_OneCustomInterface

  • System.Reflection.Emit.Tests.GenericTypeParameterBuilderSetInterfaceConstraints.SetInterfaceConstraints_MultipleCustomInterfaces

  • System.Reflection.Emit.Tests.MethodBuilderDefineGenericParameters.DefineGenericParameters_SingleTypeParameter_SetImplementationFlagsCalled_ThrowsInvalidOperationException

  • System.Reflection.Emit.Tests.MethodBuilderDefineGenericParameters.DefineGenericParameters_TwoTypeParameters_SetImplementationFlagsCalled_ThrowsInvalidOperationException

  • System.Reflection.Emit.Tests.MethodBuilderDefineGenericParameters.DefineGenericParameters_SingleTypeParameter_AlreadyDefined_ThrowsInvalidOperationException

  • System.Reflection.Emit.Tests.MethodBuilderDefineGenericParameters.DefineGenericParameters_TwoTypeParameters_AlreadyDefined_ThrowsInvalidOperationException

  • System.Reflection.Emit.Tests.MethodBuilderGetILGenerator.GetILGenerator_Body_ThrowsInvalidOperationException

  • System.Reflection.Emit.Tests.MethodBuilderMakeGenericMethod.TestNotThrowsExceptionOnNull

  • System.Reflection.Emit.Tests.MethodBuilderMakeGenericMethod.TestNotThrowsExceptionOnEmptyArray1

  • System.Reflection.Emit.Tests.MethodBuilderMakeGenericMethod.TestNotThrowsExceptionOnEmptyArray2

  • System.Reflection.Emit.Tests.MethodBuilderReturnParameter.ReturnParameter_NoBody_ThrowsInvalidOperationException

  • System.Reflection.Emit.Tests.MethodBuilderSetParameters.SetParameters

  • System.Reflection.Emit.Tests.MethodBuilderSetParameters.SetParameters_NullParameter_ThrowsArgumentNullException

  • System.Reflection.Emit.Tests.MethodBuilderToString.ToString_AllFieldsSet

  • System.Reflection.Emit.Tests.MethodBuilderToString.ToString_NameAndAttributeSet

  • System.Reflection.Emit.Tests.MethodBuilderToString.ToString_NameAttributeAndSignatureSetSet

  • System.Reflection.Emit.Tests.MethodBuilderToString.ToString_NonGenericMethod

  • System.Reflection.Emit.Tests.MethodBuilderToString.ToString_GenericMethod

  • System.Reflection.Emit.Tests.ModuleBuilderDefineEnum.DefineEnum

  • System.Reflection.Emit.Tests.ModuleBuilderDefineEnum.DefineEnum_DynamicUnderlyingType_Works

  • System.Reflection.Emit.Tests.ModuleBuilderDefineEnum.DefineEnum_ByRefUnderlyingType_ThrowsCOMExceptionOnCreation

  • System.Reflection.Emit.Tests.ModuleBuilderDefineType.DefineType

  • System.Reflection.Emit.Tests.ModuleBuilderGetArrayMethod.GetArrayMethod_ValidArrayValues_VoidReturnType

  • System.Reflection.Emit.Tests.ModuleBuilderGetArrayMethod.GetArrayMethod_ValidArrayValues_ValueReturnType

  • System.Reflection.Emit.Tests.ModuleBuilderGetArrayMethod.GetArrayMethod_ValidArrayValues_ReferenceReturnType

  • System.Reflection.Emit.Tests.ModuleBuilderGetArrayMethod.GetArrayMethod_ValidArrayValues_ValueParameterType

  • System.Reflection.Emit.Tests.ModuleBuilderGetArrayMethod.GetArrayMethod_ValidArrayValues_ReferenceParameterType

  • System.Reflection.Emit.Tests.ModuleBuilderGetArrayMethod.GetArrayMethod_JaggedArray

  • System.Reflection.Emit.Tests.ModuleBuilderGetArrayMethod.GetArrayMethod_MultiDimensionalArray

  • System.Reflection.Emit.Tests.ModuleBuilderGetArrayMethod.GetArrayMethod_NullParameters

  • System.Reflection.Emit.Tests.ModuleBuilderGetArrayMethod.GetArrayMethod_ArrayClassNotArray_ThrowsArgumentException

  • System.Reflection.Emit.Tests.ModuleBuilderGetArrayMethod.GetArrayMethod_InvalidArgument_ThrowsArgumentException

  • System.Reflection.Emit.Tests.PropertyBuilderTest2.AddOtherMethod

  • System.Reflection.Emit.Tests.PropertyBuilderTest11.SetConstant

  • System.Reflection.Emit.Tests.PropertyBuilderTest11.SetConstant_TypeNotConstant_ThrowsArgumentException

  • System.Reflection.Emit.Tests.PropertyBuilderTest12.SetCustomAttribute_CustomAttributeBuilder_TypeNotCreated_ThrowsInvalidOperationException

  • System.Reflection.Emit.Tests.PropertyBuilderTest12.SetCustomAttribute_ConstructorInfo_ByteArray_TypeAlreadyCreated_ThrowsInvalidOperationException

  • System.Reflection.Emit.Tests.PropertyBuilderTest15.TestThrowsExceptionForCreateTypeCalled

  • System.Reflection.Emit.Tests.PropertyBuilderTest16.SetValue_ThrowsNotSupportedException

  • System.Reflection.Emit.Tests.TypeBuilderAddInterfaceImplementation.AddInterfaceImplementation_TypeNotInterface_ThrowsTypeLoadExceptionOnCreation

  • System.Reflection.Emit.Tests.TypeBuilderAddInterfaceImplementation.AddInterfaceImplementation_TypeDoesntImplementInterface_ThrowsTypeLoadExceptionOnCreation

  • System.Reflection.Emit.Tests.TypeBuilderAssemblyQualifiedName.AssemblyQualifiedName

  • System.Reflection.Emit.Tests.TypeBuilderCreateType.CreateType_BadAttributes

  • System.Reflection.Emit.Tests.TypeBuilderCreateTypeInfo.CreateType_InvalidTypeAttributes_Throws
      
    // Extra RTSpecialName attribute

  • System.Reflection.Emit.Tests.TypeBuilderDefineConstructor.DefineConstructor

  • System.Reflection.Emit.Tests.TypeBuilderDefineConstructor.DefineConstructor_NullRequiredAndOptionalCustomModifiers

  • System.Reflection.Emit.Tests.TypeBuilderDefineDefaultConstructor.DefineDefaultConstructor

  • System.Reflection.Emit.Tests.MethodBuilderDefineTypeInitializer.DefineTypeInitializer
      

  • System.Reflection.Emit.Tests.TypeBuilderDefineMethodTests.DefineMethod

  • System.Reflection.Emit.Tests.TypeBuilderDefineFieldTests.DefineField

  • System.Reflection.Emit.Tests.TypeBuilderDefineFieldTests.DefineField_InvalidFieldAttributes_ThrowsTypeLoadExceptionOnCreation

  • System.Reflection.Emit.Tests.TypeBuilderDefineFieldTests.DefineField_DynamicFieldTypeNotCreated_ThrowsTypeLoadException

  • System.Reflection.Emit.Tests.TypeBuilderDefineGenericParameters.DefineGenericParameters_AlreadyDefinedGenericParameters_ThrowsInvalidOperationException

  • System.Reflection.Emit.Tests.TypeBuilderDefineEvent.DefineEvent

  • System.Reflection.Emit.Tests.TypeBuilderDefineEvent.DefineProperty_InvalidUnicodeChars

  • System.Reflection.Emit.Tests.MethodBuilderDefineMethodOverride.DefineMethodOverride_NothingToOverride_ThrowsTypeLoadExceptionOnCreation

  • System.Reflection.Emit.Tests.MethodBuilderDefineMethodOverride.DefineMethodOverride_ClassDoesNotImplementOrInheritMethod_ThrowsTypeLoadExceptionOnCreation

  • System.Reflection.Emit.Tests.MethodBuilderDefineMethodOverride.DefineMethodOverride_BodyAndDeclarationTheSame_ThrowsTypeLoadExceptionOnCreation

  • System.Reflection.Emit.Tests.MethodBuilderDefineMethodOverride.DefineMethodOverride_CalledTwiceWithDifferentBodies_ThrowsTypeLoadExceptionOnCreation

  • System.Reflection.Emit.Tests.MethodBuilderDefineMethodOverride.DefineMethodOverride_BodyAndDeclarationHaveDifferentSignatures_ThrowsTypeLoadExceptionOnCreation

  • System.Reflection.Emit.Tests.TypeBuilderDefineNestedType.DefineNestedType

  • System.Reflection.Emit.Tests.TypeBuilderDefineNestedType.DefineNestedType_LongName_ThrowsArgumentException

  • System.Reflection.Emit.Tests.TypeBuilderDefineNestedType.DefineNestedType_InvalidAttributes_ThrowsArgumentException

  • System.Reflection.Emit.Tests.TypeBuilderDefineNestedType.DefineNestedType_InvalidParent_ThrowsArgumentException

  • System.Reflection.Emit.Tests.TypeBuilderDefineNestedType.DefineNestedType_InvalidInterfaceType_ThrowsTypeLoadExceptionOnCreation

  • System.Reflection.Emit.Tests.TypeBuilderDefineProperty.DefineProperty

  • System.Reflection.Emit.Tests.TypeBuilderDefineProperty.DefineProperty_OpenGenericReturnType_ThrowsBadImageFormatExceptionGettingCreatedPropertyType

  • System.Reflection.Emit.Tests.TypeBuilderDefineProperty.DefineProperty_NullParameterType_ThrowsArgumentNullException

  • System.Reflection.Emit.Tests.TypeBuilderDefineProperty.DefineProperty_OpenGenericParameterType_ThrowsBadImageFormatExceptionGettingCreatedPropertyType

  • System.Reflection.Emit.Tests.TypeBuilderDefineProperty.DefineProperty_DynamicPropertyTypeNotCreated_ThrowsTypeLoadException

  • System.Reflection.Emit.Tests.TypeBuilderDefineProperty.DefineProperty_DynamicParameterTypeNotCreated_ThrowsTypeLoadException

  • System.Reflection.Emit.Tests.TypeBuilderDefineProperty.DefineProperty_CalledMultipleTimes_Works

  • System.Reflection.Emit.Tests.TypeBuilderGetConstructor.GetConstructor_TypeNotTypeBuilder_ThrowsArgumentException

  • System.Reflection.Emit.Tests.TypeBuilderGetConstructor.GetConstructor_DeclaringTypeOfConstructorNotGenericTypeDefinitionOfType_ThrowsArgumentException

  • System.Reflection.Emit.Tests.TypeBuilderGetConstructor.GetConstructor_TypeNotGeneric_ThrowsArgumentException

  • System.Reflection.Emit.Tests.TypeBuilderGetField.GetField_TypeNotTypeBuilder_ThrowsArgumentException

  • System.Reflection.Emit.Tests.TypeBuilderGetField.GetField_DeclaringTypeOfFieldNotGenericTypeDefinitionOfType_ThrowsArgumentException

  • System.Reflection.Emit.Tests.TypeBuilderGetField.GetField_TypeNotGeneric_ThrowsArgumentException

  • System.Reflection.Emit.Tests.TypeBuilderGetMethod.GetMethod_TypeNotTypeBuilder_ThrowsArgumentException

  • System.Reflection.Emit.Tests.TypeBuilderGetMethod.GetMethod_MethodDefinitionNotInTypeGenericDefinition_ThrowsArgumentException

  • System.Reflection.Emit.Tests.TypeBuilderGetMethod.GetMethod_MethodNotGenericTypeDefinition_ThrowsArgumentException

  • System.Reflection.Emit.Tests.TypeBuilderGetMethod.GetMethod_TypeIsNotGeneric_ThrowsArgumentException

  • System.Reflection.Emit.Tests.TypeBuilderGUID.Guid_TypeCreated_NotEmpty

  • System.Reflection.Emit.Tests.AssemblyTests.DefineDynamicAssembly_AssemblyName_AssemblyBuilderAccess

  • System.Reflection.Emit.Tests.AssemblyTests.DefineDynamicAssembly_AssemblyName_AssemblyBuilderAccess_CustomAttributeBuilder

// need to reflect dotnet/coreclr#24937 changes

  • System.Reflection.Emit.Tests.MethodBuilderSetSignature.SetSignature_AllParametersNull
  • System.Reflection.Emit.Tests.MethodBuilderSetReturnType.SetReturnType_NullReturnType_ReturnsVoid
  • System.Reflection.Emit.Tests.MethodBuilderGetGenericArguments.GetGenericArguments_NonGenericMethod_ReturnsEmptyArray
  • System.Reflection.Emit.Tests.MethodBuilderSetSignature.SetSignature_NullReturnType_CustomModifiersSetToWrongTypes
@maryamariyan
Copy link
Member

maryamariyan commented Jan 30, 2020

cc: @marek-safar

alexischr added a commit to alexischr/runtime that referenced this issue Mar 28, 2020
Mono's System.Reflection.Emit creates type names that fail to be normalized or shaped in all ways that CoreCLR does.

Port CoreCLR's mixed-mode thread-unsafe implementation to thread-safe C#, and start using it in Mono for names in TypeBuilder.

Fixes issues with e.g. null-delimited type names being passed to different Reflection.Emit builders. Contributes to dotnet#2389.
SamMonoRT pushed a commit that referenced this issue Apr 3, 2020
…asses (#34212)

Follow CoreCLR's example and add the RTSpecialName type attribute to any class field with the 'value__' name when , used as the value store for enumeration class instances.

Second part of the "RTSpecialName fix" that started with #33389 - before, our behavior was to add the RTSpecialName immediately, as soon as the EnumBuilder was constructed.
Contributes to #2389
SamMonoRT pushed a commit to mono/mono that referenced this issue Apr 3, 2020
#19349)

…asses

Follow CoreCLR's example and add the RTSpecialName type attribute to any class field with the 'value__' name when , used as the value store for enumeration class instances.

Second part of the "RTSpecialName fix" that started with dotnet/runtime#33389 - before, our behavior was to add the RTSpecialName immediately, as soon as the EnumBuilder was constructed.
Contributes to dotnet/runtime#2389

Co-authored-by: alexischr <alexischr@users.noreply.github.com>
alexischr added a commit that referenced this issue Apr 3, 2020
* Port CoreCLR's TypeNameBuilder to C#, and use it in Mono too

Mono's System.Reflection.Emit creates type names that fail to be normalized or shaped in all ways that CoreCLR does.

Port CoreCLR's mixed-mode thread-unsafe implementation to thread-safe C#, and start using it in Mono for names in TypeBuilder.

Fixes issues with e.g. null-delimited type names being passed to different Reflection.Emit builders. Contributes to #2389.
@marek-safar marek-safar modified the milestones: 5.0.0, 6.0.0 Jun 24, 2020
@lambdageek lambdageek added area-VM-reflection-mono Reflection issues specific to MonoVM and removed area-Interop-mono labels Oct 26, 2020
@SamMonoRT SamMonoRT modified the milestones: 6.0.0, 7.0.0 Jun 10, 2021
@SamMonoRT
Copy link
Member

Low priority - Moving to Milestone 7.0.0

@fanyang-mono
Copy link
Member

Low priority - Moving to Milestone 8.0.0

@fanyang-mono fanyang-mono modified the milestones: 7.0.0, 8.0.0 Aug 1, 2022
@fanyang-mono
Copy link
Member

Moving to 9.0.0

@fanyang-mono
Copy link
Member

cc: @ivanpovazan

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-VM-reflection-mono Reflection issues specific to MonoVM runtime-mono specific to the Mono runtime
Projects
None yet
Development

No branches or pull requests

9 participants