[corlib] Import FileSystemInfo and family from CoreFX (#11342)
commit449e36638fc0b7188b2e9fbd9734a5b263ba9d22
authorAlexis Christoforides <alexis@thenull.net>
Fri, 7 Dec 2018 14:02:23 +0000 (7 09:02 -0500)
committerMarek Safar <marek.safar@gmail.com>
Fri, 7 Dec 2018 14:02:23 +0000 (7 15:02 +0100)
tree406dfeedb2105d285f77aa3b8c8fe0ad5ae65380
parent3643f411a098f34e5e9836f8c99fa6a751f54484
[corlib] Import FileSystemInfo and family from CoreFX (#11342)

Includes the following from System.IO:

* FileSystemInfo
* FileInfo
* DirectoryInfo
* Directory
* FileSystem
* Path `Join()` Span API

and all of System.IO.Enumeration namespace.

Adds about 1600 System.IO tests

Behavior changes:
* `File.Replace` now replaces files even if they are read-only (using the `rename` syscall on Unix)
* Directory enumeration is no longer stable in the way that many Mono tests expect
* Some changes in when/whether some representations of directories contain a trailing separator character
* Changes in which exceptions are thrown (sometimes these are platform-dependent on CoreFX)

Issues:
* https://github.com/dotnet/corefx/issues/33486
* https://github.com/dotnet/corefx/issues/33490

Part of #7246
70 files changed:
acceptance-tests/coreclr.mk
external/api-snapshot
external/corefx
mcs/class/Microsoft.Build.Tasks/Test/Microsoft.Build.Tasks/CreateItemTest.cs
mcs/class/Microsoft.Build.Tasks/Test/Microsoft.Build.Tasks/MakeDirTest.cs
mcs/class/Microsoft.Build.Tasks/Test/Microsoft.Build.Tasks/TestMessageLogger.cs
mcs/class/System.Runtime.Caching/Test/System.Runtime.Caching/HostFileChangeMonitorTest.cs
mcs/class/System/Test/Microsoft.CSharp/CSharpCodeProviderTest.cs
mcs/class/corlib/ReferenceSources/PathInternal.cs
mcs/class/corlib/System.IO.Enumeration/FileSystemEntry.NotSupported.cs [new file with mode: 0644]
mcs/class/corlib/System.IO.Enumeration/FileSystemEnumerator.NotSupported.cs [new file with mode: 0644]
mcs/class/corlib/System.IO.platformnotsupported.sources [new file with mode: 0644]
mcs/class/corlib/System.IO/Directory.cs [deleted file]
mcs/class/corlib/System.IO/DirectoryInfo.cs [deleted file]
mcs/class/corlib/System.IO/File.cs
mcs/class/corlib/System.IO/FileSystem.NotSupported.cs [new file with mode: 0644]
mcs/class/corlib/System.IO/FileSystemInfo.NotSupported.cs [new file with mode: 0644]
mcs/class/corlib/System.IO/Path.cs
mcs/class/corlib/System.IO/PathInternal.NotSupported.cs [new file with mode: 0644]
mcs/class/corlib/System/Environment.cs
mcs/class/corlib/Test/Microsoft.Win32/RegistryKeyTest.cs
mcs/class/corlib/Test/System.IO.IsolatedStorage/IsolatedStorageFileTest.cs
mcs/class/corlib/Test/System.IO.IsolatedStorage/IsolatedStorageTest.cs
mcs/class/corlib/Test/System.IO/DirectoryInfoTest.cs
mcs/class/corlib/Test/System.IO/DirectoryTest.cs
mcs/class/corlib/Test/System.IO/FileInfoTest.cs
mcs/class/corlib/Test/System.IO/FileSystemInfoTest.cs
mcs/class/corlib/Test/System.Security.AccessControl/FileSecurityTest.cs
mcs/class/corlib/corefx/Directory.cs [new file with mode: 0644]
mcs/class/corlib/corefx/DirectoryInfo.cs [new file with mode: 0644]
mcs/class/corlib/corefx/FileInfo.cs [new file with mode: 0644]
mcs/class/corlib/corefx/Interop.Libraries.Advapi32.cs [deleted file]
mcs/class/corlib/corefx/MonoLinqHelper.cs [new file with mode: 0644]
mcs/class/corlib/corefx/SR.cs
mcs/class/corlib/corlib.csproj
mcs/class/corlib/corlib.dll.sources
mcs/class/corlib/corlib_xtest.dll.sources
mcs/class/corlib/linux_build_corlib.dll.exclude.sources [new file with mode: 0644]
mcs/class/corlib/linux_build_corlib.dll.sources [new file with mode: 0644]
mcs/class/corlib/macos_build_corlib.dll.exclude.sources [new file with mode: 0644]
mcs/class/corlib/macos_build_corlib.dll.sources [new file with mode: 0644]
mcs/class/corlib/monotouch_corlib.dll.exclude.sources
mcs/class/corlib/monotouch_corlib.dll.sources
mcs/class/corlib/orbis_corlib_test.dll.exclude.sources
mcs/class/corlib/testing_aot_full_corlib.dll.exclude.sources [new file with mode: 0644]
mcs/class/corlib/testing_aot_full_corlib.dll.sources [new file with mode: 0644]
mcs/class/corlib/testing_aot_hybrid_corlib.dll.exclude.sources [new file with mode: 0644]
mcs/class/corlib/testing_aot_hybrid_corlib.dll.sources [new file with mode: 0644]
mcs/class/corlib/unix_build_corlib.dll.exclude.sources [new file with mode: 0644]
mcs/class/corlib/unix_build_corlib.dll.sources [new file with mode: 0644]
mcs/class/corlib/unix_net_4_x_corlib.dll.exclude.sources
mcs/class/corlib/unix_net_4_x_corlib.dll.sources
mcs/class/corlib/wasm_corlib_xtest.dll.exclude.sources
mcs/class/corlib/win32_build_corlib.dll.exclude.sources [new file with mode: 0644]
mcs/class/corlib/win32_build_corlib.dll.sources [new file with mode: 0644]
mcs/class/corlib/win32_net_4_x_corlib.dll.exclude.sources
mcs/class/corlib/win32_net_4_x_corlib.dll.sources
mcs/class/corlib/win32_net_4_x_corlib_test.dll.sources
mcs/class/corlib/winaot_corlib.dll.exclude.sources
mcs/class/referencesource/mscorlib/system/io/filesystemenumerable.cs
mcs/class/test-helpers/PlatformDetection.cs
mcs/tests/gtest-431-1-lib.cs [moved from mcs/tests/gtest-431-lib-1.cs with 100% similarity]
mcs/tests/gtest-431-2-lib.cs [moved from mcs/tests/gtest-431-lib-2.cs with 73% similarity]
mcs/tests/gtest-431.cs
mcs/tools/compiler-tester/compiler-tester.cs
mono/native/Makefile.am
mono/native/pal_config.h
packaging/MacSDK/fsharp.py
packaging/MacSDK/patches/fsharp-IsPathRooted-type-inference.patch [new file with mode: 0644]
scripts/ci/run-test-default.sh