Skip to content

Commit 7505d8f

Browse files
Fix unicode tests for ios/tvOs (#119459)
* temporarily enable failing test for debug * add comment explaining change * normalize both entries for comparison * add platform check
1 parent d822325 commit 7505d8f

File tree

4 files changed

+16
-6
lines changed

4 files changed

+16
-6
lines changed

src/libraries/Common/tests/System/IO/Compression/ZipTestHelper.cs

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -336,9 +336,22 @@ public static async Task DirsEqual(string actual, string expected)
336336

337337
public static void DirFileNamesEqual(string actual, string expected)
338338
{
339-
IOrderedEnumerable<string> actualEntries = Directory.EnumerateFileSystemEntries(actual, "*", SearchOption.AllDirectories).Order();
340-
IOrderedEnumerable<string> expectedEntries = Directory.EnumerateFileSystemEntries(expected, "*", SearchOption.AllDirectories).Order();
341-
AssertExtensions.SequenceEqual(expectedEntries.Select(Path.GetFileName).ToArray(), actualEntries.Select(Path.GetFileName).ToArray());
339+
IEnumerable<string> actualEntries = Directory.EnumerateFileSystemEntries(actual, "*", SearchOption.AllDirectories).Select(Path.GetFileName);
340+
IEnumerable<string> expectedEntries = Directory.EnumerateFileSystemEntries(expected, "*", SearchOption.AllDirectories).Select(Path.GetFileName);
341+
342+
if (PlatformDetection.IsiOS || PlatformDetection.IstvOS)
343+
{
344+
// iOS/tvOS filesystems use NFD by default for non-ASCII characters, so we normalize to NFC for cross-platform comparison
345+
actualEntries = actualEntries.Select(name => name.Normalize(NormalizationForm.FormC)).Order();
346+
expectedEntries = expectedEntries.Select(name => name.Normalize(NormalizationForm.FormC)).Order();
347+
}
348+
else
349+
{
350+
actualEntries = actualEntries.Order();
351+
expectedEntries = expectedEntries.Order();
352+
}
353+
354+
AssertExtensions.SequenceEqual(actualEntries.ToArray(), expectedEntries.ToArray());
342355
}
343356

344357
private static async Task ItemEqual(string[] actualList, List<FileData> expectedList, bool isFile)

src/libraries/System.IO.Compression.ZipFile/tests/ZipFile.Extract.Stream.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,6 @@ public async Task ExtractToDirectoryNormal_Unwritable_Unseekable(string file, st
7979

8080
[Theory]
8181
[MemberData(nameof(Get_Booleans_Data))]
82-
[ActiveIssue("https://github.com/dotnet/runtime/issues/72951", TestPlatforms.iOS | TestPlatforms.tvOS)]
8382
public async Task ExtractToDirectoryUnicode(bool async)
8483
{
8584
FileStream source = CreateFileStreamRead(async, zfile("unicode.zip"));

src/libraries/System.IO.Compression.ZipFile/tests/ZipFile.Extract.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ public async Task ExtractToDirectoryNull(bool async)
4444

4545
[Theory]
4646
[MemberData(nameof(Get_Booleans_Data))]
47-
[ActiveIssue("https://github.com/dotnet/runtime/issues/72951", TestPlatforms.iOS | TestPlatforms.tvOS)]
4847
public async Task ExtractToDirectoryUnicode(bool async)
4948
{
5049
string zipFileName = zfile("unicode.zip");

src/libraries/System.IO.Compression.ZipFile/tests/ZipFileExtensions.ZipArchive.Extract.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ public async Task ExtractToDirectoryExtension(bool async)
2424
await DisposeZipArchive(async, archive);
2525
}
2626

27-
[ActiveIssue("https://github.com/dotnet/runtime/issues/72951", TestPlatforms.iOS | TestPlatforms.tvOS)]
2827
[Theory]
2928
[MemberData(nameof(Get_Booleans_Data))]
3029
public async Task ExtractToDirectoryExtension_Unicode(bool async)

0 commit comments

Comments
 (0)