Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ public async Task IntegrationDisabled()
using var agent = EnvironmentHelper.GetMockAgent();
using (await RunSampleAndWaitForExit(agent, packageVersion: packageVersion))
{
var spans = await agent.WaitForSpansAsync(1, returnAllOperations: true);
var spans = await agent.WaitForSpansAsync(1, returnAllOperations: true, assertExpectedCount: false);

Assert.NotEmpty(spans);
spans.Where(s => s.Name.Equals(expectedOperationName)).Should().BeEmpty();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ public async Task IntegrationDisabled()
using var agent = EnvironmentHelper.GetMockAgent();
using (await RunSampleAndWaitForExit(agent, packageVersion: packageVersion))
{
var spans = await agent.WaitForSpansAsync(1, returnAllOperations: true);
var spans = await agent.WaitForSpansAsync(1, returnAllOperations: true, assertExpectedCount: false);

Assert.NotEmpty(spans);
spans.Where(s => s.Name.Equals(expectedOperationName)).Should().BeEmpty();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ public async Task IntegrationDisabled()
using var agent = EnvironmentHelper.GetMockAgent();
using (await RunSampleAndWaitForExit(agent, packageVersion: packageVersion))
{
var spans = await agent.WaitForSpansAsync(1, returnAllOperations: true);
var spans = await agent.WaitForSpansAsync(1, returnAllOperations: true, assertExpectedCount: false);

Assert.NotEmpty(spans);
spans.Where(s => s.Name.Equals(expectedOperationName)).Should().BeEmpty();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ public async Task SubmitsDsmMetrics(string packageVersion, int batch, int sameTh
#else
var expectedCount = 9;
#endif
var spans = await agent.WaitForSpansAsync(expectedCount);
var spans = await agent.WaitForSpansAsync(expectedCount, assertExpectedCount: false);
var sqsSpans = spans.Where(
span => span.Tags.TryGetValue("component", out var component) && component == "aws-sdk");

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ public async Task IntegrationDisabled()
using var telemetry = this.ConfigureTelemetry();
using var agent = EnvironmentHelper.GetMockAgent();
using var process = await RunSampleAndWaitForExit(agent, packageVersion: packageVersion);
var spans = await agent.WaitForSpansAsync(totalSpanCount, returnAllOperations: true);
var spans = await agent.WaitForSpansAsync(totalSpanCount, returnAllOperations: true, assertExpectedCount: false);

Assert.NotEmpty(spans);
spans.Where(s => s.Name.Equals(expectedOperationName)).Should().BeEmpty();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ public async Task IntegrationDisabled()
using var telemetry = this.ConfigureTelemetry();
using var agent = EnvironmentHelper.GetMockAgent();
using var process = await RunSampleAndWaitForExit(agent, packageVersion: packageVersion);
var spans = await agent.WaitForSpansAsync(totalSpanCount, returnAllOperations: true);
var spans = await agent.WaitForSpansAsync(totalSpanCount, returnAllOperations: true, assertExpectedCount: false);

Assert.NotEmpty(spans);
spans.Where(s => s.Name.Equals(expectedOperationName)).Should().BeEmpty();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ public async Task EventHubTrigger_SubmitsTrace()
expectedExitCode: ExpectedFuncKillExitCode))
{
// Wait for at least 7 spans (1 health-check ping + 6 meaningful).
var allSpans = await agent.WaitForSpansAsync(7, timeoutInMilliseconds: 30000, returnAllOperations: true);
var allSpans = await agent.WaitForSpansAsync(7, timeoutInMilliseconds: 30000, returnAllOperations: true, assertExpectedCount: false);
// Keep only the two relevant traces: the seeder trace and the trigger trace.
// The trigger trace is identified by the manual span, which is only created for
// the expected test event.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ public async Task SubmitsTraces(string packageVersion, string metadataSchemaVers
});
}

var spans = (await agent.WaitForSpansAsync(expected.Count))
var spans = (await agent.WaitForSpansAsync(expected.Count, assertExpectedCount: false))
.Where(s => s.Type == "elasticsearch")
.OrderBy(s => s.Start)
.ToList();
Expand Down Expand Up @@ -187,7 +187,7 @@ public async Task IntegrationDisabled()

using var agent = EnvironmentHelper.GetMockAgent();
using var process = await RunSampleAndWaitForExit(agent, packageVersion: packageVersion);
var spans = (await agent.WaitForSpansAsync(1)).Where(s => s.Type == "elasticsearch").ToList();
var spans = (await agent.WaitForSpansAsync(1, assertExpectedCount: false)).Where(s => s.Type == "elasticsearch").ToList();

Assert.Empty(spans);
await telemetry.AssertIntegrationDisabledAsync(IntegrationId.ElasticsearchNet);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ public async Task SubmitsTraces(string packageVersion, string metadataSchemaVers
}
}

var spans = (await agent.WaitForSpansAsync(expected.Count))
var spans = (await agent.WaitForSpansAsync(expected.Count, assertExpectedCount: false))
.Where(s => s.Type == "elasticsearch")
.OrderBy(s => s.Start)
.ToList();
Expand Down Expand Up @@ -204,7 +204,7 @@ public async Task IntegrationDisabled()
SetEnvironmentVariable($"DD_TRACE_{nameof(IntegrationId.ElasticsearchNet)}_ENABLED", "false");
using var agent = EnvironmentHelper.GetMockAgent();
using var process = await RunSampleAndWaitForExit(agent, packageVersion: packageVersion);
var spans = (await agent.WaitForSpansAsync(1)).Where(s => s.Type == "elasticsearch").ToList();
var spans = (await agent.WaitForSpansAsync(1, assertExpectedCount: false)).Where(s => s.Type == "elasticsearch").ToList();

Assert.Empty(spans);
await telemetry.AssertIntegrationDisabledAsync(IntegrationId.ElasticsearchNet);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ public async Task SubmitsTraces(string packageVersion, string metadataSchemaVers
}
}

var spans = (await agent.WaitForSpansAsync(expected.Count))
var spans = (await agent.WaitForSpansAsync(expected.Count, assertExpectedCount: false))
.Where(s => s.Type == "elasticsearch")
.OrderBy(s => s.Start)
.ToList();
Expand Down Expand Up @@ -192,7 +192,7 @@ public async Task IntegrationDisabled()
SetEnvironmentVariable($"DD_TRACE_{nameof(IntegrationId.ElasticsearchNet)}_ENABLED", "false");
using var agent = EnvironmentHelper.GetMockAgent();
using var process = await RunSampleAndWaitForExit(agent, packageVersion: packageVersion);
var spans = (await agent.WaitForSpansAsync(1)).Where(s => s.Type == "elasticsearch").ToList();
var spans = (await agent.WaitForSpansAsync(1, assertExpectedCount: false)).Where(s => s.Type == "elasticsearch").ToList();

Assert.Empty(spans);
await telemetry.AssertIntegrationDisabledAsync(IntegrationId.ElasticsearchNet);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -450,7 +450,7 @@ protected async Task RunIntegrationDisabled(string packageVersion)
{
using (processResult = await RunSampleAndWaitForExit(agent, packageVersion: packageVersion, aspNetCorePort: 0))
{
var spans = (await agent.WaitForSpansAsync(1, timeoutInMilliseconds: 500)).Where(s => s.Type == "grpc.request").ToList();
var spans = (await agent.WaitForSpansAsync(1, timeoutInMilliseconds: 500, assertExpectedCount: false)).Where(s => s.Type == "grpc.request").ToList();

Assert.Empty(spans);
await telemetry.AssertIntegrationDisabledAsync(IntegrationId.Grpc);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ protected async Task RunLogsInjectionTests(bool enableLogShipping, bool enable12
using (var agent = EnvironmentHelper.GetMockAgent())
using (var processResult = await RunSampleAndWaitForExit(agent, packageVersion: packageVersion, aspNetCorePort: 0))
{
var spans = await agent.WaitForSpansAsync(1, 2500);
var spans = await agent.WaitForSpansAsync(1, 2500, assertExpectedCount: false);
spans.Should().HaveCountGreaterOrEqualTo(1);

ValidateLogCorrelation(spans, _logFiles, expectedCorrelatedTraceCount, expectedCorrelatedSpanCount, packageVersion: packageVersion, use128Bits: enable128BitInjection);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,24 +51,29 @@ public async Task SubmitsTraces(string packageVersion, string metadataSchemaVers

var isExternalSpan = metadataSchemaVersion == "v0";
var clientSpanServiceName = isExternalSpan ? $"{EnvironmentHelper.FullSampleName}-mongodb" : EnvironmentHelper.FullSampleName;
var version = string.IsNullOrEmpty(packageVersion) ? null : new Version(packageVersion);
var snapshotSuffix = version switch
{
null => "2_7", // default is version 2.8.0
{ Major: >= 3 } => "3_0", // The default JSON serialization changed in 3.0
{ Major: 2, Minor: >= 15 } => "2_15", // A bunch of stuff was removed in 2.15.0
{ Major: 2, Minor: >= 7 } => "2_7", // default is version 2.8.0
{ Major: 2, Minor: >= 5 } => "2_5", // version 2.5 + 2.6 include additional info on queries compared to 2.2
{ Major: 2, Minor: >= 2 } => "2_2",
_ => "PRE_2_2"
};
var expectedSpanCount = snapshotSuffix switch
{
"PRE_2_2" => 7,
"2_15" or "3_0" => 19,
_ => 23
};

using var telemetry = this.ConfigureTelemetry();
using (var agent = EnvironmentHelper.GetMockAgent())
using (await RunSampleAndWaitForExit(agent, packageVersion: packageVersion))
{
var spans = await agent.WaitForSpansAsync(3, 500);

var version = string.IsNullOrEmpty(packageVersion) ? null : new Version(packageVersion);
var snapshotSuffix = version switch
{
null => "2_7", // default is version 2.8.0
{ Major: >= 3 } => "3_0", // The default JSON serialization changed in 3.0
{ Major: 2, Minor: >= 15 } => "2_15", // A bunch of stuff was removed in 2.15.0
{ Major: 2, Minor: >= 7 } => "2_7", // default is version 2.8.0
{ Major: 2, Minor: >= 5 } => "2_5", // version 2.5 + 2.6 include additional info on queries compared to 2.2
{ Major: 2, Minor: >= 2 } => "2_2",
_ => "PRE_2_2"
};
var spans = await agent.WaitForSpansAsync(expectedSpanCount, assertExpectedCount: false);

var settings = VerifyHelper.GetSpanVerifierSettings();
// mongo stamps the current framework version, and OS so normalise those
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ protected TraceAnnotationsTests(string sampleAppName, bool enableTelemetry, ITes
[SkippableFact]
public async Task SubmitTraces()
{
const int expectedSpanCount = 58;
const int expectedSpanCount = 68;
var ddTraceMethodsString = string.Empty;

foreach (var type in TestTypes)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ public async Task InjectsLogs()
using (var agent = EnvironmentHelper.GetMockAgent())
using (await RunSampleAndWaitForExit(agent, aspNetCorePort: 0))
{
var spans = await agent.WaitForSpansAsync(1, 2500);
var spans = await agent.WaitForSpansAsync(1, 2500, assertExpectedCount: false);
spans.Should().HaveCountGreaterOrEqualTo(1);

ValidateLogCorrelation(spans, _logFiles, expectedCorrelatedTraceCount, expectedCorrelatedSpanCount, use128Bits: false);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ public async Task InjectsLogsWhenEnabled()
using (var agent = MockTracerAgent.Create(Output, agentPort))
using (await RunSampleAndWaitForExit(agent))
{
var spans = await agent.WaitForSpansAsync(1, 2500);
var spans = await agent.WaitForSpansAsync(1, 2500, assertExpectedCount: false);
Assert.True(spans.Count >= 1, $"Expecting at least 1 span, only received {spans.Count}");

ValidateLogCorrelation(spans, _nlog205LogFileTests, expectedCorrelatedTraceCount, expectedCorrelatedSpanCount);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ public async Task InjectsLogsWhenEnabled()
using (var agent = MockTracerAgent.Create(Output, agentPort))
using (await RunSampleAndWaitForExit(agent))
{
var spans = await agent.WaitForSpansAsync(1, 2500);
var spans = await agent.WaitForSpansAsync(1, 2500, assertExpectedCount: false);
Assert.True(spans.Count >= 1, $"Expecting at least 1 span, only received {spans.Count}");

ValidateLogCorrelation(spans, _nlog40LogFileTests, expectedCorrelatedTraceCount, expectedCorrelatedSpanCount);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ public async Task InjectsLogsWhenEnabled()
using (var agent = MockTracerAgent.Create(Output, agentPort))
using (await RunSampleAndWaitForExit(agent))
{
var spans = await agent.WaitForSpansAsync(1, 2500);
var spans = await agent.WaitForSpansAsync(1, 2500, assertExpectedCount: false);
Assert.True(spans.Count >= 1, $"Expecting at least 1 span, only received {spans.Count}");

ValidateLogCorrelation(spans, _log200FileTests, expectedCorrelatedTraceCount, expectedCorrelatedSpanCount);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,11 @@ public async Task SubmitsTraces(bool deduplicationEnabled, string disableKey = "
SetEnvironmentVariable("DD_APPSEC_STACK_TRACE_ENABLED", "false");

int expectedSpanCount = instrumented ? (deduplicationEnabled ? 2 : 10) : 0;
if (onlyWeakHash)
{
expectedSpanCount /= 2;
}

var filename = deduplicationEnabled ? "iast.deduplication.deduplicated" : "iast.deduplication.duplicated";

if (!onlyWeakHash)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -555,7 +555,8 @@ protected async Task<IImmutableList<MockSpan>> GetWebServerSpans(
return await agent.WaitForSpansAsync(
count: expectedSpanCount,
minDateTime: testStart,
returnAllOperations: true);
returnAllOperations: true,
assertExpectedCount: false);
}

protected async Task AssertWebServerSpan(
Expand Down
4 changes: 3 additions & 1 deletion tracer/test/Datadog.Trace.TestHelpers/MockTracerAgent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,9 @@ public async Task<IImmutableList<MockSpan>> WaitForSpansAsync(

if (assertExpectedCount)
{
relevantSpans.Should().HaveCountGreaterThanOrEqualTo(count, "because we want to ensure that we don't timeout while waiting for spans from the mock tracer agent");
relevantSpans.Count(s => operationName is null || s.Name == operationName)
.Should()
.Be(count, "because we want to ensure that we don't timeout while waiting for spans from the mock tracer agent");
}

foreach (var headers in TraceRequestHeaders)
Expand Down
Loading