added a unit test
This commit is contained in:
@ -74,4 +74,14 @@ public class GossipService {
|
|||||||
out.println("[" + addressString + "][" + new Date().toString() + "] " + message);*/
|
out.println("[" + addressString + "][" + new Date().toString() + "] " + message);*/
|
||||||
out.println("[" + new Date().toString() + "] " + message);
|
out.println("[" + new Date().toString() + "] " + message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public GossipManager get_gossipManager() {
|
||||||
|
return _gossipManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void set_gossipManager(GossipManager _gossipManager) {
|
||||||
|
this._gossipManager = _gossipManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -36,27 +36,16 @@ abstract public class PassiveGossipThread implements Runnable {
|
|||||||
|
|
||||||
public PassiveGossipThread(GossipManager gossipManager) {
|
public PassiveGossipThread(GossipManager gossipManager) {
|
||||||
_gossipManager = gossipManager;
|
_gossipManager = gossipManager;
|
||||||
|
|
||||||
// Start the service on the given port number.
|
|
||||||
try {
|
try {
|
||||||
//_server = new DatagramSocket( _gossipManager.getMyself().getPort());
|
|
||||||
|
|
||||||
SocketAddress socketAddress = new InetSocketAddress(_gossipManager.getMyself().getHost(), _gossipManager.getMyself().getPort());
|
SocketAddress socketAddress = new InetSocketAddress(_gossipManager.getMyself().getHost(), _gossipManager.getMyself().getPort());
|
||||||
_server = new DatagramSocket(socketAddress);
|
_server = new DatagramSocket(socketAddress);
|
||||||
|
|
||||||
// The server successfully started on the current port.
|
|
||||||
GossipService.info("Gossip service successfully initialized on port " + _gossipManager.getMyself().getPort());
|
GossipService.info("Gossip service successfully initialized on port " + _gossipManager.getMyself().getPort());
|
||||||
GossipService.debug("I am " + _gossipManager.getMyself());
|
GossipService.debug("I am " + _gossipManager.getMyself());
|
||||||
} catch (SocketException ex) {
|
} catch (SocketException ex) {
|
||||||
System.err.println(ex);
|
System.err.println(ex);
|
||||||
_server = null;
|
_server = null;
|
||||||
// Let's communicate this to the user.
|
|
||||||
/*
|
|
||||||
GossipService.error("Error while starting the gossip service on port " + _gossipManager.getMyself().getPort() + ": " + ex.getMessage());
|
|
||||||
System.exit(-1);*/
|
|
||||||
throw new RuntimeException(ex);
|
throw new RuntimeException(ex);
|
||||||
}
|
}
|
||||||
|
|
||||||
_keepRunning = new AtomicBoolean(true);
|
_keepRunning = new AtomicBoolean(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
45
src/test/java/io/teknek/gossip/TenNodeThreeSeedTest.java
Normal file
45
src/test/java/io/teknek/gossip/TenNodeThreeSeedTest.java
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
package io.teknek.gossip;
|
||||||
|
|
||||||
|
import java.net.UnknownHostException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import junit.framework.Assert;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import com.google.code.gossip.GossipMember;
|
||||||
|
import com.google.code.gossip.GossipService;
|
||||||
|
import com.google.code.gossip.GossipSettings;
|
||||||
|
import com.google.code.gossip.LogLevel;
|
||||||
|
import com.google.code.gossip.RemoteGossipMember;
|
||||||
|
|
||||||
|
public class TenNodeThreeSeedTest {
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test() throws UnknownHostException, InterruptedException{
|
||||||
|
GossipSettings settings = new GossipSettings();
|
||||||
|
|
||||||
|
int seedNodes = 3;
|
||||||
|
ArrayList<GossipMember> startupMembers = new ArrayList<GossipMember>();
|
||||||
|
for (int i = 1; i < seedNodes+1; ++i) {
|
||||||
|
startupMembers.add(new RemoteGossipMember("127.0.0." + i, 2000));
|
||||||
|
}
|
||||||
|
|
||||||
|
ArrayList<GossipService> clients = new ArrayList<GossipService>();
|
||||||
|
int clusterMembers = 10;
|
||||||
|
for (int i = 1; i < clusterMembers+1; ++i) {
|
||||||
|
GossipService gossipService = new GossipService("127.0.0."+i, 2000, LogLevel.DEBUG, startupMembers, settings);
|
||||||
|
clients.add(gossipService);
|
||||||
|
gossipService.start();
|
||||||
|
Thread.sleep(settings.getCleanupInterval() + 1000);
|
||||||
|
}
|
||||||
|
Thread.sleep(10000);
|
||||||
|
for (int i = 0; i < clusterMembers; ++i) {
|
||||||
|
Assert.assertEquals(9, clients.get(i).get_gossipManager().getMemberList().size());
|
||||||
|
}
|
||||||
|
for (int i = 0; i < clusterMembers; ++i) {
|
||||||
|
clients.get(i).shutdown();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user