From f74d88cb338662c4624555051384037ed4431103 Mon Sep 17 00:00:00 2001 From: Ivan Vilata-i-Balaguer Date: Tue, 10 May 2016 12:00:18 +0200 Subject: [PATCH] Factor out peer node creation in network stress test This will be useful later when stopping and restarting peer nodes in mailbox send test. I added a getter to ``P2PService`` to get its public keyring. --- .../java/io/bitsquare/p2p/P2PService.java | 5 +++ .../p2p/network/NetworkStressTest.java | 38 ++++++++++--------- 2 files changed, 26 insertions(+), 17 deletions(-) diff --git a/network/src/main/java/io/bitsquare/p2p/P2PService.java b/network/src/main/java/io/bitsquare/p2p/P2PService.java index 45e63c82b1..13663007ca 100644 --- a/network/src/main/java/io/bitsquare/p2p/P2PService.java +++ b/network/src/main/java/io/bitsquare/p2p/P2PService.java @@ -775,6 +775,11 @@ public class P2PService implements SetupListener, MessageListener, ConnectionLis return peerManager; } + @VisibleForTesting + public KeyRing getKeyRing() { + return optionalKeyRing.get(); + } + /////////////////////////////////////////////////////////////////////////////////////////// // Private /////////////////////////////////////////////////////////////////////////////////////////// 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 68768d62d7..6538cb4f5e 100644 --- a/network/src/test/java/io/bitsquare/p2p/network/NetworkStressTest.java +++ b/network/src/test/java/io/bitsquare/p2p/network/NetworkStressTest.java @@ -140,24 +140,9 @@ public class NetworkStressTest { for (int p = 0; p < nPeers; p++) { // peer network port final int peerPort = Utils.findFreeSystemPort(); - - // peer data directories - final File peerDir = new File(testDataDir.toFile(), String.format("peer-%06d", p)); - final File peerTorDir = new File(peerDir, "tor"); - final File peerStorageDir = new File(peerDir, "db"); - final File peerKeysDir = new File(peerDir, "keys"); - //noinspection ResultOfMethodCallIgnored - peerKeysDir.mkdirs(); // needed for creating the key ring - - // peer keys - final KeyStorage peerKeyStorage = new KeyStorage(peerKeysDir); - final KeyRing peerKeyRing = new KeyRing(peerKeyStorage); - peerPKRings.add(peerKeyRing.getPubKeyRing()); - final EncryptionService peerEncryptionService = new EncryptionService(peerKeyRing); - // create, save and start peer - final P2PService peer = new P2PService(seedNodesRepository, peerPort, peerTorDir, useLocalhost, - REGTEST_NETWORK_ID, peerStorageDir, new Clock(), peerEncryptionService, peerKeyRing); + final P2PService peer = createPeerNode(p, peerPort, useLocalhost, seedNodesRepository); + peerPKRings.add(peer.getKeyRing().getPubKeyRing()); peerNodes.add(peer); peer.start(new PeerServiceListener(localServicesLatch, localServicesFailed)); } @@ -185,6 +170,25 @@ public class NetworkStressTest { return new NodeAddress("localhost", port); } + @NotNull + private P2PService createPeerNode(int n, int port, boolean useLocalhost, SeedNodesRepository seedNodesRepository) { + // peer data directories + final File peerDir = new File(testDataDir.toFile(), String.format("peer-%06d", n)); + final File peerTorDir = new File(peerDir, "tor"); + final File peerStorageDir = new File(peerDir, "db"); + final File peerKeysDir = new File(peerDir, "keys"); + //noinspection ResultOfMethodCallIgnored + peerKeysDir.mkdirs(); // needed for creating the key ring + + // peer keys + final KeyStorage peerKeyStorage = new KeyStorage(peerKeysDir); + final KeyRing peerKeyRing = new KeyRing(peerKeyStorage); + final EncryptionService peerEncryptionService = new EncryptionService(peerKeyRing); + + return new P2PService(seedNodesRepository, port, peerTorDir, useLocalhost, + REGTEST_NETWORK_ID, peerStorageDir, new Clock(), peerEncryptionService, peerKeyRing); + } + @After public void tearDown() throws InterruptedException, IOException { /** A barrier to wait for concurrent shutdown of services. */