From 0d9ef8812dda75d69e172b751e7a88b422ab6a2e Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Sat, 05 Oct 2013 19:14:45 +0000
Subject: [PATCH] InitOnLineTest.java: Fixing this test: the main problem was in afterTest() that was trying to remove non leaves entries, which ended up in a failure. Renamed all the "changelog" to "replServer". Extracted a few methods. Removed useless parameters from other methods. Removed useless methods. Removed unneeded try / catch / log. Made better use of assertions and assertj.
---
opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/InitOnLineTest.java | 417 ++++++++++++++++++++++-------------------------------------
1 files changed, 158 insertions(+), 259 deletions(-)
diff --git a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/InitOnLineTest.java b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/InitOnLineTest.java
index b07ebc4..a0587a1 100644
--- a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/InitOnLineTest.java
+++ b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/InitOnLineTest.java
@@ -27,7 +27,6 @@
*/
package org.opends.server.replication;
-import java.net.SocketTimeoutException;
import java.util.*;
import org.assertj.core.api.Assertions;
@@ -104,9 +103,9 @@
private static final int server1ID = 1;
private static final int server2ID = 2;
private static final int server3ID = 3;
- private static final int changelog1ID = 8;
- private static final int changelog2ID = 9;
- private static final int changelog3ID = 10;
+ private static final int replServer1ID = 8;
+ private static final int replServer2ID = 9;
+ private static final int replServer3ID = 10;
private static final String EXAMPLE_DN = "dc=example,dc=com";
private static int[] replServerPort = new int[20];
@@ -114,9 +113,9 @@
private DN baseDN;
private ReplicationBroker server2;
private ReplicationBroker server3;
- private ReplicationServer changelog1;
- private ReplicationServer changelog2;
- private ReplicationServer changelog3;
+ private ReplicationServer replServer1;
+ private ReplicationServer replServer2;
+ private ReplicationServer replServer3;
private boolean emptyOldChanges = true;
private LDAPReplicationDomain replDomain;
private int initWindow = 100;
@@ -131,16 +130,8 @@
}
}
- private void log(String message, Exception e)
- {
- log(message + stackTraceToSingleLineString(e));
- }
-
/**
* Set up the environment for performing the tests in this Class.
- *
- * @throws Exception
- * If the environment could not be set up.
*/
@BeforeClass
@Override
@@ -208,7 +199,6 @@
for (String entry : updatedEntries)
{
-
int dns = entry.indexOf("dn: ");
int dne = entry.indexOf(EXAMPLE_DN);
String dn = entry.substring(dns+4,dne+EXAMPLE_DN.length());
@@ -217,22 +207,15 @@
DN entryDN = DN.decode(dn);
- try
+ Entry resultEntry = getEntry(entryDN, 1000, true);
+ if (resultEntry == null)
{
- Entry resultEntry = getEntry(entryDN, 1000, true);
- if (resultEntry==null)
- {
- log("Entry not found <" + dn + ">");
- }
- else
- {
- log("Entry found <" + dn + ">");
- found++;
- }
+ log("Entry not found <" + dn + ">");
}
- catch(Exception e)
+ else
{
- log("TestEntriesInDb/", e);
+ log("Entry found <" + dn + ">");
+ found++;
}
}
@@ -441,64 +424,47 @@
log("Broker " + senderID + " published entries");
}
- void receiveUpdatedEntries(ReplicationBroker broker, int serverID,
- String[] updatedEntries)
+ private void receiveUpdatedEntries(ReplicationBroker broker) throws Exception
{
+ final int serverId = broker.getServerId();
// Expect the broker to receive the entries
- ReplicationMsg msg;
- short entriesReceived = 0;
+ int entriesReceived = 0;
while (true)
{
- try
- {
- log("Broker " + serverID + " Wait for entry or done msg");
- msg = broker.receive();
+ log("Broker " + serverId + " Wait for entry or done msg");
+ ReplicationMsg msg = broker.receive();
+ if (msg == null)
+ break;
- if (msg == null)
- break;
-
- if (msg instanceof InitializeTargetMsg)
- {
- log("Broker " + serverID + " receives InitializeTargetMessage ");
- entriesReceived = 0;
- }
- else if (msg instanceof EntryMsg)
- {
- EntryMsg em = (EntryMsg)msg;
- log("Broker " + serverID + " receives entry " + new String(em.getEntryBytes()));
- entriesReceived+=countEntryLimits(em.getEntryBytes());
- }
- else if (msg instanceof DoneMsg)
- {
- log("Broker " + serverID + " receives done ");
- break;
- }
- else if (msg instanceof ErrorMsg)
- {
- ErrorMsg em = (ErrorMsg)msg;
- log("Broker " + serverID + " receives ERROR "
- + " " + em.getDetails());
- break;
- }
- else
- {
- log("Broker " + serverID + " receives and trashes " + msg);
- }
- }
- catch (SocketTimeoutException e)
+ if (msg instanceof InitializeTargetMsg)
{
- log("SocketTimeoutException while waiting for entries" +
- stackTraceToSingleLineString(e));
+ log("Broker " + serverId + " receives InitializeTargetMessage ");
+ entriesReceived = 0;
}
- catch(Exception e)
+ else if (msg instanceof EntryMsg)
{
- log("receiveUpdatedEntries" + stackTraceToSingleLineString(e));
+ EntryMsg em = (EntryMsg) msg;
+ log("Broker " + serverId + " receives entry " + new String(em.getEntryBytes()));
+ entriesReceived += countEntryLimits(em.getEntryBytes());
+ }
+ else if (msg instanceof DoneMsg)
+ {
+ log("Broker " + serverId + " receives done ");
+ break;
+ }
+ else if (msg instanceof ErrorMsg)
+ {
+ ErrorMsg em = (ErrorMsg) msg;
+ log("Broker " + serverId + " receives ERROR " + " " + em.getDetails());
+ break;
+ }
+ else
+ {
+ log("Broker " + serverId + " receives and trashes " + msg);
}
}
- assertTrue(entriesReceived == updatedEntries.length,
- " Received entries("+entriesReceived +
- ") == Expected entries("+updatedEntries.length+")");
+ assertEquals(entriesReceived, updatedEntries.length);
broker.setGenerationID(EMPTY_DN_GENID);
broker.reStart(true);
@@ -531,46 +497,36 @@
/**
* Creates a new replicationServer.
- * @param changelogId The serverID of the replicationServer to create.
+ * @param replServerId The serverID of the replicationServer to create.
* @return The new replicationServer.
*/
- private ReplicationServer createChangelogServer(int changelogId,
+ private ReplicationServer createReplicationServer(int replServerId,
String testCase) throws Exception
{
SortedSet<String> servers = new TreeSet<String>();
- if (changelogId != changelog1ID)
- servers.add("localhost:" + getChangelogPort(changelog1ID));
- if (changelogId != changelog2ID)
- servers.add("localhost:" + getChangelogPort(changelog2ID));
- if (changelogId != changelog3ID)
- servers.add("localhost:" + getChangelogPort(changelog3ID));
+ if (replServerId != replServer1ID)
+ servers.add("localhost:" + getReplServerPort(replServer1ID));
+ if (replServerId != replServer2ID)
+ servers.add("localhost:" + getReplServerPort(replServer2ID));
+ if (replServerId != replServer3ID)
+ servers.add("localhost:" + getReplServerPort(replServer3ID));
+ final int port = getReplServerPort(replServerId);
ReplServerFakeConfiguration conf =
new ReplServerFakeConfiguration(
- getChangelogPort(changelogId),
- "initOnlineTest" + getChangelogPort(changelogId) + testCase + "Db",
+ port,
+ "initOnlineTest" + port + testCase + "Db",
0,
- changelogId,
+ replServerId,
0,
100,
servers);
ReplicationServer replicationServer = new ReplicationServer(conf);
Thread.sleep(1000);
-
return replicationServer;
}
- /**
- * Create a synchronized suffix in the current server providing the
- * replication Server ID.
- * @param changelogID
- */
- private void connectServer1ToChangelog(int changelogID) throws Exception
- {
- connectServer1ToChangelog(changelogID, 0);
- }
-
- private void connectServer1ToChangelog(int changelogID, int heartbeat) throws Exception
+ private void connectServer1ToReplServer(int replServerId) throws Exception
{
// suffix synchronized
String testName = "initOnLineTest";
@@ -582,10 +538,9 @@
+ "cn: " + testName + "\n"
+ "ds-cfg-base-dn: " + EXAMPLE_DN + "\n"
+ "ds-cfg-replication-server: localhost:"
- + getChangelogPort(changelogID)+"\n"
+ + getReplServerPort(replServerId)+"\n"
+ "ds-cfg-server-id: " + server1ID + "\n"
+ "ds-cfg-receive-status: true\n"
- + (heartbeat>0?"ds-cfg-heartbeat-interval: "+heartbeat+" ms\n":"")
+ "ds-cfg-window-size: " + WINDOW_SIZE;
TestCaseUtils.clearJEBackend(false, "userRoot", EXAMPLE_DN);
@@ -597,13 +552,13 @@
"ReplicationDomain: Import/Export is not expected to be running");
}
- private int getChangelogPort(int changelogID) throws Exception
+ private int getReplServerPort(int replServerId) throws Exception
{
- if (replServerPort[changelogID] == 0)
+ if (replServerPort[replServerId] == 0)
{
- replServerPort[changelogID] = TestCaseUtils.findFreePort();
+ replServerPort[replServerId] = TestCaseUtils.findFreePort();
}
- return replServerPort[changelogID];
+ return replServerPort[replServerId];
}
/**
@@ -621,32 +576,24 @@
public void initializeImport() throws Exception
{
String testCase = "initializeImport ";
-
log("Starting "+testCase);
-
try
{
- changelog1 = createChangelogServer(changelog1ID, testCase);
+ replServer1 = createReplicationServer(replServer1ID, testCase);
// Connect DS to the replicationServer
- connectServer1ToChangelog(changelog1ID);
+ connectServer1ToReplServer(replServer1ID);
if (server2 == null)
server2 = openReplicationSession(DN.decode(EXAMPLE_DN),
- server2ID, 100, getChangelogPort(changelog1ID), 1000, emptyOldChanges);
-
- // Thread.sleep(2000);
+ server2ID, 100, getReplServerPort(replServer1ID), 1000, emptyOldChanges);
// In S1 launch the total update
addTask(taskInitFromS2, ResultCode.SUCCESS, null);
// S2 should receive init msg
- ReplicationMsg msg;
- msg = server2.receive();
- if (!(msg instanceof InitializeRequestMsg))
- {
- fail(testCase + " Message received by S2 is of unexpected class" + msg);
- }
+ ReplicationMsg msg = server2.receive();
+ Assertions.assertThat(msg).isInstanceOf(InitializeRequestMsg.class);
InitializeRequestMsg initMsg = (InitializeRequestMsg)msg;
// S2 publishes entries to S1
@@ -678,25 +625,19 @@
public void initializeExport() throws Exception
{
String testCase = "initializeExport";
-
log("Starting "+testCase);
-
try
{
- changelog1 = createChangelogServer(changelog1ID, testCase);
+ replServer1 = createReplicationServer(replServer1ID, testCase);
// Connect DS to the replicationServer
- connectServer1ToChangelog(changelog1ID);
+ connectServer1ToReplServer(replServer1ID);
addTestEntriesToDB();
if (server2 == null)
server2 = openReplicationSession(DN.decode(EXAMPLE_DN),
- server2ID, 100, getChangelogPort(changelog1ID), 1000, emptyOldChanges);
-
- // Not needed anymore since OpenReplicationSession
- // checks for session establishment ?
- // Thread.sleep(3000);
+ server2ID, 100, getReplServerPort(replServer1ID), 1000, emptyOldChanges);
InitializeRequestMsg initMsg = new InitializeRequestMsg(baseDN, server2ID, server1ID, 100);
server2.publish(initMsg);
@@ -704,7 +645,7 @@
// Signal RS we just entered the full update status
server2.signalStatusChange(ServerStatus.FULL_UPDATE_STATUS);
- receiveUpdatedEntries(server2, server2ID, updatedEntries);
+ receiveUpdatedEntries(server2);
log("Successfully ending " + testCase);
} finally
@@ -724,16 +665,13 @@
public void initializeTargetExport() throws Exception
{
String testCase = "initializeTargetExport";
-
log("Starting " + testCase);
-
try
{
-
- changelog1 = createChangelogServer(changelog1ID, testCase);
+ replServer1 = createReplicationServer(replServer1ID, testCase);
// Creates config to synchronize suffix
- connectServer1ToChangelog(changelog1ID);
+ connectServer1ToReplServer(replServer1ID);
// Add in S1 the entries to be exported
addTestEntriesToDB();
@@ -741,9 +679,7 @@
// S1 is the server we are running in, S2 is simulated by a broker
if (server2 == null)
server2 = openReplicationSession(DN.decode(EXAMPLE_DN),
- server2ID, 100, getChangelogPort(changelog1ID), 1000, emptyOldChanges);
-
- // Thread.sleep(1000);
+ server2ID, 100, getReplServerPort(replServer1ID), 1000, emptyOldChanges);
// Launch in S1 the task that will initialize S2
addTask(taskInitTargetS2, ResultCode.SUCCESS, null);
@@ -752,7 +688,7 @@
server2.signalStatusChange(ServerStatus.FULL_UPDATE_STATUS);
// Tests that entries have been received by S2
- receiveUpdatedEntries(server2, server2ID, updatedEntries);
+ receiveUpdatedEntries(server2);
// Wait for task completion
waitTaskState(taskInitTargetS2, TaskState.COMPLETED_SUCCESSFULLY, null);
@@ -780,15 +716,13 @@
public void initializeTargetExportAll() throws Exception
{
String testCase = "initializeTargetExportAll";
-
log("Starting " + testCase);
-
try
{
- changelog1 = createChangelogServer(changelog1ID, testCase);
+ replServer1 = createReplicationServer(replServer1ID, testCase);
// Creates config to synchronize suffix
- connectServer1ToChangelog(changelog1ID);
+ connectServer1ToReplServer(replServer1ID);
// Add in S1 the entries to be exported
addTestEntriesToDB();
@@ -796,13 +730,11 @@
// S1 is the server we are running in, S2 and S3 are simulated by brokers
if (server2 == null)
server2 = openReplicationSession(DN.decode(EXAMPLE_DN),
- server2ID, 100, getChangelogPort(changelog1ID), 1000, emptyOldChanges);
+ server2ID, 100, getReplServerPort(replServer1ID), 1000, emptyOldChanges);
if (server3 == null)
server3 = openReplicationSession(DN.decode(EXAMPLE_DN),
- server3ID, 100, getChangelogPort(changelog1ID), 1000, emptyOldChanges);
-
- // Thread.sleep(1000);
+ server3ID, 100, getReplServerPort(replServer1ID), 1000, emptyOldChanges);
// Launch in S1 the task that will initialize S2
addTask(taskInitTargetAll, ResultCode.SUCCESS, null);
@@ -813,8 +745,8 @@
server2.signalStatusChange(ServerStatus.FULL_UPDATE_STATUS);
server3.signalStatusChange(ServerStatus.FULL_UPDATE_STATUS);
- receiveUpdatedEntries(server2, server2ID, updatedEntries);
- receiveUpdatedEntries(server3, server3ID, updatedEntries);
+ receiveUpdatedEntries(server2);
+ receiveUpdatedEntries(server3);
// Wait for task completion
waitTaskState(taskInitTargetAll, TaskState.COMPLETED_SUCCESSFULLY, null);
@@ -833,21 +765,18 @@
public void initializeTargetImport() throws Exception
{
String testCase = "initializeTargetImport";
-
+ log("Starting " + testCase + " debugEnabled:" + debugEnabled());
try
{
- log("Starting " + testCase + " debugEnabled:" + debugEnabled());
-
- // Start SS
- changelog1 = createChangelogServer(changelog1ID, testCase);
+ replServer1 = createReplicationServer(replServer1ID, testCase);
// S1 is the server we are running in, S2 is simulated by a broker
if (server2==null)
server2 = openReplicationSession(DN.decode(EXAMPLE_DN),
- server2ID, 100, getChangelogPort(changelog1ID), 1000, emptyOldChanges);
+ server2ID, 100, getReplServerPort(replServer1ID), 1000, emptyOldChanges);
// Creates config to synchronize suffix
- connectServer1ToChangelog(changelog1ID);
+ connectServer1ToReplServer(replServer1ID);
// S2 publishes entries to S1
makeBrokerPublishEntries(server2, server2ID, server1ID, server2ID);
@@ -859,17 +788,14 @@
for (int count = 0; count < 120; count++)
{
readGenerationId = replDomain.getGenerationID();
- if ( readGenerationId == EXPECTED_GENERATION_ID)
+ if (readGenerationId == EXPECTED_GENERATION_ID)
break;
log(testCase + " genId=" + readGenerationId);
Thread.sleep(1000);
}
- if (readGenerationId != EXPECTED_GENERATION_ID)
- {
- fail(testCase + " Import success waited longer than expected \n" +
- TestCaseUtils.threadStacksToString());
- }
+ assertEquals(readGenerationId, EXPECTED_GENERATION_ID,
+ testCase + " Import success waited longer than expected");
// Test that entries have been imported in S1
testEntriesInDb();
@@ -888,11 +814,9 @@
public void initializeTargetConfigErrors() throws Exception
{
String testCase = "InitializeTargetConfigErrors";
-
+ log("Starting " + testCase);
try
{
- log("Starting " + testCase);
-
// Invalid domain base dn
Entry taskInitTarget = TestCaseUtils.makeEntry(
"dn: ds-task-id=" + UUID.randomUUID() +
@@ -939,16 +863,13 @@
public void initializeConfigErrors() throws Exception
{
String testCase = "initializeConfigErrors";
-
+ log("Starting " + testCase);
try
{
- log("Starting " + testCase);
-
- // Start SS
- changelog1 = createChangelogServer(changelog1ID, testCase);
+ replServer1 = createReplicationServer(replServer1ID, testCase);
// Creates config to synchronize suffix
- connectServer1ToChangelog(changelog1ID);
+ connectServer1ToReplServer(replServer1ID);
// Invalid domain base dn
Entry taskInit = TestCaseUtils.makeEntry(
@@ -1014,61 +935,56 @@
fail(testCase + " NYI");
}
- /*
- * TestReplServerInfos tests that in a topology with more
- * than one replication server, in each replication server
- * is stored the list of LDAP servers connected to each
- * replication server of the topology, thanks to the
- * ReplServerInfoMessage(s) exchanged by the replication
- * servers.
+ /**
+ * TestReplServerInfos tests that in a topology with more than one replication
+ * server, in each replication server is stored the list of LDAP servers
+ * connected to each replication server of the topology, thanks to the
+ * ReplServerInfoMessage(s) exchanged by the replication servers.
*/
@Test(enabled=true, groups="slow")
public void testReplServerInfos() throws Exception
{
String testCase = "testReplServerInfos";
-
log("Starting " + testCase);
ReplicationBroker broker2 = null;
ReplicationBroker broker3 = null;
try
{
- // Create the Repl Servers
- changelog1 = createChangelogServer(changelog1ID, testCase);
- changelog2 = createChangelogServer(changelog2ID, testCase);
- changelog3 = createChangelogServer(changelog3ID, testCase);
+ replServer1 = createReplicationServer(replServer1ID, testCase);
+ replServer2 = createReplicationServer(replServer2ID, testCase);
+ replServer3 = createReplicationServer(replServer3ID, testCase);
// Connects lDAP1 to replServer1
- connectServer1ToChangelog(changelog1ID);
+ connectServer1ToReplServer(replServer1ID);
// Connects lDAP2 to replServer2
broker2 = openReplicationSession(DN.decode(EXAMPLE_DN),
- server2ID, 100, getChangelogPort(changelog2ID), 1000, emptyOldChanges);
+ server2ID, 100, getReplServerPort(replServer2ID), 1000, emptyOldChanges);
// Connects lDAP3 to replServer2
broker3 = openReplicationSession(DN.decode(EXAMPLE_DN),
- server3ID, 100, getChangelogPort(changelog2ID), 1000, emptyOldChanges);
+ server3ID, 100, getReplServerPort(replServer2ID), 1000, emptyOldChanges);
// Check that the list of connected LDAP servers is correct in each replication servers
- Assertions.assertThat(getConnectedDSServerIds(changelog1)).containsExactly(server1ID);
- Assertions.assertThat(getConnectedDSServerIds(changelog2)).containsExactly(server2ID, server3ID);
- Assertions.assertThat(getConnectedDSServerIds(changelog3)).isEmpty();
+ Assertions.assertThat(getConnectedDSServerIds(replServer1)).containsExactly(server1ID);
+ Assertions.assertThat(getConnectedDSServerIds(replServer2)).containsExactly(server2ID, server3ID);
+ Assertions.assertThat(getConnectedDSServerIds(replServer3)).isEmpty();
// Test updates
broker3.stop();
Thread.sleep(1000);
- Assertions.assertThat(getConnectedDSServerIds(changelog2)).containsExactly(server2ID);
+ Assertions.assertThat(getConnectedDSServerIds(replServer2)).containsExactly(server2ID);
broker3 = openReplicationSession(DN.decode(EXAMPLE_DN),
- server3ID, 100, getChangelogPort(changelog2ID), 1000, emptyOldChanges);
+ server3ID, 100, getReplServerPort(replServer2ID), 1000, emptyOldChanges);
broker2.stop();
Thread.sleep(1000);
- Assertions.assertThat(getConnectedDSServerIds(changelog2)).containsExactly(server3ID);
+ Assertions.assertThat(getConnectedDSServerIds(replServer2)).containsExactly(server3ID);
// TODO Test ReplicationServerDomain.getDestinationServers method.
log("Successfully ending " + testCase);
-
} finally
{
stop(broker2, broker3);
@@ -1076,9 +992,9 @@
}
}
- private Set<Integer> getConnectedDSServerIds(ReplicationServer changelog)
+ private Set<Integer> getConnectedDSServerIds(ReplicationServer rs)
{
- ReplicationServerDomain domain = changelog.getReplicationServerDomain(baseDN);
+ ReplicationServerDomain domain = rs.getReplicationServerDomain(baseDN);
return domain.getConnectedDSs().keySet();
}
@@ -1086,45 +1002,33 @@
public void initializeTargetExportMultiSS() throws Exception
{
String testCase = "initializeTargetExportMultiSS";
+ log("Starting " + testCase);
try
{
- log("Starting " + testCase);
-
- // Create 2 changelogs
- changelog1 = createChangelogServer(changelog1ID, testCase);
-
- changelog2 = createChangelogServer(changelog2ID, testCase);
+ replServer1 = createReplicationServer(replServer1ID, testCase);
+ replServer2 = createReplicationServer(replServer2ID, testCase);
// Creates config to synchronize suffix
- connectServer1ToChangelog(changelog1ID);
+ connectServer1ToReplServer(replServer1ID);
// Add in S1 the entries to be exported
addTestEntriesToDB();
// S1 is the server we are running in, S2 is simulated by a broker
- // connected to changelog2
+ // connected to replServer2
if (server2 == null)
{
- log(testCase + " Will connect server 2 to " + changelog2ID);
+ log(testCase + " Will connect server 2 to " + replServer2ID);
server2 = openReplicationSession(DN.decode(EXAMPLE_DN),
- server2ID, 100, getChangelogPort(changelog2ID), 1000, emptyOldChanges);
+ server2ID, 100, getReplServerPort(replServer2ID), 1000, emptyOldChanges);
}
- // Thread.sleep(1000);
-
// Launch in S1 the task that will initialize S2
log(testCase + " add task " + Thread.currentThread());
addTask(taskInitTargetS2, ResultCode.SUCCESS, null);
log(testCase + " " + server2.getServerId() + " wait target " + Thread.currentThread());
- ReplicationMsg msgrcv;
- do
- {
- msgrcv = server2.receive();
- log(testCase + " " + server2.getServerId() + " receives " + msgrcv);
- }
- while(!(msgrcv instanceof InitializeTargetMsg));
- assertTrue(msgrcv instanceof InitializeTargetMsg, msgrcv.getClass().getCanonicalName());
+ waitForInitializeTargetMsg(testCase, server2);
// Signal RS we just entered the full update status
log(testCase + " change status");
@@ -1132,7 +1036,7 @@
// Tests that entries have been received by S2
log(testCase + " receive entries");
- receiveUpdatedEntries(server2, server2ID, updatedEntries);
+ receiveUpdatedEntries(server2);
// Wait for task completion
log(testCase + " wait task completed");
@@ -1146,23 +1050,32 @@
}
}
+ private void waitForInitializeTargetMsg(String testCase,
+ ReplicationBroker server) throws Exception
+ {
+ ReplicationMsg msgrcv;
+ do
+ {
+ msgrcv = server.receive();
+ log(testCase + " " + server.getServerId() + " receives " + msgrcv);
+ }
+ while (!(msgrcv instanceof InitializeTargetMsg));
+ Assertions.assertThat(msgrcv).isInstanceOf(InitializeTargetMsg.class);
+ }
+
@Test(enabled=true, groups="slow")
public void initializeExportMultiSS() throws Exception
{
String testCase = "initializeExportMultiSS";
log("Starting "+testCase);
-
try
{
- // Create 2 changelogs
- changelog1 = createChangelogServer(changelog1ID, testCase);
- Thread.sleep(1000);
-
- changelog2 = createChangelogServer(changelog2ID, testCase);
+ replServer1 = createReplicationServer(replServer1ID, testCase);
+ replServer2 = createReplicationServer(replServer2ID, testCase);
Thread.sleep(1000);
// Connect DS to the replicationServer 1
- connectServer1ToChangelog(changelog1ID);
+ connectServer1ToReplServer(replServer1ID);
// Put entries in DB
log(testCase + " Will add entries");
@@ -1171,49 +1084,37 @@
// Connect a broker acting as server 2 to Repl Server 2
if (server2 == null)
{
- log(testCase + " Will connect server 2 to " + changelog2ID);
+ log(testCase + " Will connect server 2 to " + replServer2ID);
server2 = openReplicationSession(DN.decode(EXAMPLE_DN),
- server2ID, 100, getChangelogPort(changelog2ID),
- 1000, emptyOldChanges, changelog1.getGenerationId(baseDN));
+ server2ID, 100, getReplServerPort(replServer2ID),
+ 1000, emptyOldChanges, replServer1.getGenerationId(baseDN));
}
// Connect a broker acting as server 3 to Repl Server 3
- log(testCase + " Will create replServer " + changelog3ID);
- changelog3 = createChangelogServer(changelog3ID, testCase);
+ log(testCase + " Will create replServer " + replServer3ID);
+ replServer3 = createReplicationServer(replServer3ID, testCase);
Thread.sleep(500);
if (server3 == null)
{
- log(testCase + " Will connect server 3 to " + changelog3ID);
+ log(testCase + " Will connect server 3 to " + replServer3ID);
server3 = openReplicationSession(DN.decode(EXAMPLE_DN),
- server3ID, 100, getChangelogPort(changelog3ID),
- 1000, emptyOldChanges, changelog1.getGenerationId(baseDN));
+ server3ID, 100, getReplServerPort(replServer3ID),
+ 1000, emptyOldChanges, replServer1.getGenerationId(baseDN));
}
- // Thread.sleep(500);
-
// S3 sends init request
log(testCase + " server 3 Will send reqinit to " + server1ID);
InitializeRequestMsg initMsg = new InitializeRequestMsg(baseDN, server3ID, server1ID, 100);
server3.publish(initMsg);
// S3 should receive target, entries & done
- log(testCase + " Wait for InitializeTargetMsg");
-
- ReplicationMsg msgrcv = null;
- do
- {
- msgrcv = server3.receive();
- log(testCase + " receives "+ msgrcv);
- }
- while (!(msgrcv instanceof InitializeTargetMsg));
- assertTrue(msgrcv instanceof InitializeTargetMsg,msgrcv.getClass().getCanonicalName() +
- msgrcv);
+ waitForInitializeTargetMsg(testCase, server3);
// Signal RS we just entered the full update status
server3.signalStatusChange(ServerStatus.FULL_UPDATE_STATUS);
log(testCase + " Will verify server 3 has received expected entries");
- receiveUpdatedEntries(server3, server3ID, updatedEntries);
+ receiveUpdatedEntries(server3);
log("Successfully ending " + testCase);
}
@@ -1228,14 +1129,12 @@
{
String testCase = "initializeNoSource";
log("Starting "+testCase);
-
try
{
- // Start Replication Server
- changelog1 = createChangelogServer(changelog1ID, testCase);
+ replServer1 = createReplicationServer(replServer1ID, testCase);
// Creates config to synchronize suffix
- connectServer1ToChangelog(changelog1ID);
+ connectServer1ToReplServer(replServer1ID);
// Test 1
Entry taskInit = TestCaseUtils.makeEntry(
@@ -1285,14 +1184,12 @@
{
String testCase = "initializeTargetNoTarget" + baseDN;
log("Starting "+testCase);
-
try
{
- // Start SS
- changelog1 = createChangelogServer(changelog1ID, testCase);
+ replServer1 = createReplicationServer(replServer1ID, testCase);
// Creates config to synchronize suffix
- connectServer1ToChangelog(changelog1ID);
+ connectServer1ToReplServer(replServer1ID);
// Put entries in DB
addTestEntriesToDB();
@@ -1357,22 +1254,20 @@
public void initializeSimultaneous() throws Exception
{
String testCase = "initializeSimultaneous";
-
try
{
- // Start SS
- changelog1 = createChangelogServer(changelog1ID, testCase);
+ replServer1 = createReplicationServer(replServer1ID, testCase);
- // Connect a broker acting as server 2 to changelog2
+ // Connect a broker acting as server 2 to replServer2
if (server2 == null)
{
server2 = openReplicationSession(DN.decode(EXAMPLE_DN),
- server2ID, 100, getChangelogPort(changelog1ID),
+ server2ID, 100, getReplServerPort(replServer1ID),
1000, emptyOldChanges);
}
// Creates config to synchronize suffix
- connectServer1ToChangelog(changelog1ID);
+ connectServer1ToReplServer(replServer1ID);
Entry taskInit = TestCaseUtils.makeEntry(
"dn: ds-task-id=" + UUID.randomUUID() +
@@ -1454,10 +1349,14 @@
sleep(100); // give some time to the brokers to disconnect from the replicationServer.
server2 = server3 = null;
+ // do not try to remove non-leaves
+ entriesToCleanup.removeAll(Arrays.asList(
+ baseDN,
+ DN.decode("ou=people," + EXAMPLE_DN)));
super.cleanRealEntries();
- remove(changelog1, changelog2, changelog3);
- changelog1 = changelog2 = changelog3 = null;
+ remove(replServer1, replServer2, replServer3);
+ replServer1 = replServer2 = replServer3 = null;
Arrays.fill(replServerPort, 0);
log("Successfully cleaned " + testCase);
--
Gitblit v1.10.0