Skip to content

Commit 25dcec0

Browse files
authored
Feature/skipped progress (#7927)
1 parent bf0206d commit 25dcec0

File tree

19 files changed

+386
-368
lines changed

19 files changed

+386
-368
lines changed

src/Nethermind/Nethermind.Core.Test/MeasuredProgressTests.cs src/Nethermind/Nethermind.Core.Test/ProgressLoggerTests.cs

+65-31
Original file line numberDiff line numberDiff line change
@@ -2,63 +2,64 @@
22
// SPDX-License-Identifier: LGPL-3.0-only
33

44
using System;
5+
using Nethermind.Logging;
6+
using NSubstitute;
57
using NUnit.Framework;
68

79
namespace Nethermind.Core.Test;
810

9-
public class MeasuredProgressTests
11+
public class ProgressLoggerTests
1012
{
1113
[Test]
1214
public void Current_per_second_uninitialized()
1315
{
14-
MeasuredProgress measuredProgress = new();
15-
Assert.That(measuredProgress.CurrentPerSecond, Is.EqualTo(decimal.Zero));
16+
ProgressLogger progressLogger = CreateProgress();
17+
Assert.That(progressLogger.CurrentPerSecond, Is.EqualTo(decimal.Zero));
1618
}
1719

1820
[Test]
1921
public void Total_per_second_uninitialized()
2022
{
21-
MeasuredProgress measuredProgress = new();
22-
Assert.That(measuredProgress.TotalPerSecond, Is.EqualTo(decimal.Zero));
23+
ProgressLogger progressLogger = CreateProgress();
24+
Assert.That(progressLogger.TotalPerSecond, Is.EqualTo(decimal.Zero));
2325
}
2426

2527
[Test]
2628
public void Current_value_uninitialized()
2729
{
28-
MeasuredProgress measuredProgress = new();
29-
Assert.That(measuredProgress.CurrentValue, Is.EqualTo(0L));
30+
ProgressLogger progressLogger = CreateProgress();
31+
Assert.That(progressLogger.CurrentValue, Is.EqualTo(0L));
3032
}
3133

3234
[Test]
3335
public void Update_0L()
3436
{
35-
MeasuredProgress measuredProgress = new();
36-
measuredProgress.Update(0L);
37-
Assert.That(measuredProgress.CurrentValue, Is.EqualTo(0L));
37+
ProgressLogger progressLogger = CreateProgress();
38+
progressLogger.Update(0L);
39+
Assert.That(progressLogger.CurrentValue, Is.EqualTo(0L));
3840
}
3941

4042
[Test]
4143
public void Update_0L_total_per_second()
4244
{
43-
MeasuredProgress measuredProgress = new();
44-
measuredProgress.Update(0L);
45-
Assert.That(measuredProgress.TotalPerSecond, Is.EqualTo(0L));
45+
ProgressLogger progressLogger = CreateProgress();
46+
progressLogger.Update(0L);
47+
Assert.That(progressLogger.TotalPerSecond, Is.EqualTo(0L));
4648
}
4749

4850
[Test]
4951
public void Update_0L_current_per_second()
5052
{
51-
MeasuredProgress measuredProgress = new();
52-
measuredProgress.Update(0L);
53-
Assert.That(measuredProgress.CurrentPerSecond, Is.EqualTo(0L));
53+
ProgressLogger progressLogger = CreateProgress();
54+
progressLogger.Update(0L);
55+
Assert.That(progressLogger.CurrentPerSecond, Is.EqualTo(0L));
5456
}
5557

5658
[Test]
5759
[Retry(3)]
5860
public void Update_twice_total_per_second()
5961
{
60-
ManualTimestamper manualTimestamper = new();
61-
MeasuredProgress measuredProgress = new(manualTimestamper);
62+
(ProgressLogger measuredProgress, ManualTimestamper manualTimestamper) = CreateProgressWithManualTimestamper();
6263
measuredProgress.Update(0L);
6364
measuredProgress.SetMeasuringPoint();
6465
manualTimestamper.Add(TimeSpan.FromMilliseconds(100));
@@ -71,8 +72,7 @@ public void Update_twice_total_per_second()
7172
[Retry(3)]
7273
public void Update_twice_current_per_second()
7374
{
74-
ManualTimestamper manualTimestamper = new();
75-
MeasuredProgress measuredProgress = new(manualTimestamper);
75+
(ProgressLogger measuredProgress, ManualTimestamper manualTimestamper) = CreateProgressWithManualTimestamper();
7676
measuredProgress.Update(0L);
7777
measuredProgress.SetMeasuringPoint();
7878
manualTimestamper.Add(TimeSpan.FromMilliseconds(100));
@@ -84,8 +84,7 @@ public void Update_twice_current_per_second()
8484
[Test]
8585
public void Current_starting_from_non_zero()
8686
{
87-
ManualTimestamper manualTimestamper = new();
88-
MeasuredProgress measuredProgress = new(manualTimestamper);
87+
(ProgressLogger measuredProgress, ManualTimestamper manualTimestamper) = CreateProgressWithManualTimestamper();
8988
measuredProgress.Update(10L);
9089
measuredProgress.SetMeasuringPoint();
9190
manualTimestamper.Add(TimeSpan.FromMilliseconds(100));
@@ -96,8 +95,7 @@ public void Current_starting_from_non_zero()
9695
[Test]
9796
public void Update_thrice_result_per_second()
9897
{
99-
ManualTimestamper manualTimestamper = new();
100-
MeasuredProgress measuredProgress = new(manualTimestamper);
98+
(ProgressLogger measuredProgress, ManualTimestamper manualTimestamper) = CreateProgressWithManualTimestamper();
10199
measuredProgress.Update(0L);
102100
measuredProgress.SetMeasuringPoint();
103101
manualTimestamper.Add(TimeSpan.FromMilliseconds(100));
@@ -114,8 +112,7 @@ public void Update_thrice_result_per_second()
114112
[Test]
115113
public void After_ending_does_not_update_total_or_current()
116114
{
117-
ManualTimestamper manualTimestamper = new();
118-
MeasuredProgress measuredProgress = new(manualTimestamper);
115+
(ProgressLogger measuredProgress, ManualTimestamper manualTimestamper) = CreateProgressWithManualTimestamper();
119116
measuredProgress.Update(0L);
120117
measuredProgress.SetMeasuringPoint();
121118
manualTimestamper.Add(TimeSpan.FromMilliseconds(100));
@@ -138,15 +135,52 @@ public void After_ending_does_not_update_total_or_current()
138135
[Test]
139136
public void Has_ended_returns_true_when_ended()
140137
{
141-
MeasuredProgress measuredProgress = new();
142-
measuredProgress.MarkEnd();
143-
Assert.That(measuredProgress.HasEnded, Is.True);
138+
ProgressLogger progressLogger = CreateProgress();
139+
progressLogger.MarkEnd();
140+
Assert.That(progressLogger.HasEnded, Is.True);
144141
}
145142

146143
[Test]
147144
public void Has_ended_returns_false_when_ended()
148145
{
149-
MeasuredProgress measuredProgress = new();
150-
Assert.That(measuredProgress.HasEnded, Is.False);
146+
ProgressLogger progressLogger = CreateProgress();
147+
Assert.That(progressLogger.HasEnded, Is.False);
151148
}
149+
150+
[Test]
151+
public void Print_Progress()
152+
{
153+
ManualTimestamper manualTimestamper = new();
154+
ILogManager logManager = Substitute.For<ILogManager>();
155+
InterfaceLogger iLogger = Substitute.For<InterfaceLogger>();
156+
iLogger.IsInfo.Returns(true);
157+
ILogger logger = new(iLogger);
158+
logManager.GetClassLogger(Arg.Any<string>()).Returns(logger);
159+
160+
ProgressLogger measuredProgress = new("Progress", logManager, manualTimestamper);
161+
162+
measuredProgress.Reset(0L, 100);
163+
measuredProgress.SetMeasuringPoint();
164+
measuredProgress.IncrementSkipped(10);
165+
measuredProgress.CurrentQueued = 99;
166+
manualTimestamper.Add(TimeSpan.FromMilliseconds(100));
167+
measuredProgress.Update(1L);
168+
169+
measuredProgress.LogProgress();
170+
171+
iLogger.Received(1).Info("Progress 1 / 100 ( 0.99 %) [⡆ ] queue 99 | skipped 90 Blk/s | current 10 Blk/s");
172+
}
173+
174+
private ProgressLogger CreateProgress()
175+
{
176+
return new("", LimboLogs.Instance);
177+
}
178+
179+
private (ProgressLogger, ManualTimestamper) CreateProgressWithManualTimestamper()
180+
{
181+
ManualTimestamper manualTimestamper = new();
182+
ProgressLogger progressLogger = new("", LimboLogs.Instance, manualTimestamper);
183+
return (progressLogger, manualTimestamper);
184+
}
185+
152186
}

src/Nethermind/Nethermind.Core/MeasuredProgress.cs

-107
This file was deleted.

0 commit comments

Comments
 (0)