diff --git a/test/Grpc.IntegrationTests/TracingIntegrationTests.cs b/test/Grpc.IntegrationTests/TracingIntegrationTests.cs index 6bd5c421..041c76de 100644 --- a/test/Grpc.IntegrationTests/TracingIntegrationTests.cs +++ b/test/Grpc.IntegrationTests/TracingIntegrationTests.cs @@ -1,6 +1,8 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. +using System.Collections; +using System.Collections.Concurrent; using System.Diagnostics; using FluentAssertions; using Microsoft.DurableTask.Client; @@ -16,7 +18,7 @@ public TracingIntegrationTests(ITestOutputHelper output, GrpcSidecarFixture side { } - static ActivityListener CreateListener(string[] sources, ICollection activities) + static ActivityListener CreateListener(string[] sources, ConcurrentBag activities) { ActivityListener listener = new(); @@ -39,7 +41,7 @@ static ActivityListener CreateListener(string[] sources, ICollection a [Fact] public async Task MultiTaskOrchestration() { - var activities = new List(); + var activities = new ConcurrentBag(); using var listener = CreateListener(ActivitySourceNames, activities); @@ -70,6 +72,9 @@ public async Task MultiTaskOrchestration() OrchestrationMetadata metadata = await server.Client.WaitForInstanceCompletionAsync(instanceId, getInputsAndOutputs: true, this.TimeoutToken); } + await server.DisposeAsync(); + listener.Dispose(); + var testActivity = activities.Single(a => a.Source == TestActivitySource && a.OperationName == "Test"); var createActivity = activities.Single(a => a.Source.Name == CoreActivitySourceName && a.OperationName == $"create_orchestration:{orchestratorName}"); @@ -148,7 +153,7 @@ public async Task MultiTaskOrchestration() [Fact] public async Task TaskOrchestrationWithActivityFailure() { - var activities = new List(); + var activities = new ConcurrentBag(); using var listener = CreateListener(ActivitySourceNames, activities); @@ -178,6 +183,9 @@ public async Task TaskOrchestrationWithActivityFailure() OrchestrationMetadata metadata = await server.Client.WaitForInstanceCompletionAsync(instanceId, getInputsAndOutputs: true, this.TimeoutToken); } + await server.DisposeAsync(); + listener.Dispose(); + var testActivity = activities.Single(a => a.Source == TestActivitySource && a.OperationName == "Test"); var createActivity = activities.Single(a => a.Source.Name == CoreActivitySourceName && a.OperationName == $"create_orchestration:{orchestratorName}"); @@ -248,7 +256,7 @@ public async Task TaskOrchestrationWithActivityFailure() [Fact] public async Task TaskWithSuborchestration() { - var activities = new List(); + var activities = new ConcurrentBag(); using var listener = CreateListener(ActivitySourceNames, activities); @@ -287,6 +295,9 @@ public async Task TaskWithSuborchestration() OrchestrationMetadata metadata = await server.Client.WaitForInstanceCompletionAsync(instanceId, getInputsAndOutputs: true, this.TimeoutToken); } + await server.DisposeAsync(); + listener.Dispose(); + var testActivity = activities.Single(a => a.Source == TestActivitySource && a.OperationName == "Test"); var createActivity = activities.Single(a => a.Source.Name == CoreActivitySourceName && a.OperationName == $"create_orchestration:{orchestratorName}"); @@ -356,7 +367,7 @@ public async Task TaskWithSuborchestration() [Fact] public async Task TaskWithSuborchestrationFailure() { - var activities = new List(); + var activities = new ConcurrentBag(); using var listener = CreateListener(ActivitySourceNames, activities); @@ -395,6 +406,9 @@ public async Task TaskWithSuborchestrationFailure() OrchestrationMetadata metadata = await server.Client.WaitForInstanceCompletionAsync(instanceId, getInputsAndOutputs: true, this.TimeoutToken); } + await server.DisposeAsync(); + listener.Dispose(); + var testActivity = activities.Single(a => a.Source == TestActivitySource && a.OperationName == "Test"); var createActivity = activities.Single(a => a.Source.Name == CoreActivitySourceName && a.OperationName == $"create_orchestration:{orchestratorName}"); @@ -467,7 +481,7 @@ public async Task TaskWithSuborchestrationFailure() [Fact] public async Task TaskOrchestrationWithSentEvent() { - var activities = new List(); + var activities = new ConcurrentBag(); using var listener = CreateListener(ActivitySourceNames, activities); @@ -499,6 +513,9 @@ public async Task TaskOrchestrationWithSentEvent() OrchestrationMetadata metadata = await server.Client.WaitForInstanceCompletionAsync(instanceId, getInputsAndOutputs: true, this.TimeoutToken); } + await server.DisposeAsync(); + listener.Dispose(); + var testActivity = activities.Single(a => a.Source == TestActivitySource && a.OperationName == "Test"); var createActivity = activities.Single(a => a.Source.Name == CoreActivitySourceName && a.OperationName == $"create_orchestration:{orchestratorName}"); @@ -547,7 +564,7 @@ public async Task TaskOrchestrationWithSentEvent() [Fact] public async Task TaskOrchestrationWithTimer() { - var activities = new List(); + var activities = new ConcurrentBag(); using var listener = CreateListener(ActivitySourceNames, activities); @@ -581,6 +598,9 @@ public async Task TaskOrchestrationWithTimer() OrchestrationMetadata metadata = await server.Client.WaitForInstanceCompletionAsync(instanceId, getInputsAndOutputs: true, this.TimeoutToken); } + await server.DisposeAsync(); + listener.Dispose(); + fireAt.Should().NotBe(default); var testActivity = activities.Single(a => a.Source == TestActivitySource && a.OperationName == "Test"); @@ -632,7 +652,7 @@ public async Task TaskOrchestrationWithTimer() [Fact] public async Task ClientRaiseEvent() { - var activities = new List(); + var activities = new ConcurrentBag(); using var listener = CreateListener(ActivitySourceNames, activities); @@ -664,6 +684,9 @@ await server.Client.WaitForInstanceCompletionAsync(instanceId, getInputsAndOutpu this.TimeoutToken); } + await server.DisposeAsync(); + listener.Dispose(); + var testActivity = activities.Single(a => a.Source == TestActivitySource && a.OperationName == "Test"); var raiseEventActivity = activities.Single(a =>