diff --git a/src/libraries/System.IO.FileSystem/tests/File/Copy.cs b/src/libraries/System.IO.FileSystem/tests/File/Copy.cs index 643d2a98cf22a2..8b1f1c2d4e78cd 100644 --- a/src/libraries/System.IO.FileSystem/tests/File/Copy.cs +++ b/src/libraries/System.IO.FileSystem/tests/File/Copy.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; +using System.Security.Cryptography; using Xunit; namespace System.IO.Tests @@ -350,6 +351,21 @@ public void WindowsAlternateDataStreamOverwrite(string defaultStream, string alt Assert.Throws(() => Copy(testFileAlternateStream, testFile2, overwrite: true)); Assert.Throws(() => Copy(testFileAlternateStream, testFile2 + alternateStream, overwrite: true)); } + + [Fact] + public void DestinationFileIsTruncatedWhenItsLargerThanSourceFile() + { + string sourcePath = GetTestFilePath(); + string destPath = GetTestFilePath(); + + byte[] content = RandomNumberGenerator.GetBytes(1000); + File.WriteAllBytes(sourcePath, content); + File.WriteAllBytes(destPath, RandomNumberGenerator.GetBytes(content.Length * 2)); + + Copy(sourcePath, destPath, overwrite: true); + + Assert.Equal(content, File.ReadAllBytes(destPath)); + } } ///