From 53901ba79875a8ab6c06b60faa2f650007d11690 Mon Sep 17 00:00:00 2001 From: Ivan Vilata-i-Balaguer Date: Tue, 3 May 2016 11:06:38 +0200 Subject: [PATCH] Configure all peers once to receive direct messages in network stress test Instead on adding a listener once per selected random destination peer. --- .../p2p/network/NetworkStressTest.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/network/src/test/java/io/bitsquare/p2p/network/NetworkStressTest.java b/network/src/test/java/io/bitsquare/p2p/network/NetworkStressTest.java index 903541b142..f9612bdaa5 100644 --- a/network/src/test/java/io/bitsquare/p2p/network/NetworkStressTest.java +++ b/network/src/test/java/io/bitsquare/p2p/network/NetworkStressTest.java @@ -186,6 +186,16 @@ public class NetworkStressTest { final CountDownLatch receivedDirectLatch = new CountDownLatch(nPeers); final Instant sendStart = Instant.now(); for (final P2PService srcPeer : peerNodes) { + // Make peer ready for receiving direct messages. + srcPeer.addDecryptedDirectMessageListener((decryptedMsgWithPubKey, peerNodeAddress) -> { + if (!(decryptedMsgWithPubKey.message instanceof StressTestDirectMessage)) + return; + StressTestDirectMessage directMessage = (StressTestDirectMessage) (decryptedMsgWithPubKey.message); + if ((directMessage.getData().equals("test/" + srcPeer.getAddress()))) + receivedDirectLatch.countDown(); + }); + + // Select a random peer and send a direct message to it. final int dstPeerIdx = (int) (Math.random() * nPeers); final P2PService dstPeer = peerNodes.get(dstPeerIdx); //print("sending direct message from peer %s to %s", srcPeer.getAddress(), dstPeer.getAddress()); @@ -202,13 +212,6 @@ public class NetworkStressTest { sentDirectLatch.countDown(); } }); - dstPeer.addDecryptedDirectMessageListener((decryptedMsgWithPubKey, peerNodeAddress) -> { - if (!(decryptedMsgWithPubKey.message instanceof StressTestDirectMessage)) - return; - StressTestDirectMessage directMessage = (StressTestDirectMessage) (decryptedMsgWithPubKey.message); - if ((directMessage.getData().equals("test/" + dstPeer.getAddress()))) - receivedDirectLatch.countDown(); - }); } // Since receiving is completed before sending is reported to be complete, // all receiving checks should end before all sending checks to avoid deadlocking.