diff options
author | Anirudh Agnihotry <anirudhagnihotry098@gmail.com> | 2018-07-12 20:19:39 +0300 |
---|---|---|
committer | Marek Safar <marek.safar@gmail.com> | 2019-02-01 12:49:13 +0300 |
commit | a005feb7962c684539a111977b584bf190032677 (patch) | |
tree | acf5d525cb38d58c620e2e46b2120f3025a21834 /src/System.IO.FileSystem/tests | |
parent | 2842b7d9d9a0b8b6000ee1ddc320a5187133442d (diff) |
MilliSecond Granualrity added to Copy operation on unix (#30996)
* test added
* Test Modified
* Adding Implementation
* tabs removed
* modifyingTest
* Fixing build on HFS
* Space around arithemetic operator
Diffstat (limited to 'src/System.IO.FileSystem/tests')
-rw-r--r-- | src/System.IO.FileSystem/tests/FileInfo/GetSetTimes.cs | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/src/System.IO.FileSystem/tests/FileInfo/GetSetTimes.cs b/src/System.IO.FileSystem/tests/FileInfo/GetSetTimes.cs index 60bffcfad2..a09ee642d0 100644 --- a/src/System.IO.FileSystem/tests/FileInfo/GetSetTimes.cs +++ b/src/System.IO.FileSystem/tests/FileInfo/GetSetTimes.cs @@ -105,6 +105,57 @@ namespace System.IO.Tests } [Fact] + public void CopyToMillisecondPresent() + { + FileInfo input = new FileInfo(Path.Combine(TestDirectory, GetTestFileName())); + input.Create().Dispose(); + + string driveFormat = new DriveInfo(input.DirectoryName).DriveFormat; + if (!driveFormat.Equals(HFS, StringComparison.InvariantCultureIgnoreCase)) + { + for (int i = 0; i < 5; i++) + { + if (input.LastWriteTime.Millisecond != 0) + break; + + // This case should only happen 1/1000 times, unless the OS/Filesystem does + // not support millisecond granularity. + + // If it's 1/1000, or low granularity, this may help: + Thread.Sleep(1234); + input = new FileInfo(Path.Combine(TestDirectory, GetTestFileName())); + input.Create().Dispose(); + } + + FileInfo output = new FileInfo(Path.Combine(TestDirectory, GetTestFileName(), input.Name)); + Assert.Equal(0, output.LastWriteTime.Millisecond); + output.Directory.Create(); + output = input.CopyTo(output.FullName, true); + + Assert.NotEqual(0, input.LastWriteTime.Millisecond); + Assert.NotEqual(0, output.LastWriteTime.Millisecond); + } + } + + [Fact] + [PlatformSpecific(TestPlatforms.OSX)] + public void CopyToMillisecondPresent_HFS() + { + FileInfo input = new FileInfo(Path.Combine(TestDirectory, GetTestFileName())); + input.Create().Dispose(); + FileInfo output = new FileInfo(Path.Combine(TestDirectory, GetTestFileName(), input.Name)); + + string driveFormat = new DriveInfo(input.DirectoryName).DriveFormat; + if (driveFormat.Equals(HFS, StringComparison.InvariantCultureIgnoreCase)) + { + output.Directory.Create(); + output = input.CopyTo(output.FullName, true); + Assert.Equal(0, input.LastWriteTime.Millisecond); + Assert.Equal(0, output.LastWriteTime.Millisecond); + } + } + + [Fact] public void DeleteAfterEnumerate_TimesStillSet() { // When enumerating we populate the state as we already have it. |