Skip to content

System.Globalization.Nls.Tests.ToUpper/ToLower_netcore test failures in local environment #39522

@Gnbrkm41

Description

@Gnbrkm41

Description

Run tests in System.Globalization.Nls.Tests test project. The characters after the ToLower/ToUpper call do not change even though we expect it to change.

Test	Duration	Traits	Error Message
System.Globalization.Tests.TextInfoMiscTests.ToLower_Netcore Failed	24 ms		Assert.Equal() Failure            ↓ (pos 1) Expected: 𐐨 Actual:   𐐀            ↑ (pos 1)
System.Globalization.Tests.TextInfoMiscTests.ToUpper_netcore Failed	< 1 ms		Assert.Equal() Failure            ↓ (pos 1) Expected: 𐐀 Actual:   𐐨            ↑ (pos 1)

Please note that this only seems to happen when no culture name is specified (new CultureInfo("")); the exact same test but with the culture name en-US / fr / fr-FR passes fine.

private static readonly string [] s_cultureNames = new string[] { "", "en-US", "fr", "fr-FR" };
// ToLower_TestData_netcore has the data which is specific to netcore framework
public static IEnumerable<object[]> ToLower_TestData_netcore()
{
foreach (string cultureName in s_cultureNames)
{
// DESERT CAPITAL LETTER LONG I has a lower case variant (but not on Windows 7).
yield return new object[] { cultureName, "\U00010400", PlatformDetection.IsWindows7 ? "\U00010400" : "\U00010428" };
}
}

Configuration

  • Windows 10 Pro Insider Preview, Build 20170 (Also noticed in a couple previous flights), x64
  • Locale ko-KR
  • Ran with VS2019 16.7 P4, with ./build.cmd -vs System.Globalization -runtimeConfiguration Release -librariesConfiguration Debug

Other information

Possibly a Windows NLS issue, rather than the libraries implementation being wrong? Using builds from the dev channel probably doesn't help a lot 😅

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions