From 30535f1d2e0b80c0622e6e7d606bd0582cbcc1b2 Mon Sep 17 00:00:00 2001 From: Ko Chanhyuck Date: Mon, 7 Sep 2020 15:36:50 +0900 Subject: [PATCH] Add regression test for depth [skip changelog] --- Libplanet.Tests/Net/SwarmTest.cs | 44 ++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/Libplanet.Tests/Net/SwarmTest.cs b/Libplanet.Tests/Net/SwarmTest.cs index ab6a2a01f0..8f0244fc48 100644 --- a/Libplanet.Tests/Net/SwarmTest.cs +++ b/Libplanet.Tests/Net/SwarmTest.cs @@ -1992,6 +1992,50 @@ public async Task FindSpecificPeerAsyncFail() } } + [Fact(Timeout = Timeout)] + public async Task FindSpecificPeerAsyncDepthFail() + { + Swarm swarmA = _swarms[0]; + Swarm swarmB = _swarms[1]; + Swarm swarmC = _swarms[2]; + Swarm swarmD = _swarms[3]; + try + { + await StartAsync(swarmA); + await StartAsync(swarmB); + await StartAsync(swarmC); + await StartAsync(swarmD); + + await swarmA.AddPeersAsync(new Peer[] { swarmB.AsPeer }, null); + await swarmB.AddPeersAsync(new Peer[] { swarmC.AsPeer }, null); + await swarmC.AddPeersAsync(new Peer[] { swarmD.AsPeer }, null); + + BoundPeer foundPeer = await swarmA.FindSpecificPeerAsync( + swarmC.AsPeer.Address, + 1, + TimeSpan.FromMilliseconds(3000)); + + Assert.Equal(swarmC.AsPeer.Address, foundPeer.Address); + ((KademliaProtocol)swarmA.Protocol).ClearTable(); + Assert.Empty(swarmA.Peers); + await swarmA.AddPeersAsync(new Peer[] { swarmB.AsPeer }, null); + + foundPeer = await swarmA.FindSpecificPeerAsync( + swarmD.AsPeer.Address, + 1, + TimeSpan.FromMilliseconds(3000)); + + Assert.Null(foundPeer); + } + finally + { + await StopAsync(swarmA); + await StopAsync(swarmB); + await StopAsync(swarmC); + await StopAsync(swarmD); + } + } + [Fact(Timeout = Timeout)] public async Task DoNotFillMultipleTimes() {