diff options
Diffstat (limited to 'src/coreclr/tests/src/Loader/binding/assemblies/assemblybugs/37910/Ii.cs')
-rw-r--r-- | src/coreclr/tests/src/Loader/binding/assemblies/assemblybugs/37910/Ii.cs | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/coreclr/tests/src/Loader/binding/assemblies/assemblybugs/37910/Ii.cs b/src/coreclr/tests/src/Loader/binding/assemblies/assemblybugs/37910/Ii.cs new file mode 100644 index 0000000000..65f0ea68c0 --- /dev/null +++ b/src/coreclr/tests/src/Loader/binding/assemblies/assemblybugs/37910/Ii.cs @@ -0,0 +1,39 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. +using System; +using System.Reflection; +using System.Runtime.InteropServices; + +public class Program +{ + [DllImport("libc", EntryPoint = "setlocale")] + public static extern IntPtr setlocale(int category, [MarshalAs(UnmanagedType.LPStr)] string locale); + + public static int Main() + { + Assembly a1 = Assembly.GetExecutingAssembly(); + + // In case of Turkish locale: + // towupper 'i' -> \x0130 (instead of 'I') + // towlower 'I' -> \x0131 (instead of 'i') + const string TRLocale = "tr_TR.UTF-8"; + IntPtr res = setlocale(6 /*LC_ALL*/, TRLocale); + if (TRLocale != Marshal.PtrToStringAnsi(res)) + { + Console.WriteLine("Failed! " + TRLocale + " locale was not found in system!"); + return -1; + } + + Assembly a2 = Assembly.Load("Ii"); + + if (a1 != a2) + { + Console.WriteLine("Failed!"); + return -2; + } + + Console.WriteLine("Passed!"); + return 100; + } +} |