Repeat TomP2PTests tests using @Repeat vs. loops

This commit is contained in:
Chris Beams 2014-11-06 13:12:31 +01:00
parent 1a92b05bf4
commit 640a736ec3
No known key found for this signature in database
GPG key ID: 3D214F8F5BC5ED73

View file

@ -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();
}
} }