mirror of
https://github.com/haveno-dex/haveno.git
synced 2025-07-26 16:35:18 -04:00
Repeat TomP2PTests tests using @Repeat vs. loops
This commit is contained in:
parent
1a92b05bf4
commit
640a736ec3
1 changed files with 110 additions and 154 deletions
|
@ -19,6 +19,7 @@ package io.bitsquare.msg;
|
||||||
|
|
||||||
import io.bitsquare.network.BootstrapNode;
|
import io.bitsquare.network.BootstrapNode;
|
||||||
import io.bitsquare.network.Node;
|
import io.bitsquare.network.Node;
|
||||||
|
import io.bitsquare.util.Repeat;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
|
@ -100,8 +101,8 @@ public class TomP2PTests {
|
||||||
// Need to observe if it can have some side effects.
|
// Need to observe if it can have some side effects.
|
||||||
private static final boolean CACHE_CLIENTS = true;
|
private static final boolean CACHE_CLIENTS = true;
|
||||||
|
|
||||||
// Use that to stress test with repeated run of the test method body
|
// Use to stress tests by repeating them
|
||||||
private static final int STRESS_TEST_LOOP_COUNT = 1;
|
private static final int STRESS_TEST_COUNT = 1;
|
||||||
|
|
||||||
// need to be static to keep them during tests
|
// need to be static to keep them during tests
|
||||||
private final static Map<String, Peer> cachedPeers = new HashMap<>();
|
private final static Map<String, Peer> cachedPeers = new HashMap<>();
|
||||||
|
@ -113,13 +114,13 @@ public class TomP2PTests {
|
||||||
private ConnectionType resolvedConnectionType;
|
private ConnectionType resolvedConnectionType;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void configure() {
|
public void setUp() {
|
||||||
client1Port = getNewRandomPort();
|
client1Port = getNewRandomPort();
|
||||||
client2Port = getNewRandomPort();
|
client2Port = getNewRandomPort();
|
||||||
}
|
}
|
||||||
|
|
||||||
@After
|
@After
|
||||||
public void shutdown() {
|
public void tearDown() {
|
||||||
if (!CACHE_CLIENTS) {
|
if (!CACHE_CLIENTS) {
|
||||||
if (peer1DHT != null)
|
if (peer1DHT != null)
|
||||||
peer1DHT.shutdown().awaitUninterruptibly();
|
peer1DHT.shutdown().awaitUninterruptibly();
|
||||||
|
@ -129,68 +130,46 @@ public class TomP2PTests {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@Repeat(STRESS_TEST_COUNT)
|
||||||
public void bootstrapInUnknownMode() throws Exception {
|
public void bootstrapInUnknownMode() throws Exception {
|
||||||
for (int i = 0; i < STRESS_TEST_LOOP_COUNT; i++) {
|
|
||||||
configure();
|
|
||||||
if (FORCED_CONNECTION_TYPE == ConnectionType.UNKNOWN)
|
if (FORCED_CONNECTION_TYPE == ConnectionType.UNKNOWN)
|
||||||
assertNotNull(bootstrapInUnknownMode("node_1", client1Port));
|
assertNotNull(bootstrapInUnknownMode("node_1", client1Port));
|
||||||
|
|
||||||
shutdown();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@Repeat(STRESS_TEST_COUNT)
|
||||||
public void testBootstrapDirectConnection() throws Exception {
|
public void testBootstrapDirectConnection() throws Exception {
|
||||||
for (int i = 0; i < STRESS_TEST_LOOP_COUNT; i++) {
|
|
||||||
configure();
|
|
||||||
if (FORCED_CONNECTION_TYPE == ConnectionType.DIRECT)
|
if (FORCED_CONNECTION_TYPE == ConnectionType.DIRECT)
|
||||||
assertNotNull(bootstrapDirectConnection("node_1", client1Port));
|
assertNotNull(bootstrapDirectConnection("node_1", client1Port));
|
||||||
|
|
||||||
shutdown();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@Repeat(STRESS_TEST_COUNT)
|
||||||
public void testBootstrapWithPortForwarding() throws Exception {
|
public void testBootstrapWithPortForwarding() throws Exception {
|
||||||
for (int i = 0; i < STRESS_TEST_LOOP_COUNT; i++) {
|
|
||||||
configure();
|
|
||||||
if (FORCED_CONNECTION_TYPE == ConnectionType.NAT)
|
if (FORCED_CONNECTION_TYPE == ConnectionType.NAT)
|
||||||
assertNotNull(bootstrapWithPortForwarding("node_1", client1Port));
|
assertNotNull(bootstrapWithPortForwarding("node_1", client1Port));
|
||||||
|
|
||||||
shutdown();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@Repeat(STRESS_TEST_COUNT)
|
||||||
public void testBootstrapInRelayMode() throws Exception {
|
public void testBootstrapInRelayMode() throws Exception {
|
||||||
for (int i = 0; i < STRESS_TEST_LOOP_COUNT; i++) {
|
|
||||||
configure();
|
|
||||||
if (FORCED_CONNECTION_TYPE == ConnectionType.RELAY)
|
if (FORCED_CONNECTION_TYPE == ConnectionType.RELAY)
|
||||||
assertNotNull(bootstrapInRelayMode("node_1", client1Port));
|
assertNotNull(bootstrapInRelayMode("node_1", client1Port));
|
||||||
|
|
||||||
shutdown();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@Repeat(STRESS_TEST_COUNT)
|
||||||
public void testPut() throws Exception {
|
public void testPut() throws Exception {
|
||||||
for (int i = 0; i < STRESS_TEST_LOOP_COUNT; i++) {
|
|
||||||
configure();
|
|
||||||
|
|
||||||
peer1DHT = getDHTPeer("node_1", client1Port);
|
peer1DHT = getDHTPeer("node_1", client1Port);
|
||||||
FuturePut futurePut = peer1DHT.put(Number160.createHash("key")).data(new Data("hallo")).start();
|
FuturePut futurePut = peer1DHT.put(Number160.createHash("key")).data(new Data("hallo")).start();
|
||||||
futurePut.awaitUninterruptibly();
|
futurePut.awaitUninterruptibly();
|
||||||
if (shouldEvaluateSuccess())
|
if (shouldEvaluateSuccess())
|
||||||
assertTrue(futurePut.isSuccess());
|
assertTrue(futurePut.isSuccess());
|
||||||
|
|
||||||
shutdown();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@Repeat(STRESS_TEST_COUNT)
|
||||||
public void testPutGet() throws Exception {
|
public void testPutGet() throws Exception {
|
||||||
for (int i = 0; i < STRESS_TEST_LOOP_COUNT; i++) {
|
|
||||||
configure();
|
|
||||||
peer1DHT = getDHTPeer("node_1", client1Port);
|
peer1DHT = getDHTPeer("node_1", client1Port);
|
||||||
FuturePut futurePut = peer1DHT.put(Number160.createHash("key")).data(new Data("hallo")).start();
|
FuturePut futurePut = peer1DHT.put(Number160.createHash("key")).data(new Data("hallo")).start();
|
||||||
futurePut.awaitUninterruptibly();
|
futurePut.awaitUninterruptibly();
|
||||||
|
@ -204,15 +183,11 @@ public class TomP2PTests {
|
||||||
if (shouldEvaluateSuccess())
|
if (shouldEvaluateSuccess())
|
||||||
assertTrue(futureGet.isSuccess());
|
assertTrue(futureGet.isSuccess());
|
||||||
assertEquals("hallo", futureGet.data().object());
|
assertEquals("hallo", futureGet.data().object());
|
||||||
|
|
||||||
shutdown();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@Repeat(STRESS_TEST_COUNT)
|
||||||
public void testAdd() throws Exception {
|
public void testAdd() throws Exception {
|
||||||
for (int i = 0; i < STRESS_TEST_LOOP_COUNT; i++) {
|
|
||||||
configure();
|
|
||||||
peer1DHT = getDHTPeer("node_1", client1Port);
|
peer1DHT = getDHTPeer("node_1", client1Port);
|
||||||
FuturePut futurePut1 = peer1DHT.add(Number160.createHash("locationKey")).data(new Data("hallo1")).start();
|
FuturePut futurePut1 = peer1DHT.add(Number160.createHash("locationKey")).data(new Data("hallo1")).start();
|
||||||
futurePut1.awaitUninterruptibly();
|
futurePut1.awaitUninterruptibly();
|
||||||
|
@ -223,15 +198,11 @@ public class TomP2PTests {
|
||||||
futurePut2.awaitUninterruptibly();
|
futurePut2.awaitUninterruptibly();
|
||||||
if (shouldEvaluateSuccess())
|
if (shouldEvaluateSuccess())
|
||||||
assertTrue(futurePut2.isSuccess());
|
assertTrue(futurePut2.isSuccess());
|
||||||
|
|
||||||
shutdown();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@Repeat(STRESS_TEST_COUNT)
|
||||||
public void testAddGet() throws Exception {
|
public void testAddGet() throws Exception {
|
||||||
for (int i = 0; i < STRESS_TEST_LOOP_COUNT; i++) {
|
|
||||||
configure();
|
|
||||||
peer1DHT = getDHTPeer("node_1", client1Port);
|
peer1DHT = getDHTPeer("node_1", client1Port);
|
||||||
FuturePut futurePut1 = peer1DHT.add(Number160.createHash("locationKey")).data(new Data("hallo1")).start();
|
FuturePut futurePut1 = peer1DHT.add(Number160.createHash("locationKey")).data(new Data("hallo1")).start();
|
||||||
futurePut1.awaitUninterruptibly();
|
futurePut1.awaitUninterruptibly();
|
||||||
|
@ -253,15 +224,11 @@ public class TomP2PTests {
|
||||||
assertTrue(futureGet.dataMap().values().contains(new Data("hallo1")));
|
assertTrue(futureGet.dataMap().values().contains(new Data("hallo1")));
|
||||||
assertTrue(futureGet.dataMap().values().contains(new Data("hallo2")));
|
assertTrue(futureGet.dataMap().values().contains(new Data("hallo2")));
|
||||||
assertTrue(futureGet.dataMap().values().size() == 2);
|
assertTrue(futureGet.dataMap().values().size() == 2);
|
||||||
|
|
||||||
shutdown();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@Repeat(STRESS_TEST_COUNT)
|
||||||
public void testAddRemove() throws Exception {
|
public void testAddRemove() throws Exception {
|
||||||
for (int i = 0; i < STRESS_TEST_LOOP_COUNT; i++) {
|
|
||||||
configure();
|
|
||||||
peer1DHT = getDHTPeer("node_1", client1Port);
|
peer1DHT = getDHTPeer("node_1", client1Port);
|
||||||
FuturePut futurePut1 = peer1DHT.add(Number160.createHash("locationKey")).data(new Data("hallo1")).start();
|
FuturePut futurePut1 = peer1DHT.add(Number160.createHash("locationKey")).data(new Data("hallo1")).start();
|
||||||
futurePut1.awaitUninterruptibly();
|
futurePut1.awaitUninterruptibly();
|
||||||
|
@ -291,9 +258,6 @@ public class TomP2PTests {
|
||||||
|
|
||||||
assertTrue(futureGet.dataMap().values().contains(new Data("hallo2")));
|
assertTrue(futureGet.dataMap().values().contains(new Data("hallo2")));
|
||||||
assertTrue(futureGet.dataMap().values().size() == 1);
|
assertTrue(futureGet.dataMap().values().size() == 1);
|
||||||
|
|
||||||
shutdown();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -301,9 +265,8 @@ public class TomP2PTests {
|
||||||
// So if both clients are behind NAT they cannot send direct message to each other.
|
// So if both clients are behind NAT they cannot send direct message to each other.
|
||||||
// That will probably be fixed in a future version of TomP2P
|
// That will probably be fixed in a future version of TomP2P
|
||||||
@Test
|
@Test
|
||||||
|
@Repeat(STRESS_TEST_COUNT)
|
||||||
public void testSendDirectBetweenLocalPeers() throws Exception {
|
public void testSendDirectBetweenLocalPeers() throws Exception {
|
||||||
for (int i = 0; i < STRESS_TEST_LOOP_COUNT; i++) {
|
|
||||||
configure();
|
|
||||||
if (FORCED_CONNECTION_TYPE != ConnectionType.NAT && resolvedConnectionType != ConnectionType.NAT) {
|
if (FORCED_CONNECTION_TYPE != ConnectionType.NAT && resolvedConnectionType != ConnectionType.NAT) {
|
||||||
peer1DHT = getDHTPeer("node_1", client1Port);
|
peer1DHT = getDHTPeer("node_1", client1Port);
|
||||||
peer2DHT = getDHTPeer("node_2", client2Port);
|
peer2DHT = getDHTPeer("node_2", client2Port);
|
||||||
|
@ -331,17 +294,13 @@ public class TomP2PTests {
|
||||||
log.debug(futureDirect.object().toString());
|
log.debug(futureDirect.object().toString());
|
||||||
assertEquals("pong", futureDirect.object());
|
assertEquals("pong", futureDirect.object());
|
||||||
}
|
}
|
||||||
|
|
||||||
shutdown();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// That test should always succeed as we use the server seed node as receiver.
|
// That test should always succeed as we use the server seed node as receiver.
|
||||||
// A node can send a message to another peer which is not in the same LAN.
|
// A node can send a message to another peer which is not in the same LAN.
|
||||||
@Test
|
@Test
|
||||||
|
@Repeat(STRESS_TEST_COUNT)
|
||||||
public void testSendDirectToSeedNode() throws Exception {
|
public void testSendDirectToSeedNode() throws Exception {
|
||||||
for (int i = 0; i < STRESS_TEST_LOOP_COUNT; i++) {
|
|
||||||
configure();
|
|
||||||
peer1DHT = getDHTPeer("node_1", client1Port);
|
peer1DHT = getDHTPeer("node_1", client1Port);
|
||||||
|
|
||||||
FuturePeerConnection futurePeerConnection =
|
FuturePeerConnection futurePeerConnection =
|
||||||
|
@ -350,9 +309,6 @@ public class TomP2PTests {
|
||||||
futureDirect.awaitUninterruptibly();
|
futureDirect.awaitUninterruptibly();
|
||||||
assertTrue(futureDirect.isSuccess());
|
assertTrue(futureDirect.isSuccess());
|
||||||
assertEquals("pong", futureDirect.object());
|
assertEquals("pong", futureDirect.object());
|
||||||
|
|
||||||
shutdown();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue