File tree Expand file tree Collapse file tree 2 files changed +24
-1
lines changed
Fuzzing/DotnetFuzzing/Fuzzers
System.Reflection.Metadata/tests/Metadata Expand file tree Collapse file tree 2 files changed +24
-1
lines changed Original file line number Diff line number Diff line change @@ -61,9 +61,21 @@ private static void Test(Span<char> span)
6161 Assert . Equal ( fromTryParse . ToAssemblyName ( ) . CultureName , fromParse . ToAssemblyName ( ) . CultureName ) ;
6262
6363 Assert . Equal ( fromTryParse . Name , fromParse . ToAssemblyName ( ) . Name ) ;
64- Assert . Equal ( fromTryParse . CultureName , fromParse . ToAssemblyName ( ) . CultureName ) ;
6564 Assert . Equal ( fromTryParse . Version , fromParse . ToAssemblyName ( ) . Version ) ;
6665
66+ if ( fromTryParse . CultureName is not null )
67+ {
68+ // When converting to AssemblyName, the culture name is lower-cased
69+ // by the CultureInfo ctor that calls CultureData.GetCultureData
70+ // which lowers the name for caching and normalization purposes.
71+ Assert . Equal ( fromTryParse . CultureName . ToLower ( ) , fromParse . ToAssemblyName ( ) . CultureName ) ;
72+ }
73+ else
74+ {
75+ Assert . True ( fromParse . ToAssemblyName ( ) . CultureName is null ) ;
76+ }
77+
78+
6779 // AssemblyNameInfo.FullName can be different than AssemblyName.FullName:
6880 // AssemblyNameInfo includes public key, AssemblyName only its Token.
6981
Original file line number Diff line number Diff line change @@ -105,6 +105,17 @@ public void EmptyInputIsInvalid()
105105 Assert . Throws < ArgumentException > ( ( ) => AssemblyNameInfo . Parse ( "" . AsSpan ( ) ) ) ;
106106 }
107107
108+ [ Fact ]
109+ public void CultureNameGetLoweredByToAssemblyName ( )
110+ {
111+ AssemblyNameInfo assemblyNameInfo = AssemblyNameInfo . Parse ( "test,culture=aA" . AsSpan ( ) ) ;
112+ Assert . Equal ( "aA" , assemblyNameInfo . CultureName ) ;
113+ // When converting to AssemblyName, the culture name is lower-cased
114+ // by the CultureInfo ctor that calls CultureData.GetCultureData
115+ // which lowers the name for caching and normalization purposes.
116+ Assert . Equal ( "aa" , assemblyNameInfo . ToAssemblyName ( ) . CultureName ) ;
117+ }
118+
108119 static void Roundtrip ( AssemblyName source )
109120 {
110121 AssemblyNameInfo parsed = AssemblyNameInfo . Parse ( source . FullName . AsSpan ( ) ) ;
You can’t perform that action at this time.
0 commit comments