Skip to content

Commit

Permalink
ns
Browse files Browse the repository at this point in the history
  • Loading branch information
belaban committed Mar 4, 2009
1 parent 28628f1 commit 7cae4ff
Show file tree
Hide file tree
Showing 3 changed files with 54 additions and 38 deletions.
4 changes: 3 additions & 1 deletion src/org/jgroups/Global.java
Expand Up @@ -4,7 +4,7 @@
* Globals used by JGroups packages.
*
* @author Bela Ban Mar 29, 2004
* @version $Id: Global.java,v 1.41.4.3 2009/02/23 11:46:57 belaban Exp $
* @version $Id: Global.java,v 1.41.4.4 2009/03/04 11:19:53 belaban Exp $
*/
public class Global {
public static final int BYTE_SIZE = Byte.SIZE / 8; // 1
Expand Down Expand Up @@ -37,6 +37,8 @@ public class Global {
public static final String MAGIC_NUMBER_FILE="jgroups.conf.magic_number_file";
public static final String RESOLVE_DNS="jgroups.resolve_dns";
public static final String PRINT_UUIDS="jgroups.print_uuids";
public static final String UUID_CACHE_MAX_ELEMENTS="jgroups.uuid_cache.max_elements";
public static final String UUID_CACHE_MAX_AGE="jgroups.uuid_cache.max_age";

public static final String TIMER_NUM_THREADS="jgroups.timer.num_threads";

Expand Down
75 changes: 39 additions & 36 deletions tests/junit/org/jgroups/tests/CloseTest.java
@@ -1,4 +1,4 @@
// $Id: CloseTest.java,v 1.23.4.1 2009/02/23 08:59:50 belaban Exp $
// $Id: CloseTest.java,v 1.23.4.2 2009/03/04 11:21:51 belaban Exp $

package org.jgroups.tests;

Expand All @@ -9,6 +9,8 @@
import org.testng.annotations.Test;

import java.util.Vector;
import java.util.List;
import java.util.ArrayList;


/**
Expand Down Expand Up @@ -80,85 +82,76 @@ public void testCreationAndClose() throws Exception {
public void testViewChangeReceptionOnChannelCloseByParticipant() throws Exception {
Address a1, a2;
Vector members;
MyReceiver r1=new MyReceiver(), r2=new MyReceiver();

c1.set(createChannel(true));
c1.get().setReceiver(r1);
System.out.println("-- connecting c1");
final String GROUP=getUniqueClusterName("CloseTest.testViewChangeReceptionOnChannelCloseByParticipant");
final String GROUP="CloseTest.testViewChangeReceptionOnChannelCloseByParticipant";
c1.get().connect(GROUP);
Util.sleep(500); // time to receive its own view
dumpMessages("c1", c1.get());
System.out.println("c1: " + r1.getViews());
a1=c1.get().getAddress();
c2.set(createChannel(c1.get()));
c2.get().setReceiver(r2);
System.out.println("-- connecting c2");
r1.clearViews();
c2.get().connect(GROUP);
Util.sleep(500); // time to receive its own view
a2=c2.get().getAddress();
dumpMessages("c2", c2.get());
System.out.println("c2: " + r2.getViews());

System.out.println("-- closing c2");
c2.get().close();
Object obj=c1.get().receive(100);
assertTrue(obj instanceof View);
View v=(View)obj;
View v=r1.getViews().get(0);
members=v.getMembers();
System.out.println("-- first view of c1: " + v);
Assert.assertEquals(2, members.size());
assertTrue(members.contains(a1));
assertTrue(members.contains(a2));

obj=c1.get().receive(100);
assertTrue(obj instanceof View);
v=(View)obj;
v=r1.getViews().get(1);
members=v.getMembers();
System.out.println("-- second view of c1: " + v);
Assert.assertEquals(1, members.size());
assertTrue(members.contains(a1));
assertFalse(members.contains(a2));
assert 1 == members.size();
assert members.contains(a1);
assert !members.contains(a2);
}

@Test
public void testViewChangeReceptionOnChannelCloseByCoordinator() throws Exception {
Address a1, a2;
Vector members;
Object obj;
View v;
MyReceiver r1=new MyReceiver(), r2=new MyReceiver();

final String GROUP=getUniqueClusterName("CloseTest.testViewChangeReceptionOnChannelCloseByCoordinator");
c1.set(createChannel(true));
c1.get().setReceiver(r1);
c1.get().connect(GROUP);
Util.sleep(500); // time to receive its own view
dumpMessages("c1", c1.get());
a1=c1.get().getAddress();
c2.set(createChannel(c1.get()));
c2.get().setReceiver(r2);
c2.get().connect(GROUP);
Util.sleep(500); // time to receive its own view
a2=c2.get().getAddress();
v=(View)c2.get().receive(1);
View v=r2.getViews().get(0);
members=v.getMembers();
Assert.assertEquals(2, members.size());
assertTrue(members.contains(a2));
assert 2 == members.size();
assert members.contains(a2);

r2.clearViews();
c1.get().close();
Util.sleep(500);
Util.sleep(1000);

System.out.println("queue of c2 is " + c2.get().dumpQueue());
assertTrue("found 0 messages in channel", c2.get().getNumMessages() > 0);
obj=c2.get().receive(0);
assertTrue(obj instanceof View);
v=(View)obj;
v=r2.getViews().get(0);
members=v.getMembers();
Assert.assertEquals(1, members.size());
assertFalse(members.contains(a1));
assertTrue(members.contains(a2));

assert 1 == members.size();
assert !members.contains(a1);
assert members.contains(a2);
assert c2.get().getNumMessages() == 0;
}

private static void dumpMessages(String msg, Channel ch) throws Exception {
while(ch.getNumMessages() > 0) {
Object obj=ch.receive(0);
if(obj instanceof View)
System.out.println(msg + ": " + obj);
}
}

@Test
public void testConnectDisconnectConnectCloseSequence() throws Exception {
Expand Down Expand Up @@ -331,4 +324,14 @@ private static void assertServiceAndClusterView(Channel ch, int num) {
}


private static class MyReceiver extends ReceiverAdapter {
final List<View> views=new ArrayList<View>();
public void viewAccepted(View new_view) {
views.add(new_view);
System.out.println("new_view = " + new_view);
}
public List<View> getViews() {return views;}
public void clearViews() {views.clear();}
}

}
13 changes: 12 additions & 1 deletion tests/junit/org/jgroups/tests/ConnectTest.java
Expand Up @@ -7,13 +7,14 @@
import org.jgroups.stack.ProtocolStack;
import org.jgroups.util.Promise;
import org.jgroups.util.Util;
import org.jgroups.util.UUID;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.Test;


/**
* Runs through multiple channel connect and disconnects, without closing the channel.
* @version $Id: ConnectTest.java,v 1.20.4.1 2009/02/23 08:59:50 belaban Exp $
* @version $Id: ConnectTest.java,v 1.20.4.2 2009/03/04 11:21:51 belaban Exp $
*/
@Test(groups=Global.STACK_DEPENDENT,sequential=true)
public class ConnectTest extends ChannelTestBase {
Expand Down Expand Up @@ -61,20 +62,23 @@ public void testDisconnectConnectTwo() throws Exception {
coordinator=createChannel(true);
changeProps(coordinator);
coordinator.connect("ConnectTest.testgroup-3");
print(coordinator, "coordinator");
view=coordinator.getView();
System.out.println("-- view for coordinator: " + view);
assert view.size() == 1;

channel=createChannel(coordinator);
changeProps(channel);
channel.connect("ConnectTest.testgroup-4");
print(channel, "channel");
view=channel.getView();
System.out.println("-- view for channel: " + view);
assert view.size() == 1;

channel.disconnect();

channel.connect("ConnectTest.testgroup-3");
print(channel, "channel");
view=channel.getView();
System.out.println("-- view for channel: " + view);

Expand All @@ -84,6 +88,13 @@ public void testDisconnectConnectTwo() throws Exception {
}


static void print(JChannel ch, String msg) {
System.out.println(msg + ": name=" + ch.getName() + ", addr=" + ch.getAddress() +
", UUID=" + ch.getAddressAsUUID() + "\nUUID cache:\n" + UUID.printCache() +
"\nLogical_addr_cache:\n" + ch.getProtocolStack().getTransport().printLogicalAddressCache());
}


/**
* Tests connect-disconnect-connect-send sequence for a group with two
* members. Test case introduced before fixing pbcast.NAKACK
Expand Down

0 comments on commit 7cae4ff

Please sign in to comment.