Add shutdown method

This commit is contained in:
Manfred Karrer 2014-11-05 15:09:37 +01:00
parent 879c5ca244
commit afe7ec295b

View file

@ -43,6 +43,7 @@ import net.tomp2p.peers.Number160;
import net.tomp2p.peers.PeerAddress; import net.tomp2p.peers.PeerAddress;
import net.tomp2p.storage.Data; import net.tomp2p.storage.Data;
import org.junit.After;
import org.junit.Assert; import org.junit.Assert;
import org.junit.Before; import org.junit.Before;
import org.junit.Ignore; import org.junit.Ignore;
@ -63,7 +64,7 @@ import static org.junit.Assert.*;
* In the configure method and the connectionType you can define your test scenario further. * In the configure method and the connectionType you can define your test scenario further.
*/ */
@Ignore //@Ignore
public class TomP2PTests { public class TomP2PTests {
private static final Logger log = LoggerFactory.getLogger(TomP2PTests.class); private static final Logger log = LoggerFactory.getLogger(TomP2PTests.class);
@ -128,7 +129,8 @@ public class TomP2PTests {
private String seedId; private String seedId;
private String seedIP; private String seedIP;
private int seedPort; private int seedPort;
private PeerDHT peer1DHT;
private PeerDHT peer2DHT;
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
// Seed node // Seed node
@ -174,6 +176,16 @@ public class TomP2PTests {
// Tests // Tests
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
@After
public void shutdown() {
if (!cacheClients) {
if (peer1DHT != null)
peer1DHT.shutdown().awaitUninterruptibly();
if (peer2DHT != null)
peer2DHT.shutdown().awaitUninterruptibly();
}
}
@Test @Test
public void bootstrapInUnknownMode() throws Exception { public void bootstrapInUnknownMode() throws Exception {
if (connectionType == ConnectionType.UNKNOWN) if (connectionType == ConnectionType.UNKNOWN)
@ -201,7 +213,7 @@ public class TomP2PTests {
@Test @Test
// @Ignore // @Ignore
public void testPut() throws Exception { public void testPut() throws Exception {
PeerDHT peer1DHT = getDHTPeer("node_1", CLIENT_1_PORT); peer1DHT = getDHTPeer("node_1", CLIENT_1_PORT);
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 (!ignoreSuccessTests) if (!ignoreSuccessTests)
@ -211,31 +223,25 @@ public class TomP2PTests {
@Test @Test
// @Ignore // @Ignore
public void testPutGet() throws Exception { public void testPutGet() throws Exception {
PeerDHT peer1DHT = getDHTPeer("node_1", CLIENT_1_PORT); peer1DHT = getDHTPeer("node_1", CLIENT_1_PORT);
PeerDHT peer2DHT = getDHTPeer("node_2", CLIENT_2_PORT);
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 (!ignoreSuccessTests) if (!ignoreSuccessTests)
assertTrue(futurePut.isSuccess()); assertTrue(futurePut.isSuccess());
peer2DHT = getDHTPeer("node_2", CLIENT_2_PORT);
FutureGet futureGet = peer2DHT.get(Number160.createHash("key")).start(); FutureGet futureGet = peer2DHT.get(Number160.createHash("key")).start();
futureGet.awaitUninterruptibly(); futureGet.awaitUninterruptibly();
if (!ignoreSuccessTests) if (!ignoreSuccessTests)
assertTrue(futureGet.isSuccess()); assertTrue(futureGet.isSuccess());
assertEquals("hallo", futureGet.data().object()); assertEquals("hallo", futureGet.data().object());
if (!cacheClients) {
peer1DHT.shutdown().awaitUninterruptibly();
peer2DHT.shutdown().awaitUninterruptibly();
}
} }
@Test @Test
@Ignore //@Ignore
public void testAddGet() throws Exception { public void testAddGet() throws Exception {
PeerDHT peer1DHT = getDHTPeer("node_1", CLIENT_1_PORT); peer1DHT = getDHTPeer("node_1", CLIENT_1_PORT);
PeerDHT peer2DHT = getDHTPeer("node_2", CLIENT_2_PORT); peer2DHT = getDHTPeer("node_2", CLIENT_2_PORT);
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();
@ -255,18 +261,13 @@ 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);
if (!cacheClients) {
peer1DHT.shutdown().awaitUninterruptibly();
peer2DHT.shutdown().awaitUninterruptibly();
}
} }
@Test @Test
@Ignore @Ignore
public void testAddRemove() throws Exception { public void testAddRemove() throws Exception {
PeerDHT peer1DHT = getDHTPeer("node_1", CLIENT_1_PORT); peer1DHT = getDHTPeer("node_1", CLIENT_1_PORT);
PeerDHT peer2DHT = getDHTPeer("node_2", CLIENT_2_PORT); peer2DHT = getDHTPeer("node_2", CLIENT_2_PORT);
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();
@ -292,18 +293,13 @@ 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);
if (!cacheClients) {
peer1DHT.shutdown().awaitUninterruptibly();
peer2DHT.shutdown().awaitUninterruptibly();
}
} }
@Test @Test
@Ignore @Ignore
public void testDHT2Servers() throws Exception { public void testDHT2Servers() throws Exception {
PeerDHT peer1DHT = getDHTPeer("node_1", CLIENT_1_PORT, SEED_ID_WAN_1, SEED_IP_WAN_1, SEED_PORT_WAN_1); peer1DHT = getDHTPeer("node_1", CLIENT_1_PORT, SEED_ID_WAN_1, SEED_IP_WAN_1, SEED_PORT_WAN_1);
PeerDHT peer2DHT = getDHTPeer("node_2", CLIENT_2_PORT, SEED_ID_WAN_2, SEED_IP_WAN_2, SEED_PORT_WAN_2); peer2DHT = getDHTPeer("node_2", CLIENT_2_PORT, SEED_ID_WAN_2, SEED_IP_WAN_2, SEED_PORT_WAN_2);
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();
@ -315,11 +311,6 @@ public class TomP2PTests {
if (!ignoreSuccessTests) if (!ignoreSuccessTests)
assertTrue(futureGet.isSuccess()); assertTrue(futureGet.isSuccess());
assertEquals("hallo", futureGet.data().object()); assertEquals("hallo", futureGet.data().object());
if (!cacheClients) {
peer1DHT.shutdown().awaitUninterruptibly();
peer2DHT.shutdown().awaitUninterruptibly();
}
} }
// That test fails in port forwarding mode because most routers does not support NAT reflections. // That test fails in port forwarding mode because most routers does not support NAT reflections.
@ -329,8 +320,8 @@ public class TomP2PTests {
@Test @Test
@Ignore @Ignore
public void testSendDirectRelay() throws Exception { public void testSendDirectRelay() throws Exception {
PeerDHT peer1DHT = getDHTPeer("node_1", CLIENT_1_PORT); peer1DHT = getDHTPeer("node_1", CLIENT_1_PORT);
PeerDHT peer2DHT = getDHTPeer("node_2", CLIENT_2_PORT); peer2DHT = getDHTPeer("node_2", CLIENT_2_PORT);
final CountDownLatch countDownLatch = new CountDownLatch(1); final CountDownLatch countDownLatch = new CountDownLatch(1);
@ -353,18 +344,13 @@ public class TomP2PTests {
assertEquals("hallo", result.toString()); assertEquals("hallo", result.toString());
assertTrue(futureDirect.isSuccess()); assertTrue(futureDirect.isSuccess());
//assertEquals("pong", futureDirect.object()); //assertEquals("pong", futureDirect.object());
if (!cacheClients) {
peer1DHT.shutdown().awaitUninterruptibly();
peer2DHT.shutdown().awaitUninterruptibly();
}
} }
// That test should succeed in port forwarding as we use the server seed node as receiver // That test should succeed in port forwarding as we use the server seed node as receiver
@Test @Test
@Ignore @Ignore
public void testSendDirectPortForwarding() throws Exception { public void testSendDirectPortForwarding() throws Exception {
PeerDHT peer1DHT = getDHTPeer("node_1", CLIENT_1_PORT); peer1DHT = getDHTPeer("node_1", CLIENT_1_PORT);
PeerAddress reachablePeerAddress = new PeerAddress(Number160.createHash(seedId), seedIP, seedPort, PeerAddress reachablePeerAddress = new PeerAddress(Number160.createHash(seedId), seedIP, seedPort,
seedPort); seedPort);
@ -373,10 +359,6 @@ public class TomP2PTests {
futureDirect.awaitUninterruptibly(); futureDirect.awaitUninterruptibly();
assertTrue(futureDirect.isSuccess()); assertTrue(futureDirect.isSuccess());
//assertEquals("pong", futureDirect.object()); //assertEquals("pong", futureDirect.object());
if (!cacheClients) {
peer1DHT.shutdown().awaitUninterruptibly();
}
} }