From e6d897a5d10859cef8a4fe42d4b687fd5dbc0133 Mon Sep 17 00:00:00 2001 From: Martin Tomka Date: Tue, 11 Jul 2023 16:21:09 +0200 Subject: [PATCH 1/3] Fix unstable test --- .../Retry/RetryResilienceStrategyTests.cs | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/test/Polly.Core.Tests/Retry/RetryResilienceStrategyTests.cs b/test/Polly.Core.Tests/Retry/RetryResilienceStrategyTests.cs index 3e45f210564..602b2971833 100644 --- a/test/Polly.Core.Tests/Retry/RetryResilienceStrategyTests.cs +++ b/test/Polly.Core.Tests/Retry/RetryResilienceStrategyTests.cs @@ -157,21 +157,20 @@ public void Retry_Infinite_Respected() } [Fact] - public async Task RetryDelayGenerator_Respected() + public void RetryDelayGenerator_Respected() { - int retries = 0; - int generatedValues = 0; - + var retries = 0; + var generatedValues = 0; var delay = TimeSpan.FromMilliseconds(120); - var provider = TimeProvider.System; _options.ShouldHandle = _ => PredicateResult.True; _options.RetryCount = 3; _options.BackoffType = RetryBackoffType.Constant; - _options.OnRetry = _ => + _options.OnRetry = args => { retries++; + args.Arguments.RetryDelay.Should().Be(delay); return default; }; _options.RetryDelayGenerator = _ => @@ -180,16 +179,10 @@ public async Task RetryDelayGenerator_Respected() return new ValueTask(delay); }; - var before = provider.GetUtcNow(); - - var sut = CreateSut(provider); - await sut.ExecuteAsync(_ => default); + CreateSut(TimeProvider.System).Execute(_ => { }); retries.Should().Be(3); generatedValues.Should().Be(3); - - var after = provider.GetUtcNow(); - (after - before).Should().BeGreaterThanOrEqualTo(delay.Add(delay).Add(delay)); } [Fact] From 561d3ecdcaf46e2ef14102dd531e32faff5f9872 Mon Sep 17 00:00:00 2001 From: Martin Tomka Date: Wed, 12 Jul 2023 08:26:08 +0200 Subject: [PATCH 2/3] kill mutant --- src/Polly.Core/Retry/RetryResilienceStrategy.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Polly.Core/Retry/RetryResilienceStrategy.cs b/src/Polly.Core/Retry/RetryResilienceStrategy.cs index d8702c1df83..f4224aa1625 100644 --- a/src/Polly.Core/Retry/RetryResilienceStrategy.cs +++ b/src/Polly.Core/Retry/RetryResilienceStrategy.cs @@ -86,8 +86,7 @@ protected override async ValueTask> ExecuteCallbackAsync(Func await DisposeHelper.TryDisposeSafeAsync(resultValue, context.IsSynchronous).ConfigureAwait(context.ContinueOnCapturedContext); } - // stryker disable once equality : no means to test this - // stryker disable once boolean : no means to test this + // stryker disable once all : no means to test this if (delay > TimeSpan.Zero) { try From f87f6ffb480675d383844e2b1891f66d4f337218 Mon Sep 17 00:00:00 2001 From: Martin Tomka Date: Wed, 12 Jul 2023 09:09:28 +0200 Subject: [PATCH 3/3] fix test --- .../Hedging/HedgingResilienceStrategyTests.cs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/test/Polly.Core.Tests/Hedging/HedgingResilienceStrategyTests.cs b/test/Polly.Core.Tests/Hedging/HedgingResilienceStrategyTests.cs index ec17aae0205..11d25f337ea 100644 --- a/test/Polly.Core.Tests/Hedging/HedgingResilienceStrategyTests.cs +++ b/test/Polly.Core.Tests/Hedging/HedgingResilienceStrategyTests.cs @@ -285,7 +285,12 @@ public async Task ExecuteAsync_EnsurePrimaryTaskCancelled_Ok() // assert _timeProvider.Advance(TimeSpan.FromHours(2)); - cancelled.WaitOne(TimeSpan.FromSeconds(1)).Should().BeTrue(); + + await TestUtilities.AssertWithTimeoutAsync(() => + { + cancelled.WaitOne(TimeSpan.FromMilliseconds(10)).Should().BeTrue(); + }); + await task; }