From aadaa214075f1f30cda46a4f0e041b8b123d261f Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Fri, 09 Aug 2013 14:57:44 +0000
Subject: [PATCH] ExternalChangeLogTest.java: In ECLAfterChangelogTrim(), inverted 2 parameters to fix a test failure. Used AutoRefactor plugin. Extracted method waitForClose().
---
opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ExternalChangeLogTest.java | 207 ++++++++++++++++++++++++++++-----------------------
1 files changed, 113 insertions(+), 94 deletions(-)
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ExternalChangeLogTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ExternalChangeLogTest.java
index 2a46a6c..ed519a0 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ExternalChangeLogTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ExternalChangeLogTest.java
@@ -170,7 +170,9 @@
(ECLWorkflowElement) DirectoryServer
.getWorkflowElement(ECLWorkflowElement.ECL_WORKFLOW_ELEMENT);
if (wfe != null)
+ {
wfe.getReplicationServer().enableECL();
+ }
// Test all types of ops.
ECLAllOps(); // Do not clean the db for the next test
@@ -398,12 +400,13 @@
ECLCompatTestLimits(0,0, false);
}
- //=======================================================
- // Objectives
- // - Test that everything id ok with no changes
- // Procedure
- // - Does a SEARCH from 3 different remote ECL session,
- // - Verify DoneMsg is received on each session.
+ /**
+ * Objectives
+ * - Test that everything is ok with no changes
+ * Procedure
+ * - Does a SEARCH from 3 different remote ECL session,
+ * - Verify DoneMsg is received on each session.
+ */
private void ECLRemoteEmpty() throws Exception
{
String tn = "ECLRemoteEmpty";
@@ -483,12 +486,13 @@
}
}
- //=======================================================
- // Objectives
- // - Test that everything id ok with changes on 2 suffixes
- // Procedure
- // - From 1 remote ECL session,
- // - Test simple update to be received from 2 suffixes
+ /**
+ * Objectives
+ * - Test that everything is ok with changes on 2 suffixes
+ * Procedure
+ * - From 1 remote ECL session,
+ * - Test simple update to be received from 2 suffixes
+ */
private void ECLRemoteNonEmpty() throws Exception
{
String tn = "ECLRemoteNonEmpty";
@@ -729,14 +733,14 @@
assertTrue(entries != null, "Entries returned when test2 is ECL disabled.");
assertTrue(entries.size()==1, "#Entry="+entries.size()+"when expected is 1");
if (entries != null)
+ {
for (SearchResultEntry resultEntry : entries)
{
- // Expect
debugInfo(tn, "Entry returned when test2 is private ="
+ resultEntry.toLDIFString());
}
+ }
- //
// Test lastExternalChangelogCookie attribute of the ECL
// (does only refer to non private backend)
MultiDomainServerState expectedLastCookie =
@@ -753,9 +757,13 @@
{
// Cleaning
if (domain2 != null && baseDn2 != null)
+ {
MultimasterReplication.deleteDomain(baseDn2);
+ }
if (backend2 != null)
- removeTestBackend2(backend2);
+ {
+ removeTestBackend2(backend2);
+ }
stop(server01);
replicationServer.clearDb();
@@ -871,9 +879,7 @@
// we expect msg1 + msg4 + msg5
assertEquals(searchOp.getSearchEntries().size(), 3);
- //
// Test startState ("first cookie") of the ECL
- //
// --
s1test2 = openReplicationSession(
DN.decode(TEST_ROOT_DN_STRING2), 1203,
@@ -913,9 +919,7 @@
assertTrue(startState.getChangeNumber(s2test2.getServerId()).getSeqnum()==2);
assertTrue(startState.getChangeNumber(s1test2.getServerId()).getSeqnum()==6);
- //
// Test lastExternalChangelogCookie attribute of the ECL
- //
MultiDomainServerState expectedLastCookie =
new MultiDomainServerState("o=test:"+cn5+" "+cn9+";o=test2:"+cn3+" "+cn8+";");
@@ -958,7 +962,7 @@
.get("o=test:;","<"+ newCookie + "o=test:;>").toString();
assertTrue(searchOp.getErrorMessage().toString().equalsIgnoreCase(expectedError),
"Expected: " + expectedError + "Server output:" +
- searchOp.getErrorMessage().toString());
+ searchOp.getErrorMessage());
}
finally
{
@@ -1050,8 +1054,7 @@
null);
}
- //=======================================================
- // Test ECL content after replication changelogdb triming
+ /** Test ECL content after replication changelogdb triming */
private void ECLAfterChangelogTrim() throws Exception
{
String tn = "ECLAfterChangelogTrim";
@@ -1102,7 +1105,6 @@
// Sleep longer than this delay - so that the changelog is trimmed
Thread.sleep(1000);
- //
LDIFWriter ldifWriter = getLDIFWriter();
// ---
@@ -1127,7 +1129,7 @@
// 4. Assert that a request with the current last cookie returns nothing
cookie = readLastCookie();
debugInfo(tn, "2. Search with last cookie=" + cookie + "\"");
- searchOp = searchOnCookieChangelog("(targetDN=*)", tn, cookie, SUCCESS);
+ searchOp = searchOnCookieChangelog("(targetDN=*)", cookie, tn, SUCCESS);
entries = searchOp.getSearchEntries();
if (entries != null)
@@ -1165,9 +1167,13 @@
stop(server01);
// And reset changelog purge delay for the other tests.
if (d1 != null)
+ {
d1.setPurgeDelay(15 * 1000);
+ }
if (d2 != null)
+ {
d2.setPurgeDelay(15 * 1000);
+ }
replicationServer.clearDb();
}
@@ -1179,7 +1185,6 @@
String cookie = "";
LDIFWriter ldifWriter = getLDIFWriter();
- //
Set<String> lastcookieattribute = new LinkedHashSet<String>();
lastcookieattribute.add("lastExternalChangelogCookie");
@@ -1360,7 +1365,9 @@
checkValue(resultEntry,"targetentryuuid",tn+"uuid4");
checkValue(resultEntry,"newrdn","uid=ECLAllOpsnew4");
if (newSuperior != null)
- checkValue(resultEntry,"newsuperior",TEST_ROOT_DN_STRING2);
+ {
+ checkValue(resultEntry, "newsuperior", TEST_ROOT_DN_STRING2);
+ }
checkValue(resultEntry,"deleteoldrdn","true");
checkValue(resultEntry,"changenumber","0");
}
@@ -1391,12 +1398,18 @@
while(true) {
String s = br.readLine();
if(s == null)
+ {
break;
+ }
if(!s.startsWith("#"))
+ {
continue;
+ }
String[] a=s.split(": ");
if(a.length != 2)
+ {
break;
+ }
ctrlList.add(a[1]);
}
} catch (IOException e) {
@@ -1426,9 +1439,8 @@
oStream.reset();
eStream.reset();
- int retVal =
- LDAPSearch.mainSearch(args3, false, oStream, eStream);
- Assert.assertEquals(0, retVal, "Returned error: " + eStream.toString());
+ int retVal = LDAPSearch.mainSearch(args3, false, oStream, eStream);
+ Assert.assertEquals(0, retVal, "Returned error: " + eStream);
return oStream.toString();
}
@@ -1559,7 +1571,7 @@
"11111111-1112-1113-1114-111111111114");
debugInfo(tn, " publishing " + delMsg.getChangeNumber());
server01.publish(delMsg);
- this.sleep(500); // let's be sure the message is in the RS
+ sleep(500); // let's be sure the message is in the RS
// Creates cookie control
String cookie = "";
@@ -1619,12 +1631,12 @@
LDAPMessage message;
message = new LDAPMessage(2, searchRequest, controls);
w.writeMessage(message);
- this.sleep(500);
+ sleep(500);
SearchResultEntryProtocolOp searchResultEntry = null;
SearchResultDoneProtocolOp searchResultDone = null;
- if (changesOnly == false)
+ if (!changesOnly)
{
// Wait for change 1
debugInfo(tn, "Waiting for init search expected to return change 1");
@@ -1632,7 +1644,7 @@
message = null;
{
- while ((searchEntries<1) && (message = r.readMessage()) != null)
+ while (searchEntries < 1 && (message = r.readMessage()) != null)
{
debugInfo(tn, "Init search Result=" +
message.getProtocolOpType() + message + " " + searchEntries);
@@ -1672,7 +1684,7 @@
debugInfo(tn, " publishing " + delMsg.getChangeNumber());
server01.publish(delMsg);
this.gblCN = cn;
- this.sleep(1000);
+ sleep(1000);
debugInfo(tn, delMsg.getChangeNumber() +
" published , psearch will now wait for new entries");
@@ -1682,7 +1694,7 @@
searchResultEntry = null;
searchResultDone = null;
message = null;
- while ((searchEntries<1) && (message = r.readMessage()) != null)
+ while (searchEntries < 1 && (message = r.readMessage()) != null)
{
debugInfo(tn, "psearch search Result=" +
message.getProtocolOpType() + message);
@@ -1712,20 +1724,19 @@
// Check we received change 2
for (LDAPAttribute a : searchResultEntry.getAttributes())
{
- if (a.getAttributeType().equalsIgnoreCase("targetDN"))
+ if ("targetDN".equalsIgnoreCase(a.getAttributeType()))
{
for (ByteString av : a.getValues())
{
assertTrue(av.toString().equalsIgnoreCase(expectedDn),
- "Entry returned by psearch is " + av.toString() +
+ "Entry returned by psearch is " + av +
" when expected is " + expectedDn);
}
}
}
debugInfo(tn, "Second search done successfully : " + searchResultEntry);
server01.stop();
- close(s);
- while (!s.isClosed()) sleep(100);
+ waitForClose(s);
// TODO: Testing ACI is disabled because it is currently failing when
// ran in the precommit target while it works well when running alone.
@@ -1851,7 +1862,7 @@
"11111111-1111-1111-1111-111111111111");
debugInfo(tn, " publishing " + delMsg1);
server01.publish(delMsg1);
- this.sleep(500); // let's be sure the message is in the RS
+ sleep(500); // let's be sure the message is in the RS
// Produce update 2
ChangeNumber cn2 =
@@ -1861,7 +1872,7 @@
"22222222-2222-2222-2222-222222222222");
debugInfo(tn, " publishing " + delMsg2);
server02.publish(delMsg2);
- this.sleep(500); // let's be sure the message is in the RS
+ sleep(500); // let's be sure the message is in the RS
// Produce update 3
ChangeNumber cn3 =
@@ -1871,7 +1882,7 @@
"33333333-3333-3333-3333-333333333333");
debugInfo(tn, " publishing " + delMsg3);
server02.publish(delMsg3);
- this.sleep(500); // let's be sure the message is in the RS
+ sleep(500); // let's be sure the message is in the RS
// Creates cookie control
String cookie = "";
@@ -1969,28 +1980,28 @@
LDAPMessage message;
message = new LDAPMessage(2, searchRequest1, controls);
w1.writeMessage(message);
- this.sleep(500);
+ sleep(500);
message = new LDAPMessage(2, searchRequest2, controls);
w2.writeMessage(message);
- this.sleep(500);
+ sleep(500);
message = new LDAPMessage(2, searchRequest3, controls);
w3.writeMessage(message);
- this.sleep(500);
+ sleep(500);
SearchResultEntryProtocolOp searchResultEntry = null;
SearchResultDoneProtocolOp searchResultDone = null;
- if (changesOnly == false)
+ if (!changesOnly)
{
- debugInfo(tn, "Search1 Persistent filter="+searchRequest1.getFilter().toString()
+ debugInfo(tn, "Search1 Persistent filter=" + searchRequest1.getFilter()
+ " expected to return change " + cn1);
searchEntries = 0;
message = null;
{
- while ((searchEntries<1) && (message = r1.readMessage()) != null)
+ while (searchEntries < 1 && (message = r1.readMessage()) != null)
{
debugInfo(tn, "Search1 Result=" +
message.getProtocolOpType() + " " + message);
@@ -2027,9 +2038,9 @@
searchEntries = 0;
message = null;
{
- debugInfo(tn, "Search 2 Persistent filter="+searchRequest2.getFilter().toString()
+ debugInfo(tn, "Search 2 Persistent filter=" + searchRequest2.getFilter()
+ " expected to return change " + cn2 + " & " + cn3);
- while ((searchEntries<2) && (message = r2.readMessage()) != null)
+ while (searchEntries < 2 && (message = r2.readMessage()) != null)
{
debugInfo(tn, "Search 2 Result=" +
message.getProtocolOpType() + message);
@@ -2063,9 +2074,9 @@
searchEntries = 0;
message = null;
{
- debugInfo(tn, "Search3 Persistent filter="+searchRequest3.getFilter().toString()
+ debugInfo(tn, "Search3 Persistent filter=" + searchRequest3.getFilter()
+ " expected to return change top + " + cn1 + " & " + cn2 + " & " + cn3);
- while ((searchEntries<4) && (message = r3.readMessage()) != null)
+ while (searchEntries < 4 && (message = r3.readMessage()) != null)
{
debugInfo(tn, "Search3 Result=" +
message.getProtocolOpType() + " " + message);
@@ -2103,7 +2114,7 @@
"44444444-4444-4444-4444-444444444444");
debugInfo(tn, " publishing " + delMsg11);
server01.publish(delMsg11);
- this.sleep(500);
+ sleep(500);
debugInfo(tn, delMsg11.getChangeNumber() + " published additionally ");
// Produces additional change
@@ -2113,7 +2124,7 @@
"55555555-5555-5555-5555-555555555555");
debugInfo(tn, " publishing " + delMsg12 );
server02.publish(delMsg12);
- this.sleep(500);
+ sleep(500);
debugInfo(tn, delMsg12.getChangeNumber() + " published additionally ");
// Produces additional change
@@ -2123,7 +2134,7 @@
"66666666-6666-6666-6666-666666666666");
debugInfo(tn, " publishing " + delMsg13);
server02.publish(delMsg13);
- this.sleep(500);
+ sleep(500);
debugInfo(tn, delMsg13.getChangeNumber() + " published additionally ");
// wait 11
@@ -2131,7 +2142,7 @@
searchResultEntry = null;
searchResultDone = null;
message = null;
- while ((searchEntries<1) && (message = r1.readMessage()) != null)
+ while (searchEntries < 1 && (message = r1.readMessage()) != null)
{
debugInfo(tn, "Search 11 Result=" +
message.getProtocolOpType() + " " + message);
@@ -2164,7 +2175,7 @@
searchResultEntry = null;
searchResultDone = null;
message = null;
- while ((searchEntries<2) && (message = r2.readMessage()) != null)
+ while (searchEntries < 2 && (message = r2.readMessage()) != null)
{
debugInfo(tn, "psearch search 12 Result=" +
message.getProtocolOpType() + " " + message);
@@ -2197,7 +2208,7 @@
searchResultEntry = null;
searchResultDone = null;
message = null;
- while ((searchEntries<3) && (message = r3.readMessage()) != null)
+ while (searchEntries < 3 && (message = r3.readMessage()) != null)
{
debugInfo(tn, "psearch search 13 Result=" +
message.getProtocolOpType() + " " + message);
@@ -2227,12 +2238,12 @@
// Check we received change 13
for (LDAPAttribute a : searchResultEntry.getAttributes())
{
- if (a.getAttributeType().equalsIgnoreCase("targetDN"))
+ if ("targetDN".equalsIgnoreCase(a.getAttributeType()))
{
for (ByteString av : a.getValues())
{
assertTrue(av.toString().equalsIgnoreCase(expectedDn13),
- "Entry returned by psearch 13 is " + av.toString() +
+ "Entry returned by psearch 13 is " + av +
" when expected is " + expectedDn13);
}
}
@@ -2242,28 +2253,28 @@
finally
{
stop(server01, server02);
-
- if (s1 != null)
- {
- close(s1);
- while (!s1.isClosed()) sleep(100);
- }
- if (s2 != null)
- {
- close(s2);
- while (!s2.isClosed()) sleep(100);
- }
- if (s3 != null)
- {
- close(s3);
- while (!s3.isClosed()) sleep(100);
- }
+ waitForClose(s1, s2, s3);
replicationServer.clearDb();
}
debugInfo(tn, "Ends test successfully");
}
- // utility - bind as required
+ private void waitForClose(Socket... sockets) throws InterruptedException
+ {
+ for (Socket s : sockets)
+ {
+ if (s != null)
+ {
+ close(s);
+ while (!s.isClosed())
+ {
+ sleep(100);
+ }
+ }
+ }
+ }
+
+ /** utility - bind as required */
private void bindAsManager(LDAPWriter w, org.opends.server.tools.LDAPReader r)
throws Exception
{
@@ -2271,7 +2282,7 @@
"cn=Directory Manager", "password", LDAPResultCode.SUCCESS);
}
- // utility - bind as required
+ /** utility - bind as required */
private void bindAsWhoEver(LDAPWriter w, org.opends.server.tools.LDAPReader r,
String bindDN, String password, int expected) throws Exception
{
@@ -2393,7 +2404,6 @@
DirectoryServer.deregisterBackend(memoryBackend);
}
- //=======================================================
private void ChangeTimeHeartbeatTest() throws Exception
{
String tn = "ChangeTimeHeartbeatTest";
@@ -2492,7 +2502,9 @@
{
stop(s1test2, s2test2);
if (backend2 != null)
+ {
removeTestBackend2(backend2);
+ }
stop(s1test, s2test);
replicationServer.clearDb();
@@ -2652,7 +2664,7 @@
checkValue(resultEntry,"replicaidentifier","1201");
checkValue(resultEntry,"targetdn","uid="+tn+"1," + TEST_ROOT_DN_STRING);
checkValue(resultEntry,"changetype","delete");
- checkValue(resultEntry,"changelogcookie","o=test:"+cn1.toString()+";");
+ checkValue(resultEntry, "changelogcookie", "o=test:" + cn1 + ";");
checkValue(resultEntry,"targetentryuuid",user1entryUUID);
checkValue(resultEntry,"changenumber",String.valueOf(firstDraftChangeNumber+0));
checkValue(resultEntry,"targetuniqueid",user1entryUUID);
@@ -2670,7 +2682,7 @@
checkValue(resultEntry,"replicaidentifier","1201");
checkValue(resultEntry,"targetdn","uid="+tn+"2," + TEST_ROOT_DN_STRING);
checkValue(resultEntry,"changetype","add");
- checkValue(resultEntry,"changelogcookie","o=test:"+gblCN.toString()+";");
+ checkValue(resultEntry, "changelogcookie", "o=test:" + gblCN + ";");
checkValue(resultEntry,"targetentryuuid",user1entryUUID);
checkValue(resultEntry,"changenumber",String.valueOf(firstDraftChangeNumber+1));
} else if (i==3)
@@ -2685,7 +2697,7 @@
checkValue(resultEntry,"replicaidentifier","1201");
checkValue(resultEntry,"targetdn","uid="+tn+"3," + TEST_ROOT_DN_STRING);
checkValue(resultEntry,"changetype","modify");
- checkValue(resultEntry,"changelogcookie","o=test:"+cn3.toString()+";");
+ checkValue(resultEntry, "changelogcookie", "o=test:" + cn3 + ";");
checkValue(resultEntry,"targetentryuuid",user1entryUUID);
checkValue(resultEntry,"changenumber",String.valueOf(firstDraftChangeNumber+2));
} else if (i==4)
@@ -2697,7 +2709,7 @@
checkValue(resultEntry,"replicaidentifier","1201");
checkValue(resultEntry,"targetdn","uid="+tn+"4," + TEST_ROOT_DN_STRING);
checkValue(resultEntry,"changetype","modrdn");
- checkValue(resultEntry,"changelogcookie","o=test:"+cn4.toString()+";");
+ checkValue(resultEntry, "changelogcookie", "o=test:" + cn4 + ";");
checkValue(resultEntry,"targetentryuuid",user1entryUUID);
checkValue(resultEntry,"newrdn","uid="+tn+"new4");
checkValue(resultEntry,"newsuperior",TEST_ROOT_DN_STRING2);
@@ -2735,8 +2747,8 @@
debugInfo(tn, "Result entry returned:" + resultEntry.toLDIFString());
ldifWriter.writeEntry(resultEntry);
// check the entry has the right content
- assertTrue(resultEntry.getDN().toNormalizedString().equalsIgnoreCase(
- "changenumber=6,cn=changelog"));
+ assertTrue("changenumber=6,cn=changelog".equalsIgnoreCase(resultEntry
+ .getDN().toNormalizedString()));
checkValue(resultEntry,"replicationcsn",gblCN.toString());
checkValue(resultEntry,"replicaidentifier","1201");
checkValue(resultEntry,"changetype","add");
@@ -3411,8 +3423,8 @@
String targetdn = getAttributeValue(resultEntry, "targetdn");
- if ((targetdn.endsWith("cn=robert hue,o=test3"))
- ||(targetdn.endsWith("cn=robert hue2,o=test3")))
+ if (targetdn.endsWith("cn=robert hue,o=test3")
+ || targetdn.endsWith("cn=robert hue2,o=test3"))
{
Entry targetEntry = parseIncludedAttributes(resultEntry, targetdn);
@@ -3424,7 +3436,7 @@
checkValues(targetEntry, "objectclass", eoc);
String changeType = getAttributeValue(resultEntry, "changetype");
- if (changeType.equals("delete"))
+ if ("delete".equals(changeType))
{
// We are using "*" for deletes so should get back 4 attributes.
assertEquals(targetEntry.getAttributes().size(), 4);
@@ -3476,14 +3488,20 @@
// Cleaning
if (domain21 != null)
+ {
domain21.shutdown();
+ }
if (domain2 != null)
+ {
MultimasterReplication.deleteDomain(baseDn2);
+ }
removeTestBackend2(backend2);
if (domain3 != null)
+ {
MultimasterReplication.deleteDomain(baseDn3);
+ }
removeTestBackend2(backend3);
}
finally
@@ -3520,22 +3538,23 @@
String[] ldif = new String[ldifAttributeLines.length + 1];
System.arraycopy(ldifAttributeLines, 0, ldif, 1, ldifAttributeLines.length);
ldif[0] = "dn: " + targetdn;
- Entry targetEntry = TestCaseUtils.makeEntry(ldif);
- return targetEntry;
+ return TestCaseUtils.makeEntry(ldif);
}
private void waitOpResult(Operation operation, ResultCode expectedResult)
throws Exception
{
int ii=0;
- while((operation.getResultCode()==ResultCode.UNDEFINED) ||
- (operation.getResultCode()!=expectedResult))
+ while (operation.getResultCode() == ResultCode.UNDEFINED
+ || operation.getResultCode() != expectedResult)
{
sleep(50);
ii++;
if (ii>10)
- assertEquals(operation.getResultCode(), expectedResult,
- operation.getErrorMessage().toString());
+ {
+ assertEquals(operation.getResultCode(), expectedResult, operation
+ .getErrorMessage().toString());
+ }
}
}
}
--
Gitblit v1.10.0