Skip to content

Commit f0f09dc

Browse files
committed
ETCM-446: Test the priority function.
1 parent c662b6b commit f0f09dc

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

src/test/scala/io/iohk/ethereum/network/PeerManagerSpec.scala

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -417,6 +417,33 @@ class PeerManagerSpec
417417
}
418418
}
419419

420+
behavior of "prunePriority"
421+
422+
it should "calculate priority as count(responses)/lifetime" in {
423+
import PeerStatisticsActor.Stat
424+
val now = System.currentTimeMillis
425+
426+
def stat(responses: Int, firstSeen: FiniteDuration, lastSeen: FiniteDuration) =
427+
Stat.empty.copy(
428+
responsesReceived = responses,
429+
firstSeenTimeMillis = Some(now - firstSeen.toMillis),
430+
lastSeenTimeMillis = Some(now - lastSeen.toMillis)
431+
)
432+
433+
val stats = Map(
434+
PeerId("Alice") -> stat(responses = 50, firstSeen = 1.hour, lastSeen = 50.minutes),
435+
PeerId("Bob") -> stat(responses = 100, firstSeen = 12.hours, lastSeen = 1.minute),
436+
PeerId("Charlie") -> stat(responses = 0, firstSeen = 20.hours, lastSeen = 5.minute).copy(requestsReceived = 1000)
437+
)
438+
439+
val priority = PeerManagerActor.prunePriority(stats, now) _
440+
441+
priority(PeerId("Alice")) shouldBe (50.0 / 1.hour.toMillis) +- 0.001
442+
priority(PeerId("Alice")) shouldBe >(priority(PeerId("Bob")))
443+
priority(PeerId("Charlie")) shouldBe 0.0
444+
priority(PeerId("Dave")) shouldBe 0.0
445+
}
446+
420447
trait ConnectedPeersFixture {
421448
case class TestConfig(
422449
minOutgoingPeers: Int = 10,

0 commit comments

Comments
 (0)