diff --git a/ContinuousTests/ContinuousTest.cs b/ContinuousTests/ContinuousTest.cs index 80b914e..6818cc4 100644 --- a/ContinuousTests/ContinuousTest.cs +++ b/ContinuousTests/ContinuousTest.cs @@ -71,10 +71,9 @@ namespace ContinuousTests return node.UploadFile(fileStream); }); - if (response.StartsWith(UploadFailedMessage)) - { - return null; - } + if (string.IsNullOrEmpty(response)) return null; + if (response.StartsWith(UploadFailedMessage)) return null; + Log.Log($"Uploaded file. Received contentId: '{response}'."); return new ContentId(response); } diff --git a/ContinuousTests/Tests/ThresholdChecks.cs b/ContinuousTests/Tests/ThresholdChecks.cs index f1b8167..6ed6ea2 100644 --- a/ContinuousTests/Tests/ThresholdChecks.cs +++ b/ContinuousTests/Tests/ThresholdChecks.cs @@ -10,6 +10,8 @@ namespace ContinuousTests.Tests public override TimeSpan RunTestEvery => TimeSpan.FromSeconds(30); public override TestFailMode TestFailMode => TestFailMode.StopAfterFirstFailure; + private static readonly List previousBreaches = new List(); + [TestMoment(t: 0)] public void CheckAllThresholds() { @@ -22,7 +24,22 @@ namespace ContinuousTests.Tests var breaches = n.GetDebugThresholdBreaches(); if (breaches.breaches.Any()) { - Assert.Fail(string.Join(",", breaches.breaches.Select(b => FormatBreach(n, b)))); + var newBreaches = new List(); + foreach (var b in breaches.breaches) + { + if (!previousBreaches.Contains(b)) + { + newBreaches.Add(b); + previousBreaches.Add(b); + } + } + + if (newBreaches.Any()) + { + Assert.Fail(string.Join(",", newBreaches.Select(b => FormatBreach(n, b)))); + + Program.Cancellation.Cts.Cancel(); + } } } diff --git a/DistTestCore/OnlineCodexNode.cs b/DistTestCore/OnlineCodexNode.cs index 5a66fce..cd37fb4 100644 --- a/DistTestCore/OnlineCodexNode.cs +++ b/DistTestCore/OnlineCodexNode.cs @@ -75,10 +75,9 @@ namespace DistTestCore return CodexAccess.UploadFile(fileStream); }); - if (response.StartsWith(UploadFailedMessage)) - { - Assert.Fail("Node failed to store block."); - } + if (string.IsNullOrEmpty(response)) Assert.Fail("Received empty response."); + if (response.StartsWith(UploadFailedMessage)) Assert.Fail("Node failed to store block."); + var logReplacement = $"(CID:{file.Describe()})"; Log($"ContentId '{response}' is {logReplacement}"); lifecycle.Log.AddStringReplace(response, logReplacement);