Skip to content

Commit 4362771

Browse files
Adding info to debug WindowsAlternateDataStreamOverwrite failure (#109399)
* adding logs in tests * adding some logs to test * remove using * use test output helper
1 parent 004d59a commit 4362771

File tree

2 files changed

+31
-0
lines changed
  • src/libraries/System.Runtime/tests/System.IO.FileSystem.Tests

2 files changed

+31
-0
lines changed

src/libraries/System.Runtime/tests/System.IO.FileSystem.Tests/File/Copy.cs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using System.Linq;
66
using System.Security.Cryptography;
77
using Xunit;
8+
using Xunit.Abstractions;
89

910
namespace System.IO.Tests
1011
{
@@ -236,6 +237,17 @@ public void WindowsAlternateDataStream(string defaultStream, string alternateStr
236237
File.WriteAllText(testFile2DefaultStream, "Bar");
237238
Assert.Throws<IOException>(() => Copy(testFile2DefaultStream, testFileAlternateStream));
238239

240+
try
241+
{
242+
Copy(testFile2DefaultStream, testFileAlternateStream);
243+
Assert.Fail();
244+
}
245+
catch (IOException e)
246+
{
247+
// Error code for "the file exists".
248+
Assert.Equal(-2147024816, e.HResult);
249+
}
250+
239251
// This always throws as you can't copy an alternate stream out (oddly)
240252
Assert.Throws<IOException>(() => Copy(testFileAlternateStream, testFile2));
241253
Assert.Throws<IOException>(() => Copy(testFileAlternateStream, testFile2 + alternateStream));
@@ -275,6 +287,12 @@ public void OverwriteCopyOntoLink()
275287

276288
public class File_Copy_str_str_b : File_Copy_str_str
277289
{
290+
private ITestOutputHelper _output;
291+
public File_Copy_str_str_b(ITestOutputHelper output)
292+
{
293+
_output = output;
294+
}
295+
278296
protected override void Copy(string source, string dest)
279297
{
280298
File.Copy(source, dest, false);
@@ -352,6 +370,8 @@ public void WindowsAlternateDataStreamOverwrite(string defaultStream, string alt
352370

353371
// Copy the default stream into an alternate stream
354372
File.WriteAllText(testFileDefaultStream, "Foo");
373+
Assert.Equal("Foo", File.ReadAllText(testFileDefaultStream));
374+
_output.WriteLine("Copying default stream into alternate stream.");
355375
Copy(testFileDefaultStream, testFileAlternateStream);
356376
Assert.Equal(testFile, testDirectory.GetFiles().Single().FullName);
357377
Assert.Equal("Foo", File.ReadAllText(testFileDefaultStream));
@@ -361,6 +381,11 @@ public void WindowsAlternateDataStreamOverwrite(string defaultStream, string alt
361381
string testFile2 = Path.Combine(testDirectory.FullName, GetTestFileName());
362382
string testFile2DefaultStream = testFile2 + defaultStream;
363383
File.WriteAllText(testFile2DefaultStream, "Bar");
384+
Assert.Equal("Bar", File.ReadAllText(testFile2DefaultStream));
385+
Assert.Equal("Foo", File.ReadAllText(testFileAlternateStream));
386+
_output.WriteLine($"Attributes for '{testFile2DefaultStream}': {File.GetAttributes(testFile2DefaultStream)}");
387+
_output.WriteLine($"Attributes for '{testFileAlternateStream}': {File.GetAttributes(testFileAlternateStream)}");
388+
_output.WriteLine("Overwriting alternate stream.");
364389
Copy(testFile2DefaultStream, testFileAlternateStream, overwrite: true);
365390
Assert.Equal("Foo", File.ReadAllText(testFileDefaultStream));
366391
Assert.Equal("Bar", File.ReadAllText(testFileAlternateStream));

src/libraries/System.Runtime/tests/System.IO.FileSystem.Tests/FileInfo/CopyTo.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// The .NET Foundation licenses this file to you under the MIT license.
33

44
using Xunit;
5+
using Xunit.Abstractions;
56

67
namespace System.IO.Tests
78
{
@@ -16,6 +17,11 @@ protected override void Copy(string source, string dest)
1617

1718
public class FileInfo_CopyTo_str_b : File_Copy_str_str_b
1819
{
20+
public FileInfo_CopyTo_str_b(ITestOutputHelper output)
21+
: base(output)
22+
{
23+
}
24+
1925
protected override void Copy(string source, string dest)
2026
{
2127
new FileInfo(source).CopyTo(dest, false);

0 commit comments

Comments
 (0)