-
Notifications
You must be signed in to change notification settings - Fork 514
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
[.NET] Only the invariant culture works #8906
Comments
Ref: xamarin#8906 Otherwise .NET Core will run into this: 2020-06-10 17:07:55.450901+0200 MySingleView[72595:4489235] warning: CLR: Managed code called FailFast, saying "Infinite recursion during resource lookup within System.Private.CoreLib. This may be a bug in System.Private.CoreLib, or potentially in certain extensibility points such as assembly resolve events or CultureInfo names. Resource name: Arg_DllNotFoundException" ================================================================= Native Crash Reporting ================================================================= Got a abrt while executing native code. This usually indicates a fatal error in the mono runtime or one of the native libraries used by your application. ================================================================= ================================================================= Native stacktrace: ================================================================= 0x1064bef2b - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/libmonosgen-2.0.dylib : mono_dump_native_crash_info 0x10646b441 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/libmonosgen-2.0.dylib : mono_handle_native_crash 0x1064be782 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/libmonosgen-2.0.dylib : sigabrt_signal_handler 0x7fff51c005fd - /Applications/Xcode_11.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib/system/libsystem_platform.dylib : _sigtramp 0x0 - Unknown 0x7fff51af0b7c - /Applications/Xcode_11.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib/system/libsystem_c.dylib : abort 0x10662f0a3 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/libmonosgen-2.0.dylib : ves_icall_System_Environment_FailFast 0x10662f0d7 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/libmonosgen-2.0.dylib : ves_icall_System_Environment_FailFast_raw 0x106b0a37f - Unknown 0x106b0a2f3 - Unknown 0x106b081bb - Unknown 0x106b07ad3 - Unknown 0x106b07a5b - Unknown 0x106b079db - Unknown 0x106b07813 - Unknown 0x106b07961 - Unknown 0x1063ee6f6 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/libmonosgen-2.0.dylib : mono_jit_runtime_invoke 0x10657815e - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/libmonosgen-2.0.dylib : do_runtime_invoke 0x106574de1 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/libmonosgen-2.0.dylib : mono_runtime_object_init_handle 0x10652bc41 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/libmonosgen-2.0.dylib : mono_exception_from_token 0x106b09c0b - Unknown 0x106b09b33 - Unknown 0x106b09a5b - Unknown 0x106b099a3 - Unknown 0x106b09963 - Unknown 0x106b098f3 - Unknown 0x106b098b3 - Unknown 0x106b09863 - Unknown 0x106b0939b - Unknown 0x106b083dd - Unknown 0x106b07ad3 - Unknown 0x106b07a5b - Unknown 0x106b079db - Unknown 0x106b07813 - Unknown 0x106b07961 - Unknown 0x1063ee6f6 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/libmonosgen-2.0.dylib : mono_jit_runtime_invoke 0x10657815e - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/libmonosgen-2.0.dylib : do_runtime_invoke 0x106574de1 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/libmonosgen-2.0.dylib : mono_runtime_object_init_handle 0x10652bc41 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/libmonosgen-2.0.dylib : mono_exception_from_token 0x106b0775b - Unknown 0x106b068eb - Unknown 0x106b04d63 - Unknown 0x106a590ce - Unknown 0x1063ee6f6 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/libmonosgen-2.0.dylib : mono_jit_runtime_invoke 0x10657815e - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/libmonosgen-2.0.dylib : do_runtime_invoke 0x10657545b - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/libmonosgen-2.0.dylib : mono_runtime_class_init_full 0x106414118 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/libmonosgen-2.0.dylib : mono_method_to_ir 0x1063e4688 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/libmonosgen-2.0.dylib : mini_method_compile 0x1063e6ce4 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/libmonosgen-2.0.dylib : mono_jit_compile_method_inner 0x1063ea4f7 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/libmonosgen-2.0.dylib : mono_jit_compile_method_with_opt 0x10646d5d8 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/libmonosgen-2.0.dylib : common_call_trampoline 0x10646d07d - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/libmonosgen-2.0.dylib : mono_magic_trampoline 0x1069db396 - Unknown 0x106b04a7b - Unknown 0x106b02e83 - Unknown 0x106b02d9b - Unknown 0x106a590ce - Unknown 0x1063ee6f6 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/libmonosgen-2.0.dylib : mono_jit_runtime_invoke 0x10657815e - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/libmonosgen-2.0.dylib : do_runtime_invoke 0x10657545b - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/libmonosgen-2.0.dylib : mono_runtime_class_init_full 0x106414118 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/libmonosgen-2.0.dylib : mono_method_to_ir 0x1063e4688 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/libmonosgen-2.0.dylib : mini_method_compile 0x1063e6ce4 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/libmonosgen-2.0.dylib : mono_jit_compile_method_inner 0x1063ea4f7 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/libmonosgen-2.0.dylib : mono_jit_compile_method_with_opt 0x10646d5d8 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/libmonosgen-2.0.dylib : common_call_trampoline 0x10646d07d - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/libmonosgen-2.0.dylib : mono_magic_trampoline 0x1069db396 - Unknown 0x106b02d53 - Unknown 0x106a590ce - Unknown 0x1063ee6f6 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/libmonosgen-2.0.dylib : mono_jit_runtime_invoke 0x10657815e - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/libmonosgen-2.0.dylib : do_runtime_invoke 0x10657545b - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/libmonosgen-2.0.dylib : mono_runtime_class_init_full 0x106414118 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/libmonosgen-2.0.dylib : mono_method_to_ir 0x1063e4688 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/libmonosgen-2.0.dylib : mini_method_compile 0x1063e6ce4 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/libmonosgen-2.0.dylib : mono_jit_compile_method_inner 0x1063ea4f7 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/libmonosgen-2.0.dylib : mono_jit_compile_method_with_opt 0x10646d5d8 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/libmonosgen-2.0.dylib : common_call_trampoline 0x10646d07d - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/libmonosgen-2.0.dylib : mono_magic_trampoline 0x1069db396 - Unknown 0x106afea83 - Unknown 0x106afdc0b - Unknown 0x106afd5eb - Unknown 0x106afd223 - Unknown 0x106afd04b - Unknown 0x106afcf2b - Unknown 0x106af98c3 - Unknown 0x106aec7fb - Unknown 0x106a646ab - Unknown 0x106a64543 - Unknown 0x106a644e3 - Unknown 0x106a6433b - Unknown 0x106a63f03 - Unknown 0x106a63d93 - Unknown 0x106a62b5b - Unknown 0x10638dc47 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/libxamarin.dylib : xamarin_register_assembly 0x106390394 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/libxamarin.dylib : xamarin_initialize 0x1063984e0 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/libxamarin.dylib : xamarin_main 0x1062d4f5d - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/62875EFF-27D1-40D9-87BD-F223F45E4EC6/MySingleView.app/MySingleView : main 0x7fff51a231fd - /Applications/Xcode_11.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib/system/libdyld.dylib : start 0x1 - Unknown ================================================================= Basic Fault Address Reporting ================================================================= Memory around native instruction pointer (0x7fff51b6133a):0x7fff51b6132a ff ff c3 90 90 90 b8 48 01 00 02 49 89 ca 0f 05 .......H...I.... 0x7fff51b6133a 73 08 48 89 c7 e9 e5 a2 ff ff c3 90 90 90 b8 53 s.H............S 0x7fff51b6134a 00 00 02 49 89 ca 0f 05 73 08 48 89 c7 e9 cd a2 ...I....s.H..... 0x7fff51b6135a ff ff c3 90 90 90 b8 83 01 00 02 49 89 ca 0f 05 ...........I.... ================================================================= Managed Stacktrace: ================================================================= at <unknown> <0xffffffff> at System.Environment:FailFast <0x0006e> at System.Environment:FailFast <0x00022> at System.SR:InternalGetResourceString <0x001ba> at System.SR:GetResourceString <0x00062> at System.SR:GetResourceString <0x0002a> at System.SR:get_Arg_DllNotFoundException <0x0001a> at System.DllNotFoundException:.ctor <0x00022> at System.Object:runtime_invoke_void__this__ <0x000e0> at <unknown> <0xffffffff> at Globalization:GetDefaultLocaleName <0x0005a> at System.Globalization.CultureData:GetDefaultLocaleName <0x00052> at System.Globalization.CultureInfo:GetUserDefaultCulture <0x0005a> at System.Globalization.CultureInfo:InitializeUserDefaultCulture <0x00022> at System.Globalization.CultureInfo:GetUserDefaultUICulture <0x00012> at System.Globalization.CultureInfo:InitializeUserDefaultUICulture <0x00022> at System.Globalization.CultureInfo:get_UserDefaultUICulture <0x00032> at System.Globalization.CultureInfo:get_CurrentUICulture <0x00052> at System.Resources.ResourceManager:GetString <0x0006a> at System.SR:InternalGetResourceString <0x003dc> at System.SR:GetResourceString <0x00062> at System.SR:GetResourceString <0x0002a> at System.SR:get_Arg_DllNotFoundException <0x0001a> at System.DllNotFoundException:.ctor <0x00022> at System.Object:runtime_invoke_void__this__ <0x000e0> at <unknown> <0xffffffff> at Globalization:LoadICU <0x0005a> at System.Globalization.GlobalizationMode:GetGlobalizationInvariantMode <0x0007a> at System.Globalization.GlobalizationMode:.cctor <0x00012> at System.Object:runtime_invoke_void <0x0007d> at <unknown> <0xffffffff> at System.Globalization.CultureData:CreateCultureWithInvariantData <0x00cda> at System.Globalization.CultureData:get_Invariant <0x00032> at System.Globalization.CultureInfo:.cctor <0x0001a> at System.Object:runtime_invoke_void <0x0007d> at <unknown> <0xffffffff> at System.Globalization.CompareInfo:.cctor <0x00012> at System.Object:runtime_invoke_void <0x0007d> at <unknown> <0xffffffff> at ObjCMethod:get_IsPropertyAccessor <0x000c2> at Registrar.Registrar:GetBindAsAttribute <0x0015a> at ObjCMethod:get_NativeReturnType <0x000ea> at Registrar.Registrar:ComputeSignature <0x001c2> at ObjCMethod:ComputeSignature <0x0005a> at ObjCMethod:ValidateSignature <0x0005a> at ObjCType:Add <0x000c2> at Registrar.Registrar:RegisterTypeUnsafe <0x047fa> at Registrar.Registrar:RegisterType <0x0008a> at Registrar.DynamicRegistrar:Register <0x00042> at ObjCRuntime.Class:Register <0x00032> at ObjCRuntime.Runtime:RegisterAssembly <0x000ea> at ObjCRuntime.Runtime:RegisterAssembly <0x00062> at ObjCRuntime.Runtime:register_assembly <0x00042> at ObjCRuntime.Runtime:register_assembly <0x0006a> ================================================================= Xamarin.Hosting: Simulated process has exited.
…ariant culture is currently shipping in .NET 5. Ref: xamarin#8906 This is the third of three steps to fix this test failure: EmbeddedResources.ResourcesTest [FAIL] Embedded : en-AU Expected string length 5 but was 7. Strings differ at index 0. Expected: "G'day" But was: "Welcome" -----------^ at EmbeddedResources.ResourcesTest.Embedded() in [...]/xamarin-macios/tests/EmbeddedResources/ResourcesTest.cs:line 45
.NET doesn't have any globalization support yet. Ref: xamarin#8906 This fixes these tests: DontLink.Calendars.CalendarTest [FAIL] Hijri : Calendar Expected string length 34 but was 38. Strings differ at index 21. Expected: "System.Globalization.HijriCalendar" But was: "System.Globalization.GregorianCalendar" --------------------------------^ at DontLink.Calendars.CalendarTest.Hijri() in [...]/xamarin-macios/tests/linker/ios/dont link/CalendarTest.cs:line 28 [FAIL] ThaiBuddhist : Calendar Expected string length 41 but was 38. Strings differ at index 21. Expected: "System.Globalization.ThaiBuddhistCalendar" But was: "System.Globalization.GregorianCalendar" --------------------------------^ at DontLink.Calendars.CalendarTest.ThaiBuddhist() in [...]/xamarin-macios/tests/linker/ios/dont link/CalendarTest.cs:line 35 [FAIL] UmAlQura : Calendar Expected string length 37 but was 38. Strings differ at index 21. Expected: "System.Globalization.UmAlQuraCalendar" But was: "System.Globalization.GregorianCalendar" --------------------------------^ at DontLink.Calendars.CalendarTest.UmAlQura() in [...]/xamarin-macios/tests/linker/ios/dont link/CalendarTest.cs:line 21
…ariant culture is currently shipping in .NET 5. (#9498) Ref: #8906 This is the third of three steps to fix this test failure: EmbeddedResources.ResourcesTest [FAIL] Embedded : en-AU Expected string length 5 but was 7. Strings differ at index 0. Expected: "G'day" But was: "Welcome" -----------^ at EmbeddedResources.ResourcesTest.Embedded() in [...]/xamarin-macios/tests/EmbeddedResources/ResourcesTest.cs:line 45
…balization data. Ref: xamarin#8906 I can't reproduce locally, because it's ignored for me: [INCONCLUSIVE] InitRegionInfo : You can construct locale without countries at MonoTouchFixtures.Foundation.LocaleTest.InitRegionInfo() in [...]/xamarin-macios/tests/monotouch-test/Foundation/LocaleTest.cs:line 47 but this should fix this monotouch-test test failure (I'm guessing that 'IV' stands for 'Invariant', which is all the current .NET version ships with): MonoTouchFixtures.Foundation.LocaleTest [FAIL] InitRegionInfo : Name String lengths are both 2. Strings differ at index 0. Expected: "US" But was: "IV" -----------^ : at MonoTouchFixtures.Foundation.LocaleTest.InitRegionInfo() in /Users/builder/jenkins/workspace/xamarin-macios-pr-builder/tests/monotouch-test/Foundation/LocaleTest.cs:line 49
…ations. (#9526) * [xharness] Enable monotouch-test/.NET by default, but ignore all variations. The default (Debug) configuration is green now, but the rest of the variations aren't yet. * [tests] Ignore LocaleTest.InitRegionInfo in .NET because it needs globalization data. Ref: #8906 I can't reproduce locally, because it's ignored for me: [INCONCLUSIVE] InitRegionInfo : You can construct locale without countries at MonoTouchFixtures.Foundation.LocaleTest.InitRegionInfo() in [...]/xamarin-macios/tests/monotouch-test/Foundation/LocaleTest.cs:line 47 but this should fix this monotouch-test test failure (I'm guessing that 'IV' stands for 'Invariant', which is all the current .NET version ships with): MonoTouchFixtures.Foundation.LocaleTest [FAIL] InitRegionInfo : Name String lengths are both 2. Strings differ at index 0. Expected: "US" But was: "IV" -----------^ : at MonoTouchFixtures.Foundation.LocaleTest.InitRegionInfo() in /Users/builder/jenkins/workspace/xamarin-macios-pr-builder/tests/monotouch-test/Foundation/LocaleTest.cs:line 49
.NET doesn't have any globalization support yet. Ref: xamarin#8906 This fixes these tests: LinkAll.Calendars.CalendarTest [FAIL] Hijri : Calendar Expected string length 34 but was 38. Strings differ at index 21. Expected: "System.Globalization.HijriCalendar" But was: "System.Globalization.GregorianCalendar" --------------------------------^ at LinkAll.Calendars.CalendarTest.Hijri() in [...]/xamarin-macios/tests/linker/ios/link all/CalendarTest.cs:line 28 [FAIL] ThaiBuddhist : Calendar Expected string length 41 but was 38. Strings differ at index 21. Expected: "System.Globalization.ThaiBuddhistCalendar" But was: "System.Globalization.GregorianCalendar" --------------------------------^ at LinkAll.Calendars.CalendarTest.ThaiBuddhist() in [...]/xamarin-macios/tests/linker/ios/link all/CalendarTest.cs:line 35 [FAIL] UmAlQura : Calendar Expected string length 37 but was 38. Strings differ at index 21. Expected: "System.Globalization.UmAlQuraCalendar" But was: "System.Globalization.GregorianCalendar" --------------------------------^ at LinkAll.Calendars.CalendarTest.UmAlQura() in [...]/xamarin-macios/tests/linker/ios/link all/CalendarTest.cs:line 21
Seems like libSystem.Globalization.Native.dylib is not bundled properly with the Mono runtime, not even on macOS. |
…ations. (#9526) * [xharness] Enable monotouch-test/.NET by default, but ignore all variations. The default (Debug) configuration is green now, but the rest of the variations aren't yet. * [tests] Ignore LocaleTest.InitRegionInfo in .NET because it needs globalization data. Ref: #8906 I can't reproduce locally, because it's ignored for me: [INCONCLUSIVE] InitRegionInfo : You can construct locale without countries at MonoTouchFixtures.Foundation.LocaleTest.InitRegionInfo() in [...]/xamarin-macios/tests/monotouch-test/Foundation/LocaleTest.cs:line 47 but this should fix this monotouch-test test failure (I'm guessing that 'IV' stands for 'Invariant', which is all the current .NET version ships with): MonoTouchFixtures.Foundation.LocaleTest [FAIL] InitRegionInfo : Name String lengths are both 2. Strings differ at index 0. Expected: "US" But was: "IV" -----------^ : at MonoTouchFixtures.Foundation.LocaleTest.InitRegionInfo() in /Users/builder/jenkins/workspace/xamarin-macios-pr-builder/tests/monotouch-test/Foundation/LocaleTest.cs:line 49
…ations. (#9526) * [xharness] Enable monotouch-test/.NET by default, but ignore all variations. The default (Debug) configuration is green now, but the rest of the variations aren't yet. * [tests] Ignore LocaleTest.InitRegionInfo in .NET because it needs globalization data. Ref: #8906 I can't reproduce locally, because it's ignored for me: [INCONCLUSIVE] InitRegionInfo : You can construct locale without countries at MonoTouchFixtures.Foundation.LocaleTest.InitRegionInfo() in [...]/xamarin-macios/tests/monotouch-test/Foundation/LocaleTest.cs:line 47 but this should fix this monotouch-test test failure (I'm guessing that 'IV' stands for 'Invariant', which is all the current .NET version ships with): MonoTouchFixtures.Foundation.LocaleTest [FAIL] InitRegionInfo : Name String lengths are both 2. Strings differ at index 0. Expected: "US" But was: "IV" -----------^ : at MonoTouchFixtures.Foundation.LocaleTest.InitRegionInfo() in /Users/builder/jenkins/workspace/xamarin-macios-pr-builder/tests/monotouch-test/Foundation/LocaleTest.cs:line 49
* [xharness] Add support for skipping more test variations. * [xharness] Add the dotnet introspection project file to our list of projects, and mark it as a .NET project. * [xharness] Clearly label .NET projects as such. * [xharness] Disable project generation for .NET projects for now. * [xharness] Create DotNetBuildTasks when we need to build .NET projects. * [xharness] Improve project cloning to take into account default inclusion behavior for .NET projects. .NET projects will include files from the current directory by default, which means that if we clone the project file and write the cloned project file in a different directory, we'll have to add an automatically included files into the cloned file manually. * [xharness] Add a GetDotNetExecutable callback and an MSBuildPath property to [I]ProcessManager. * [xharness] Retrieve a .NET project's OutputPath by running MSBuild. .NET projects are vastly simplified, which means that the OutputPath can't be determined by reading the project file itself, it has to be calculated by MSBuild. So that's exactly what we do: we run MSBuild on the project file and get it to print the property we're interested in. * [xharness] Skip the old simulator variation for introspection/dotnet for now. * [xharness] Try to not have log directories with spaces in them. (#8976) The simulators won't write stdout/stderr to a path with a space. * [xharness] Don't generate makefile targets for .NET projects. They end up with the same make targets as non-.NET targets, which prints warnings in the terminal when running make. We're not using the makefile targets much anymore, so postpone implementing them for .NET until we need them for some reason. * [xharness] Add support for generating a tvOS version of .NET iOS projects. (#9032) * [xharness] Add support for generating a tvOS version of .NET iOS projects. And use it to run the tvOS version of introspection for .NET. * [xharness] Change according to reviews. * [xharness] Use Cecil to inspect assemblies, instead of Reflection. (#9082) This is slightly faster - ~0.95s vs ~1.4s - (probably because reflection tries to load a lot of other referenced assemblies, which may or may not exist, causing exceptions (if they don't exist) or spend time loading them (which Cecil won't)). It also avoids a lot of exception details showing up when tracing xharness execution. * [xharness] Don't group simulators when running in server mode. (#9098) Grouping simulators means we have to wait until we know which simulators are available, because we group by the simulator's UDID. When running in server mode, we don't need to group simulator test runs, because we run the as the user chooses, not in any particular order. This way the test list loads faster at startup, since we don't have to wait until we've loaded the simulators before we can show the list. * [xharness] Fix finding testable types in test assemblies. Fixes #xamarin/maccore@2267. (#9103) Apparently a null namespace when using Reflection can be an empty namespace in Cecil. Fixes xamarin/maccore#2267. * [xharness] Parse NUnit v2 xml reports correctly. (#9110) * [xharness] De-asyncify template expansion. (#9104) This avoids: * Getting the resource stream for every template expansion * Reading the resource stream * A lot of async code. Instead just read the resource stream once, into a string, and return that. This speeds up the startup by ~10% (from ~0.96s to ~0.83s on my machine). * [xharness] Improve code to not throw exceptions in the first place instead of catching and ignoring. (#9118) * [xharness] Try harder to make lldb quit after trying to get a backtrace. (#9119) When a process times out, we try to print a stack trace for all threads. This involves executing "lldb --source <script>", where the script contains: process attach --pid 1234 thread list thread backtrace all detach quit Basically we attach to the project, and ask lldb to print stack traces. The problem: 16:09:02.9522580 Printing backtrace for pid=25276 16:09:02.9528060 /usr/bin/lldb --source /var/folders/q7/mkzwrzcn7bzf3g2v38f3c1cw0000gn/T/tmp58e75d85.tmp 16:09:04.6127570 (lldb) command source -s 0 '/var/folders/q7/mkzwrzcn7bzf3g2v38f3c1cw0000gn/T/tmp58e75d85.tmp' 16:09:04.6130020 Executing commands in '/var/folders/q7/mkzwrzcn7bzf3g2v38f3c1cw0000gn/T/tmp58e75d85.tmp'. 16:09:04.6130200 (lldb) process attach --pid 25276 16:09:05.6458750 error: attach failed: Error 1 16:09:05.7529100 25276 Execution timed out after 1200 seconds and the process was killed. 16:09:05.7588770 Execution timed out after 1200 seconds. If any of those commands fail, the subsequent commands aren't executed. This includes the final "quit" command, which means we end up waiting forever for lldb to do its thing, when lldb doesn't think it needs to do anything at all. The fix: pass two different scripts. It turns out subsequent scripts are executed even if previous scripts fail, so we do the equivalent of: lldb --source <attach script> --source <quit script> And now lldb will quit no matter what the attach script does (it still works even if the attach script succeeds, in which case we'll ask lldb to quit twice). * [xharness] Improve process killing a bit. (#9120) * Log what we're doing. * Wait a bit after sending SIGABRT, to allow for the OS to create any crash reports. * [xharness] Don't try to write cleaned xml into the same file as the dirty xml was. (#9122) * [xharness] Don't replace existing files, instead add new files, when providing human-readable logs. (#9123) This makes understanding what's going on much easier. * [xharness] Fix BCL project generation for watchOS projects. (#9131) Reading from a file named as the actual content of the watchOS template doesn't _quite_ work. Instead just use the content directly. * [xharness] Only try to parse the build log if we have a build log. (#9130) * [xharness] Don't generate into the same directory/files for macOS Modern and macOS Full. (#9121) * [xharness] Don't generate into the same directory/files for macOS Modern and macOS Full. This meant that we were overwriting some generated files, which meant that we were executing the Modern set of tests instead of the Full set of tests for at least some configurations. * Add a few ignored tests to the System.Configuration test now that we actually run it. * [xharness] Disable default inclusion behavior for the introspection .NET tests. (#9137) It gets too annoying to keep track of which files are where with the project cloning we're doing, if files are implicitly included. * [xharness] Generate BCL projects asynchronously. (#9083) Split the BCL project generation in two: one part that figures out which projects to generate, and which is done synchronously (because we need it to compute the list of tests), then split out the actual generation and run it on a background thread (since that doesn't have to happen until we want to execute those tests). This speeds up launching xharness in server mode significantly (from ~2s to ~0.2s). * [xharness] Document the test loading process a little bit. * [xharness] Generate projects into a subdirectory for each project. Because it's cumbersome to keep the build working when the same directory has multiple project files. * [xharness] Remove a lot of special-casing for the mono-native tests. It's not needed anymore. * [xharness] Store attribute in local variable instead of fetching it twice. * [xharness] Make ProjectFileExtensions.GetInfoPListInclude a bit clearer. Add a comment to document what's supposed to happen, and simplify the code a little bit. * [xharness] Add support for specifying whether variations should be generated for Xamarin.iOS projects. * [xharness] Don't generate variations for BCL projects using the normal procedure, we generate them differently already. This makes it possible to remove some dead code. * [xharness] Add a TestPlatform value to TestProject, and use it to indicate that a TestProject might be of a specific platform already. * [xharness] Make the templates path an input parameter for the BCL templates. * [xharness] Make the BCL project generation generate each project file into its own subdirectory. * [tests] Put the iOS and macOS mono-native templates in their own directory. This makes it possible to remove a few conditions in the code. * [xharness] Simplify the MonoNativeInfo class a bit by removing the custom Mac-specific subclass (there's almost no difference anymore). * [tests] Move bindings-test[-mac].csproj to their own directory. * [xharness] Fix compiler warning. (#9147) * [xharness] Fix logic to not create makefile targets to run BCL tests. (#9148) According to the existing code, we're already not supposed to create makefile targets for BCL tests. However, the code to detect BCL tests wasn't quite reliable, so we ended up creating makefile targets for some BCL tests. So always use the same logic to detect BCL tests. Also remove a lot of dead code to generate makefile code for BCL tests. * [tests] Set the correct mono-native link mode and flavor defines in the csproj itself. This makes it possible to simplify a lot of C# code. * [xharness] Remove a redundant ToArray. * [xharness] Allow for null environment variables to mlaunch. (#9140) It's a valid scenario to set a null environment variable. This happens when changing InCI to always return true (to test locally what's done on the bots), in which case we try to forward BUILD_REVISION to mlaunch, but BUILD_REVISION isn't necessarily set. Not forwarding it to mlaunch should not cause problems in most tests, so just allow this scenario. * [xharness] Generate makefile targets for non-executable projects. (#9158) It turns out some Xamarin.Mac projects are library projects (for unit tests), and we still need to generate makefile targets for those (because we use them to build Xamarin.Mac tests to run on older macOS bots). * [xharness] Backport Touch.Unit fix for command line parsing. (#9165) Apply xamarin/Touch.Unit#78 to the duplicated file. * [tests] Info.plists should be inside LogicalName, not Link. This makes it possible to simplify a bit more code inside xharness as well. * Merge remote-tracking branch 'origin/main' into xharness-a-directory-per-project * [xharness] Fix finding Info.plist, and add some tests too. * [xharness] Fix how .NET projects are ignored. (#9168) * [xharness] Fix how .NET projects are ignored. Now they're actually ignored if .NET tests are not included. * Fix compile error. * Merge remote-tracking branch 'origin/main' into xharness-a-directory-per-project * [xharness] If we're not generating projects in the Target class, the project path equals the template path. * [xharness] Make restoring nugets the default for all test projects. (#9237) But don't do it for .NET projects, since 'dotnet build' automatically restores. * [xharness] Improve restoring NuGets for Xamarin.Mac projects in the makefile by depending on the csproj files in addition to the packages.conf files. (#9242) Packages are listed in the csproj when we're using package references. Also only list files in git, otherwise we pick up all the generated project files as well. * [tests] Migrate the sample tests to use package references. (#9244) * [tests] Switch msbuild-mac to use package references. (#9245) And don't specify the solution path anymore, because we can restore using just the csproj just fine now. * [xharness] Mark the .NET tests project as a .NET project so that we don't try to call nuget restore on it. (#9251) * [xharness] Mark the .NET tests project as a .NET project so that we don't try to call nuget restore on it. * [xharness] Mark the .NET generator project as a .NET project as well. * [xharness] Resolve relative project references using the referencing project's directory. (#9252) Otherwise it would end up being resolved from the current directory, which is not dependable. * [xharness] Don't try to parse a build log that doesn't exist. (#9253) * [xharness] Add support for generating/duplicating projects with a Touch.Client reference. This also means removing support for generating/duplicating MonoTouch.NUnit references, since we're not using those anymore. * [tests] Remove dead code related to GuiUnit and the GuiUnit submodule. * [xharness] Change how we run macOS unit tests to work with Touch.Client. This is very similar to how we run iOS unit tests. * [xharness] Add the Touch.Client projects to our solutions instead of MonoTouch.NUnitLite. * [tests] The upstream NUnitLine isn't linker safe, so add an xml file to make sure linking doesn't remove too much. In particular NUnit uses reflection to get a private method, and the linker removes the corresponding private method: https://github.com/nunit/nunit/blob/1c680b4dc8ad3c6caf6563f434e2c98caac2568d/src/NUnitFramework/framework/Internal/TestExecutionContext.cs#L552 So add an xml definition to keep this private method, and modify project files to pass the xml definition to mtouch and mmp. Some care needs to be taken to make sure xharness is still able to clone these project files. * [xharness] Add support for finding/setting the main Xamarin import among multiple imports. This is required for the previous commit, where we added an additional import to a few project files to pass an xml definition to mtouch/mmp. * [xharness] Use LogFile instead of ResultFile in macOS BCL tests to match the Touch.Client usage. * [tests] Restore projects before building them from the command line. * [xharness] Implement Log.GetReader for all loggers. (#9257) This makes it easier to write code that parses logs, since that code won't have to worry about if a particular log supports GetReader or not. * [xharness] Fix main log parsing by not requiring it to come from a file. (#9258) Not all types of logs have files, but all types of logs have a reader (or will have soon due to PR #9257). * [xharness] Improve parsing of NUnitV2 xml reports to fix an issue with failures in parameterized tests. (#9259) We weren't properly reporting all failures when there were multiple failures in parameterized tests, because we'd incorrectly skip too many xml nodes when we were looking for the next test failure. * Merge remote-tracking branch 'origin/main' into HEAD * Remove wrongly added dir. (#9301) Someone (Manuel) uses an IDE that uses .idea to store user settings and that got added by accident. * [Harness] Fix some typos. (#9303) * [xharness] Make it possible to include .NET tests by setting a label. (#9298) This also means that setting 'run-all-tests' enables the .NET tests, which means they'll now start running on internal Jenkins (as was the intention from the beginning). * [xharness] Look at the exact NUnit version an NUnit project is referencing to figure out how to run it in a makefile. (#9322) * [xharness] Add support for adding PropertyGroups for unknown platform/configuration values in a csproj. Fixes xamarin/maccore@2277. (#9347) Fixes xamarin/maccore#2277. * [xharness] Add support for getting the default AssemblyName for projects. (#9369) In .NET projects there's a default value for most properties, which means that there won't necessarily be an AssemblyName property in a csproj. We need to know the AssemblyName, so calculate it from the csproj filename (which is how .NET does it). This turned out slighly complicated, because we're pass an XmlDocument around, and the XmlDocument doesn't know the file from where it was loaded, so we need to keep that information separately. * [xharness] Add the .NET version of interdependent-binding-projects to our lineup * [xharness] Enhance ResolveAllPaths to understand $(RootTestsDirectory). This requires passing the root directory around in multiple places, since ResolveAllPaths doesn't have access to the static class where we define the root directory. Also call ResolveAllPaths in a few more places to ensure paths everywhere are resolved. * [xharness] Do not mark DeviceLoaders as loaded when loading fails (#9367) * [xharness] Make sure MSBUILD_EXE_PATH is not set when executing dotnet. Something ends up confused, and dotnet hangs. * [xharness] Bump timeout for the .NET tests. More tests take longer to run! * [xharness] Don't clone the same project multiple times when reached through different project references. Problem: 1. interdependent-binding-project references binding-test and bindings-test2. 2. bindings-test2 references bindings-test. This means bindings-test is reached through 2 projects: both interdependent-binding-projects and bindings-test2, and previously we'd process each of these references separately, effectively making two separate clones of the bindings-test project. Instead keep track of all referenced projects from the leaf project, and if we encounter a project we've already cloned, use that directly. * [dotnet] Add support for consuming binding projects. (#9376) * Port the interdependent-binding-projects test to .NET (it's the simplest test project we have with binding projects). * Add a lot of the shared source code for mtouch/mmp to dotnet-linker, and make it compile. Most issues were fixed by adding a few stubbed out classes, since there are large chunks of the mtouch/mmp code we're not using yet, so stubbing out while things are being implemented works fine. * Add a step in dotnet-linker for loading the linker output (the linked assemblies) into our bundler code. * Add another step in dotnet-linker to extract native resources from binding libraries. * Augment the build process to take into account the native resources we found in any binding libraries. * [xharness] Make it possible to make a project ignored by default from its initial definition. Make it possible to make a project ignored by default from its initial definition, and which takes precedence over any other selection criteria. This way it's possible to make the .NET version of monotouch-test show up in the web view, which makes it runnable locally (for testing), while at the same time it will never be run on CI. * [xharness] Add monotouch-test to the .NET lineup. * [xharness] Improve resolving paths in project files. * Properties may contain a list of files, separated by semi-colon, so if we find any semi-colons, treat each entry as a separate path. * Treat anything that starts with a variable as a full path, because either the variable is a full path, or it will be updated according to the new project location and resolve correctly. * [xharness] Process '$(RootTestsDirectory)' before bailing due to any other variables when resolving paths in project files. (#9467) While keeping '$(RootTestsDirectory)' as-is works fine when building the project using MSBuild, xharness itself may end up encountering it (in particular when listing referenced projects), and at that point will end up confused. So just always resolve '$(RootTestsDirectory)' to the actual directory to keep other parts of xharness happy. Fixes this problem (as seen in PR #9460): Harness exception for 'interdependent-binding-projects': System.IO.DirectoryNotFoundException: Could not find a part of the path "/Users/builder/jenkins/workspace/xamarin-macios-pr-builder/tests/external/Touch.Unit/Touch.Client/dotnet/iOS/Touch.Client-iOS.dotnet.csproj". at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.Boolean anonymous, System.IO.FileOptions options) [0x0015e] in /Users/builder/jenkins/workspace/build-package-osx-mono/2020-02/external/bockbuild/builds/mono-x64/mcs/class/corlib/System.IO/FileStream.cs:223 at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.Boolean isAsync, System.Boolean anonymous) [0x00000] in /Users/builder/jenkins/workspace/build-package-osx-mono/2020-02/external/bockbuild/builds/mono-x64/mcs/class/corlib/System.IO/FileStream.cs:149 at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access) [0x00000] in /Users/builder/jenkins/workspace/build-package-osx-mono/2020-02/external/bockbuild/builds/mono-x64/mcs/class/corlib/System.IO/FileStream.cs:86 at (wrapper remoting-invoke-with-check) System.IO.FileStream..ctor(string,System.IO.FileMode,System.IO.FileAccess) at Microsoft.DotNet.XHarness.iOS.Shared.Utilities.PListExtensions.LoadWithoutNetworkAccess (System.Xml.XmlDocument doc, System.String filename) [0x00001] in /Users/builder/jenkins/workspace/xamarin-macios-pr-builder/tests/xharness/Microsoft.DotNet.XHarness.iOS.Shared/Utilities/PlistExtensions.cs:17 at Microsoft.DotNet.XHarness.iOS.Shared.TestProject.CreateCopyAsync (Microsoft.DotNet.XHarness.iOS.Shared.Logging.ILog log, Microsoft.DotNet.XHarness.iOS.Shared.Execution.IProcessManager processManager, Microsoft.DotNet.XHarness.iOS.Shared.Tasks.ITestTask test, System.String rootDirectory, System.Collections.Generic.Dictionary`2[TKey,TValue] allProjectReferences) [0x0010c] in /Users/builder/jenkins/workspace/xamarin-macios-pr-builder/tests/xharness/Microsoft.DotNet.XHarness.iOS.Shared/TestProject.cs:98 at Microsoft.DotNet.XHarness.iOS.Shared.TestProject.CreateCopyAsync (Microsoft.DotNet.XHarness.iOS.Shared.Logging.ILog log, Microsoft.DotNet.XHarness.iOS.Shared.Execution.IProcessManager processManager, Microsoft.DotNet.XHarness.iOS.Shared.Tasks.ITestTask test, System.String rootDirectory, System.Collections.Generic.Dictionary`2[TKey,TValue] allProjectReferences) [0x00811] in /Users/builder/jenkins/workspace/xamarin-macios-pr-builder/tests/xharness/Microsoft.DotNet.XHarness.iOS.Shared/TestProject.cs:168 at Microsoft.DotNet.XHarness.iOS.Shared.Tasks.TestTasks.RunInternalAsync () [0x00117] in /Users/builder/jenkins/workspace/xamarin-macios-pr-builder/tests/xharness/Microsoft.DotNet.XHarness.iOS.Shared/Tasks/TestTask.cs:274 * [tests] Port dont link to .NET (#9488) There are a few test failures, so it's ignored by default in xharness for now. * [xharness] don't link is now green on .NET! * [tests] Port link sdk to .NET * [xharness] link sdk is now green on .NET! At least the Debug configuration is, there's still a test failure in the Release configuration, so skip that for now. * [tests] Port link all to .NET (#9515) * [tests] Port link all to .NET * [tests] Exclude link all tests in .NET that reference OpenTK-1.0.dll OpenTK-1.0.dll isn't supported yet. * [tests] Exclude link all tests using API that isn't available anymore in .NET. * [xharness] Use the local 'ignore' variable instead of fetching 'test.TestProject.Ignore' for every test when generating test variations. (#9518) * [xharness] Enable monotouch-test/.NET by default, but ignore all variations. (#9526) * [xharness] Enable monotouch-test/.NET by default, but ignore all variations. The default (Debug) configuration is green now, but the rest of the variations aren't yet. * [tests] Ignore LocaleTest.InitRegionInfo in .NET because it needs globalization data. Ref: #8906 I can't reproduce locally, because it's ignored for me: [INCONCLUSIVE] InitRegionInfo : You can construct locale without countries at MonoTouchFixtures.Foundation.LocaleTest.InitRegionInfo() in [...]/xamarin-macios/tests/monotouch-test/Foundation/LocaleTest.cs:line 47 but this should fix this monotouch-test test failure (I'm guessing that 'IV' stands for 'Invariant', which is all the current .NET version ships with): MonoTouchFixtures.Foundation.LocaleTest [FAIL] InitRegionInfo : Name String lengths are both 2. Strings differ at index 0. Expected: "US" But was: "IV" -----------^ : at MonoTouchFixtures.Foundation.LocaleTest.InitRegionInfo() in /Users/builder/jenkins/workspace/xamarin-macios-pr-builder/tests/monotouch-test/Foundation/LocaleTest.cs:line 49 * [xharness] Enable the .NET tests when a file containing 'dotnet' is modified. (#9510) * [xharness] Enable the .NET tests when a file containing 'dotnet' is modified. This also required adding support for using regex as file names when selecting which tests to run. * Remove redundant dotnet prefix. * [xharness] Rename variables to match usage. * [dotnet] Use net5.0-[ios|tvos|watchos|macos] TargetFrameworks. (#9532) * [dotnet] Set TargetPlatformSupported when the right TargetPlatformIdentifier is used. * [dotnet] Generate a list of valid OS versions for each platform, and add it to the SupportedTargetPlatform item group. The generated files: https://gist.github.com/rolfbjarne/765c4e4b38b1b017380c9378d9666317 * [dotnet] Define and set the default platform version if it's not set in the TargetFramework variable. * [dotnet] Switch to using the new-style TargetFramework values. This includes bumping spouliot/Touch.Unit to get new-style TargetFramework values for Touch.Client. * xamarin/Touch.Unit@89afaf7 [Touch.Client] Use the right TargetFrameworks for watchOS and macOS as well. (#92) * xamarin/Touch.Unit@fd0e576 [Touch.Client] Use the right TargetFrameworks. (#91) * xamarin/Touch.Unit@40f47db [Touch.Client] Add a macOS and watchOS version for .NET. (#90) * xamarin/Touch.Unit@1d4b8c0 Add .gitignore for NuGet.config and global.json. (#89) * xamarin/Touch.Unit@49441f3 Call `mlaunch` instead of `mtouch` (#88) * xamarin/Touch.Unit@b157cf4 Fix a few markdown issues found by markdownlint. (#87) Diff: https://github.com/spouliot/Touch.Unit/compare/d7f55a61673e18ae5a8f9628600081a54b4e074c..89afaf7e05a942c87231cf5601b3a5b59640e218 * [dotnet] Document the script that generates the lists of the target platform versions a little bit better. * [dotnet] Make the [Platform]SupportedTargetPlatform variables public. This matches how Android and Windows do it: * dotnet/android#5007 * https://github.com/dotnet/sdk/blob/18ee4eac8b3abe6d554d2e0c39d8952da0f23ce5/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.WindowsSupportedTargetPlatforms.props * [xharness] Update the TargetFramework value when creating project variations. * [dotnet] Pass the Optimize flags from the extra bundler arguments to the linker configuration. (#9599) * [dotnet] Pass the Optimize flags from the extra bundler arguments to the linker configuration. Also call Application.InitializeCommon to initialize the application instance. The important part here is that InitializeCommon calls Optimizations.Initialize to compute the default optimizations. It also calls Set*ExceptionMode and sets the default EnableCoopGC value (so we don't need to call/set those anymore), and it does a few other initialization tasks which we don't need yet, but eventually will. And finally remember to parse the bundler arguments before using them in the dotnet build logic. How did this not cause problems before? 🤦 * [tests] Set the verbosity using the additional args instead of an internal variable. The internal _BundlerVerbosity variable is overwritten now (with the verbosity value from the additional args). * [xharness] Disable tvOS generation for the introspection/.NET test, it incorrect and needs fixing. * [dotnet-linker] Add OptimizeGeneratedCodeSubStep into the pipeline. (#9608) Fixes these linkall tests: Linker.Shared.OptimizeGeneratedCodeTest [FAIL] IsARM64CallingConvention : optimized: no ldsfld instruction Expected: 0 But was: 1 at Linker.Shared.BaseOptimizeGeneratedCodeTest.IsARM64CallingConvention() in /Users/rolf/work/maccore/main/xamarin-macios/tests/linker/BaseOptimizeGeneratedCodeTest.cs:line 527 [FAIL] SetupBlockPerfTest : At least 6x speedup Expected: greater than 6 But was: 1.0876440665344851d at Linker.Shared.BaseOptimizeGeneratedCodeTest.SetupBlockPerfTest() in /Users/rolf/work/maccore/main/xamarin-macios/tests/linker/BaseOptimizeGeneratedCodeTest.cs:line 120 And linkall is now green for .NET/Debug. * [xharness] Add support for adding PropertyGroups if none are applicable when adding a property. (#9616) Some .NET test projects (monotouch-test) require this to set properties for some test variations, and .NET projects are quite minimal, making it likely that they won't have a particular property that needs to be set/modified. This makes it possible to execute the various monotouch-test variations for .NET in xharness (some of the variations still fail though, so they're still ignored by default). * [tests] Ignore a few link sdk tests in .NET for now. (#9614) There are easier fish to fry right now, so implementing the linker support for these tests to pass (metadata reduction and code removal) can wait. This makes the link sdk/Release variation green for .NET. Ref: #9612 Ref: #9613 * [xharness] The linkall tests are green for .NET/Release now. (#9629) * [xharness] Skip the 'dont link / AssemblyBuildTarget: SDK framework (release)' variation by default for tvOS. Fixes #xamarin/maccore@2282. (#9659) This test variation ends up being too big (1.5 GB), so it doesn't install properly and the app crashes at startup. So just skip it. Fixes xamarin/maccore#2282. * [src] Build the .NET version of our product assemblies using a .NET 5 BCL. (#9637) * [src] Build the .NET version of our product assemblies using a .NET 5 BCL. We're not shipping the .NET product assemblies in any stable release, so we can use a preview version of the .NET 5 BCL. Also: * Add all the nuget feeds we need to the top-level NuGet.config, even for .NET 5/6, there shouldn't be any conflicts with stable feeds since we use exact version numbers. * Generate a top-level global5.json which is copied to every directory that needs a .NET 5 global.json (overriding the .NET 3.1 global.json in the root directory). * Use the expected dotnet binary during our local build. * [tests] Fix the bgen tests to use .NET 5. * [xharness] Set the current directory to the project directory when running .NET tests. This way we end up using the dotnet version that's configured in global.json for the tests. * [xharness] Fix typo in test case creating two identical test cases. (#9702) * [xharness] Use XmlReaderSettings to ignore stuff we don't care about when parsing xml. (#9703) At the very least this makes stepping through code while debugging much faster, since stepping through whitespace and comments is useless. * [xharness] Fix rendering human-readable results for parameterized tests. Fixes #9400. (#9704) We weren't probably parsing nested test-suite elements in the xml, so implement parsing of test-suite elements using recursion, which is easier and less error-prone (and turns out to work fine too). Also use TextReader/Writer instead of StreamReader/Writer in a few places. This makes it easier to write tests, since TextReader/Writer can use in-memory streams (no need to mess with temporary files). Fixes #9400. * [dotnet-linker] Add a CollectUnmarkedMembersStep that will keep linked away types around for the static registrar. (#9722) The static registrar may need access to types that have been linked away, so store unmarked types so that the static registrar can access them later. This also makes all the monotouch-test variations green, so enable them all. Fixes this monotouch-test when all optimizations are enabled: MonoTouchFixtures.ObjCRuntime.RegistrarTest [FAIL] TestProtocolRegistration : UIApplicationDelegate/17669 Expected: True But was: False at MonoTouchFixtures.ObjCRuntime.RegistrarTest.TestProtocolRegistration() in xamarin-macios/tests/monotouch-test/ObjCRuntime/RegistrarTest.cs:line 1350 * [xharness] Only run xammac variations if macOS tests are included. (#9729) This fixes a build error with a xammac test variation that is executed even if the macOS build is disabled. * [xharness] The dotnet version of introspection/iOS 10.3 works fine now. (#9728) * [xharness] Disable iOS 32-bit simulator tests, they don't work on Xcode 12+. (Re)fixes #xamarin/maccore@2284. (#9732) Fixes xamarin/maccore#2284. * Undo does changes that ship and we do not want to bring with us. * Fix issues that do not allow compilation. * Fix mtouch tests. * Ignore generated files. Co-authored-by: Rolf Bjarne Kvinge <[email protected]> Co-authored-by: Přemek Vysoký <[email protected]>
ICU support has landed: dotnet/runtime#49406. Bumping to latest .NET should get this (#10772), then we'll have to:
|
Only for iOS. IOW not for tvOS. Situation about Catalyst apps remains unclear (whether or not Apple will accept the use of the system ICU). |
and re-enable some tests for dotnet Part of the fix for xamarin#8906 Known Issues * [some Calendar are not the expected ones](dotnet/runtime#50859) * [No support for tvOS](dotnet/runtime#50912)
and re-enable some tests for dotnet Part of the fix for #8906 Known Issues * [some Calendar are not the expected ones](dotnet/runtime#50859) * [No support for tvOS (bitcode)](dotnet/runtime#48508)
tvOS supported ICU (back ported to preview 4) Catalyst does not (yet) and this is tracked with #11392 so we can close this one |
Steps to Reproduce
Launch any app.
Ref: dotnet/designs#102 (comment)
Expected Behavior
Successful launch
Actual Behavior
warning: CLR: Managed code called FailFast, saying "Infinite recursion during resource lookup within System.Private.CoreLib. This may be a bug in System.Private.CoreLib, or potentially in certain extensibility points such as assembly resolve events or CultureInfo names. Resource name: Arg_DllNotFoundException"
Workaround
Time estimate: once the runtime ships support for it: 2 days on our side to verify other cultures work and update tests.
The text was updated successfully, but these errors were encountered: