public void testWithEveryoneHavingASingletonView() throws Exception { // Inject view {A} into A, B and C: injectView(Util.createView(a.getAddress(), 10, a.getAddress()), a); injectView(Util.createView(b.getAddress(), 10, b.getAddress()), b); injectView(Util.createView(c.getAddress(), 10, c.getAddress()), c); sendAndCheckMessages(5, a, b, c); }
/** Creates a singleton view for each channel listed and injects it */ protected static void createPartition(JChannel... channels) { for (JChannel ch : channels) { View view = Util.createView(ch.getAddress(), 5, ch.getAddress()); GMS gms = (GMS) ch.getProtocolStack().findProtocol(GMS.class); gms.installView(view); } }
/** * Verifies that unicasts are received correctly by all participants after an overlapping merge. * The following steps are executed: * * <ol> * <li/>Group is {A,B,C}, A is the coordinator * <li/>MERGE2 is removed from all members * <li/>VERIFY_SUSPECT is removed from all members * <li/>Everyone sends 5 unicast messages to everyone else * <li/>A VIEW(B,C) is injected into B and C * <li/>B and C install {B,C} * <li/>B and C trash the connection table for A in UNICAST * <li/>A still has view {A,B,C} and all connection tables intact in UNICAST * <li/>We now send N unicasts from everyone to everyone else, all the unicasts should be * received. * </ol> */ public void testWithViewBC() throws Exception { System.out.println("A's view: " + a.getView()); // Inject view {B,C} into B and C: View new_view = Util.createView(b.getAddress(), 10, b.getAddress(), c.getAddress()); injectView(new_view, b, c); assertEquals("A's view is " + a.getView(), 3, a.getView().size()); assertEquals("B's view is " + b.getView(), 2, b.getView().size()); assertEquals("C's view is " + c.getView(), 2, c.getView().size()); sendAndCheckMessages(5, a, b, c); }
public void testWithViewC() throws Exception { // Inject view {A} into A, B and C: View new_view = Util.createView(c.getAddress(), 10, c.getAddress()); injectView(new_view, a, b, c); sendAndCheckMessages(5, a, b, c); }