From 11678927166d3b6f9ddc47e93f5ce3dee43023ce Mon Sep 17 00:00:00 2001 From: Matous Kozak Date: Thu, 2 Jan 2025 13:01:13 +0100 Subject: [PATCH 1/3] Fix CurrentCulture to be in specific format --- .../CultureInfo/CultureInfoCurrentCulture.cs | 3 +++ .../libs/System.Globalization.Native/pal_locale.m | 11 ++--------- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/src/libraries/System.Runtime/tests/System.Globalization.Tests/CultureInfo/CultureInfoCurrentCulture.cs b/src/libraries/System.Runtime/tests/System.Globalization.Tests/CultureInfo/CultureInfoCurrentCulture.cs index 9c34a6a128a873..5e6d7f55a7c8e0 100644 --- a/src/libraries/System.Runtime/tests/System.Globalization.Tests/CultureInfo/CultureInfoCurrentCulture.cs +++ b/src/libraries/System.Runtime/tests/System.Globalization.Tests/CultureInfo/CultureInfoCurrentCulture.cs @@ -42,6 +42,9 @@ public void CurrentCulture_Default_Not_Invariant() // culture. Assert.NotEqual(CultureInfo.CurrentCulture, CultureInfo.InvariantCulture); Assert.NotEqual(CultureInfo.CurrentUICulture, CultureInfo.InvariantCulture); + + // The current culture taken from default system culture should be specific + Assert.False(CultureInfo.CurrentCulture.IsNeutralCulture); } [Fact] diff --git a/src/native/libs/System.Globalization.Native/pal_locale.m b/src/native/libs/System.Globalization.Native/pal_locale.m index 6d13c807bec95d..a26cc318f14613 100644 --- a/src/native/libs/System.Globalization.Native/pal_locale.m +++ b/src/native/libs/System.Globalization.Native/pal_locale.m @@ -786,13 +786,6 @@ int32_t GlobalizationNative_GetLocalesNative(UChar* value, int32_t length) } } -static NSString* GetBaseName(NSString *localeIdentifier) -{ - NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:localeIdentifier]; - NSString *languageCode = [locale objectForKey:NSLocaleLanguageCode]; - return languageCode; -} - const char* GlobalizationNative_GetDefaultLocaleNameNative(void) { @autoreleasepool @@ -800,7 +793,7 @@ int32_t GlobalizationNative_GetLocalesNative(UChar* value, int32_t length) if (NSLocale.preferredLanguages.count > 0) { NSString *preferredLanguage = [NSLocale.preferredLanguages objectAtIndex:0]; - return strdup([GetBaseName(preferredLanguage) UTF8String]); + return strdup([preferredLanguage UTF8String]); } else { @@ -821,7 +814,7 @@ int32_t GlobalizationNative_GetLocalesNative(UChar* value, int32_t length) localeName = currentLocale.localeIdentifier; } - return strdup([GetBaseName(localeName) UTF8String]); + return strdup([localeName UTF8String]); } } } From ceb881d2bc81fbda2e3728b83bfe3f134f5d7954 Mon Sep 17 00:00:00 2001 From: Matous Kozak Date: Thu, 16 Jan 2025 16:51:18 +0000 Subject: [PATCH 2/3] disable the test for now --- .../CultureInfo/CultureInfoCurrentCulture.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/libraries/System.Runtime/tests/System.Globalization.Tests/CultureInfo/CultureInfoCurrentCulture.cs b/src/libraries/System.Runtime/tests/System.Globalization.Tests/CultureInfo/CultureInfoCurrentCulture.cs index 5e6d7f55a7c8e0..191f33c6398d33 100644 --- a/src/libraries/System.Runtime/tests/System.Globalization.Tests/CultureInfo/CultureInfoCurrentCulture.cs +++ b/src/libraries/System.Runtime/tests/System.Globalization.Tests/CultureInfo/CultureInfoCurrentCulture.cs @@ -44,7 +44,8 @@ public void CurrentCulture_Default_Not_Invariant() Assert.NotEqual(CultureInfo.CurrentUICulture, CultureInfo.InvariantCulture); // The current culture taken from default system culture should be specific - Assert.False(CultureInfo.CurrentCulture.IsNeutralCulture); + // TODO: https://github.com/dotnet/runtime/issues/111501 + //Assert.False(CultureInfo.CurrentCulture.IsNeutralCulture); } [Fact] From d657aba89f98ad84e730fd2aee1f9660e718fd64 Mon Sep 17 00:00:00 2001 From: Matous Kozak Date: Fri, 17 Jan 2025 17:40:32 +0000 Subject: [PATCH 3/3] move test to separate method --- .../CultureInfo/CultureInfoCurrentCulture.cs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/libraries/System.Runtime/tests/System.Globalization.Tests/CultureInfo/CultureInfoCurrentCulture.cs b/src/libraries/System.Runtime/tests/System.Globalization.Tests/CultureInfo/CultureInfoCurrentCulture.cs index 191f33c6398d33..f7fa352690c3f4 100644 --- a/src/libraries/System.Runtime/tests/System.Globalization.Tests/CultureInfo/CultureInfoCurrentCulture.cs +++ b/src/libraries/System.Runtime/tests/System.Globalization.Tests/CultureInfo/CultureInfoCurrentCulture.cs @@ -42,10 +42,15 @@ public void CurrentCulture_Default_Not_Invariant() // culture. Assert.NotEqual(CultureInfo.CurrentCulture, CultureInfo.InvariantCulture); Assert.NotEqual(CultureInfo.CurrentUICulture, CultureInfo.InvariantCulture); - - // The current culture taken from default system culture should be specific - // TODO: https://github.com/dotnet/runtime/issues/111501 - //Assert.False(CultureInfo.CurrentCulture.IsNeutralCulture); + } + + [Fact] + [PlatformSpecific(TestPlatforms.OSX | TestPlatforms.iOS | TestPlatforms.MacCatalyst | TestPlatforms.tvOS)] + [SkipOnPlatform(TestPlatforms.iOS | TestPlatforms.MacCatalyst | TestPlatforms.tvOS, "https://github.com/dotnet/runtime/issues/111501")] + public void CurrentCulture_Default_Is_Specific() + { + // On OSX-like platforms, the current culture taken from default system culture should be specific. + Assert.False(CultureInfo.CurrentCulture.IsNeutralCulture); } [Fact]