Skip to content

Commit 097b688

Browse files
Fix some flakey tests with concurrent eventing (Azure#47454)
1 parent 70d8a85 commit 097b688

File tree

2 files changed

+8
-11
lines changed

2 files changed

+8
-11
lines changed

sdk/storage/Azure.Storage.DataMovement/tests/Shared/TestEventsRaised.cs

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,19 +32,18 @@ public class TestEventsRaised : IDisposable
3232
private static readonly DataTransferStatus SkippedCompletedStatus = new DataTransferStatusInternal(DataTransferState.Completed, false, true);
3333
private static readonly DataTransferStatus FailedCompletedStatus = new DataTransferStatusInternal(DataTransferState.Completed, true, false);
3434

35-
public List<TransferItemFailedEventArgs> FailedEvents { get; internal set; }
36-
private object _failedEventsLock = new();
3735
public List<TransferStatusEventArgs> StatusEvents { get; internal set; }
38-
public List<TransferItemSkippedEventArgs> SkippedEvents { get; internal set; }
36+
public ConcurrentBag<TransferItemFailedEventArgs> FailedEvents { get; internal set; }
37+
public ConcurrentBag<TransferItemSkippedEventArgs> SkippedEvents { get; internal set; }
3938
public ConcurrentBag<TransferItemCompletedEventArgs> SingleCompletedEvents { get; internal set; }
4039

4140
private List<DataTransferOptions> _options;
4241

4342
private TestEventsRaised()
4443
{
45-
FailedEvents = new List<TransferItemFailedEventArgs>();
4644
StatusEvents = new List<TransferStatusEventArgs>();
47-
SkippedEvents = new List<TransferItemSkippedEventArgs>();
45+
FailedEvents = new ConcurrentBag<TransferItemFailedEventArgs>();
46+
SkippedEvents = new ConcurrentBag<TransferItemSkippedEventArgs>();
4847
SingleCompletedEvents = new ConcurrentBag<TransferItemCompletedEventArgs>();
4948
}
5049

@@ -85,10 +84,7 @@ public void Dispose()
8584

8685
private Task AppendFailedArg(TransferItemFailedEventArgs args)
8786
{
88-
lock (_failedEventsLock)
89-
{
90-
FailedEvents.Add(args);
91-
}
87+
FailedEvents.Add(args);
9288
return Task.CompletedTask;
9389
}
9490

sdk/storage/Azure.Storage.DataMovement/tests/TransferValidationTests.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// Licensed under the MIT License.
33

44
using System;
5+
using System.Linq;
56
using System.Threading;
67
using System.Threading.Tasks;
78
using NUnit.Framework;
@@ -58,7 +59,7 @@ public async Task LargeSingleFile_Fail_Source(
5859

5960
Assert.That(transfer.HasCompleted, Is.True);
6061
Assert.That(events.FailedEvents, Is.Not.Empty);
61-
Assert.That(events.FailedEvents[0].Exception.Message, Does.Contain("Intentionally failing"));
62+
Assert.That(events.FailedEvents.First().Exception.Message, Does.Contain("Intentionally failing"));
6263
}
6364

6465
[Test, Pairwise]
@@ -83,7 +84,7 @@ public async Task LargeSingleFile_Fail_Destination(
8384

8485
Assert.That(transfer.HasCompleted, Is.True);
8586
Assert.That(events.FailedEvents, Is.Not.Empty);
86-
Assert.That(events.FailedEvents[0].Exception.Message, Does.Contain("Intentionally failing"));
87+
Assert.That(events.FailedEvents.First().Exception.Message, Does.Contain("Intentionally failing"));
8788
}
8889
}
8990
}

0 commit comments

Comments
 (0)