Skip to content
Merged
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 @@ -578,7 +578,7 @@ public virtual async Task will_requeue_and_increment_attempts()
}

[Fact]
public async Task can_schedule_retry()
public virtual async Task can_schedule_retry()
{
throwOnAttempt<BadImageFormatException>(1);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,5 +40,22 @@ public override void BeforeEach()
}

[Collection("acceptance")]
[Trait("Category", "Flaky")]
public class InlinePulsarTransportComplianceTests : TransportCompliance<InlinePulsarTransportFixture>;
public class InlinePulsarTransportComplianceTests : TransportCompliance<InlinePulsarTransportFixture>
{
// GH-3763. These four are not flaky -- they fail deterministically, every run, in all three Pulsar
// compliance fixtures, with "No ending activity detected" / "Expected ending activity was not
// detected". They are the requeue, retry-scheduling and dead-letter behaviours the transport has not
// implemented. Skipping just these restores the other 55 tests in this file's three fixtures, which
// pass; the whole classes used to be excluded for them. See GH-3797.
[Fact(Skip = "Pulsar does not implement this compliance behaviour yet -- see GH-3797. Skipped rather than tagged Flaky: it fails deterministically, on every run, alone or in a suite.")]
public override Task will_requeue_and_increment_attempts() => Task.CompletedTask;

[Fact(Skip = "Pulsar does not implement this compliance behaviour yet -- see GH-3797. Skipped rather than tagged Flaky: it fails deterministically, on every run, alone or in a suite.")]
public override Task can_schedule_retry() => Task.CompletedTask;

[Fact(Skip = "Pulsar does not implement this compliance behaviour yet -- see GH-3797. Skipped rather than tagged Flaky: it fails deterministically, on every run, alone or in a suite.")]
public override Task will_move_to_dead_letter_queue_with_exception_match() => Task.CompletedTask;

[Fact(Skip = "Pulsar does not implement this compliance behaviour yet -- see GH-3797. Skipped rather than tagged Flaky: it fails deterministically, on every run, alone or in a suite.")]
public override Task will_move_to_dead_letter_queue_without_any_exception_match() => Task.CompletedTask;
}
Original file line number Diff line number Diff line change
Expand Up @@ -43,5 +43,22 @@ public override void BeforeEach()
}

[Collection("acceptance")]
[Trait("Category", "Flaky")]
public class PulsarTransportComplianceTests : TransportCompliance<PulsarTransportFixture>;
public class PulsarTransportComplianceTests : TransportCompliance<PulsarTransportFixture>
{
// GH-3763. These four are not flaky -- they fail deterministically, every run, in all three Pulsar
// compliance fixtures, with "No ending activity detected" / "Expected ending activity was not
// detected". They are the requeue, retry-scheduling and dead-letter behaviours the transport has not
// implemented. Skipping just these restores the other 55 tests in this file's three fixtures, which
// pass; the whole classes used to be excluded for them. See GH-3797.
[Fact(Skip = "Pulsar does not implement this compliance behaviour yet -- see GH-3797. Skipped rather than tagged Flaky: it fails deterministically, on every run, alone or in a suite.")]
public override Task will_requeue_and_increment_attempts() => Task.CompletedTask;

[Fact(Skip = "Pulsar does not implement this compliance behaviour yet -- see GH-3797. Skipped rather than tagged Flaky: it fails deterministically, on every run, alone or in a suite.")]
public override Task can_schedule_retry() => Task.CompletedTask;

[Fact(Skip = "Pulsar does not implement this compliance behaviour yet -- see GH-3797. Skipped rather than tagged Flaky: it fails deterministically, on every run, alone or in a suite.")]
public override Task will_move_to_dead_letter_queue_with_exception_match() => Task.CompletedTask;

[Fact(Skip = "Pulsar does not implement this compliance behaviour yet -- see GH-3797. Skipped rather than tagged Flaky: it fails deterministically, on every run, alone or in a suite.")]
public override Task will_move_to_dead_letter_queue_without_any_exception_match() => Task.CompletedTask;
}
21 changes: 16 additions & 5 deletions src/Transports/Pulsar/Wolverine.Pulsar.Tests/WithCloudEvents.cs
Original file line number Diff line number Diff line change
Expand Up @@ -48,16 +48,27 @@ public override void BeforeEach()
}

[Collection("acceptance")]
[Trait("Category", "Flaky")]
public class with_cloud_events : TransportCompliance<PulsarWithCloudEventsFixture>
{
// This test uses ErrorCausingMessage which contains a Dictionary<int, Exception>.
// Exception objects don't serialize/deserialize properly with System.Text.Json,
// which CloudEvents uses internally. The test message's Errors dictionary gets
// corrupted during serialization, causing the wrong exception type to be thrown.
// This is a test infrastructure limitation, not a CloudEvents functionality issue.
public override Task will_move_to_dead_letter_queue_with_exception_match()
{
return Task.CompletedTask;
}
//
// Skip rather than an empty body: an override that just returns Task.CompletedTask reports as a
// PASS, so the suite counted a test that never ran anything. GH-3763.
[Fact(Skip = "CloudEvents' System.Text.Json serialization corrupts ErrorCausingMessage's Dictionary<int, Exception>, so the wrong exception type is thrown -- a test-infrastructure limit, not a CloudEvents defect.")]
public override Task will_move_to_dead_letter_queue_with_exception_match() => Task.CompletedTask;

// GH-3763. Deterministic failures shared with the other two Pulsar compliance fixtures -- the
// requeue, retry-scheduling and dead-letter behaviours the transport has not implemented. See GH-3797.
[Fact(Skip = "Pulsar does not implement this compliance behaviour yet -- see GH-3797. Skipped rather than tagged Flaky: it fails deterministically, on every run, alone or in a suite.")]
public override Task will_requeue_and_increment_attempts() => Task.CompletedTask;

[Fact(Skip = "Pulsar does not implement this compliance behaviour yet -- see GH-3797. Skipped rather than tagged Flaky: it fails deterministically, on every run, alone or in a suite.")]
public override Task can_schedule_retry() => Task.CompletedTask;

[Fact(Skip = "Pulsar does not implement this compliance behaviour yet -- see GH-3797. Skipped rather than tagged Flaky: it fails deterministically, on every run, alone or in a suite.")]
public override Task will_move_to_dead_letter_queue_without_any_exception_match() => Task.CompletedTask;
}
Loading