From b18b4d0ef0c16296dc29f5a2d554337d91133b20 Mon Sep 17 00:00:00 2001
From: pgamba <pgamba@localhost>
Date: Mon, 14 Dec 2009 15:35:49 +0000
Subject: [PATCH] try to improve this test

---
 opends/tests/unit-tests-testng/src/server/org/opends/server/replication/GenerationIdTest.java |   47 ++++++++++++++++++++++++++++++++++-------------
 1 files changed, 34 insertions(+), 13 deletions(-)

diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/GenerationIdTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/GenerationIdTest.java
index db67da0..bcdffc2 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/GenerationIdTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/GenerationIdTest.java
@@ -82,6 +82,7 @@
 import org.opends.server.types.SearchFilter;
 import org.opends.server.types.SearchResultEntry;
 import org.opends.server.types.SearchScope;
+import org.opends.server.util.TimeThread;
 import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
 
@@ -175,7 +176,7 @@
 
   private void debugInfo(String s)
   {
-    logError(Message.raw(Category.SYNC, Severity.NOTICE, s));
+    logError(Message.raw(Category.SYNC, Severity.NOTICE, "** TEST **" + s));
     if (debugEnabled())
     {
       TRACER.debugInfo("** TEST **" + s);
@@ -511,6 +512,7 @@
       catch (DirectoryException e)
       {
         // success
+        debugInfo("disconnectFromReplServer:" + changelogID, e);
       }
     }
     catch(Exception e)
@@ -1137,7 +1139,7 @@
    * - genId reset propagation from one RS to the others
    */
   @Test(enabled=false)
-  public void testMultiRS() throws Exception
+  public void testMultiRS(int i) throws Exception
   {
     String testCase = "testMultiRS";
     long genId;
@@ -1154,7 +1156,6 @@
       replServer1 = createReplicationServer(changelog1ID, true, testCase);
       replServer2 = createReplicationServer(changelog2ID, true, testCase);
       replServer3 = createReplicationServer(changelog3ID, true, testCase);
-      Thread.sleep(500);
 
       debugInfo("Connecting DS to replServer1");
       connectServer1ToChangelog(changelog1ID);
@@ -1191,7 +1192,7 @@
         Thread.sleep(100);
       }
       debugInfo(
-        "Expect genIds to be resetted in all servers to -1 as no more DS in topo");
+        "Expect genIds to be resetted in all servers to -1 as no more DS in topo - after 10 sec");
       assertEquals(replServer1.getGenerationId(baseDn.toNormalizedString()), -1);
       assertEquals(replServer2.getGenerationId(baseDn.toNormalizedString()), -1);
       assertEquals(replServer3.getGenerationId(baseDn.toNormalizedString()), -1);
@@ -1240,8 +1241,20 @@
       debugInfo("Disconnecting DS from replServer1");
       disconnectFromReplServer(changelog1ID);
 
+      debugInfo("Verifying that all replservers genIds have been reset.");
+
       debugInfo(
-        "Expect all genIds to keep their value since broker2 is still connected.");
+      "Expect all genIds to keep their value since broker2 is still connected.");
+      waitRes=0;
+      while(waitRes<100)
+      {
+        if ((replServer1.getGenerationId(baseDn.toNormalizedString())==genId)
+          && (replServer2.getGenerationId(baseDn.toNormalizedString())==genId)
+          && (replServer3.getGenerationId(baseDn.toNormalizedString())==genId))
+          break;
+        waitRes++;
+        Thread.sleep(100);
+      }
       assertEquals(replServer1.getGenerationId(baseDn.toNormalizedString()), genId);
       assertEquals(replServer2.getGenerationId(baseDn.toNormalizedString()), genId);
       assertEquals(replServer3.getGenerationId(baseDn.toNormalizedString()), genId);
@@ -1271,7 +1284,6 @@
 
       debugInfo("Connecting DS to replServer1.");
       connectServer1ToChangelog(changelog1ID);
-      Thread.sleep(3000);
 
 
       debugInfo("Adding reset task to DS.");
@@ -1293,7 +1305,7 @@
       assertEquals(replServer2.getGenerationId(baseDn.toNormalizedString()), genId);
       assertEquals(replServer3.getGenerationId(baseDn.toNormalizedString()), genId);
 
-      debugInfo("Adding reset task to DS.");
+      debugInfo("Adding reset task to DS." + genId);
       taskReset = TestCaseUtils.makeEntry(
         "dn: ds-task-id=resetgenid" + UUID.randomUUID() +
         ",cn=Scheduled Tasks,cn=Tasks",
@@ -1305,13 +1317,22 @@
         "ds-task-reset-generation-id-new-value: -1");
       addTask(taskReset, ResultCode.SUCCESS, null);
       waitTaskState(taskReset, TaskState.COMPLETED_SUCCESSFULLY, null);
-      Thread.sleep(500);
 
       debugInfo("Verifying that all replservers genIds have been reset.");
-      genId = readGenIdFromSuffixRootEntry();
-      assertEquals(replServer1.getGenerationId(baseDn.toNormalizedString()), -1);
-      assertEquals(replServer2.getGenerationId(baseDn.toNormalizedString()), -1);
-      assertEquals(replServer3.getGenerationId(baseDn.toNormalizedString()), -1);
+      waitRes=0;
+      while(waitRes<100)
+      {
+        genId = readGenIdFromSuffixRootEntry();
+        if ((replServer1.getGenerationId(baseDn.toNormalizedString())==-1)
+          && (replServer2.getGenerationId(baseDn.toNormalizedString())==-1)
+          && (replServer3.getGenerationId(baseDn.toNormalizedString())==-1))
+          break;
+        waitRes++;
+        Thread.sleep(100);
+      }
+      assertEquals(replServer1.getGenerationId(baseDn.toNormalizedString()), -1, "test"+i);
+      assertEquals(replServer2.getGenerationId(baseDn.toNormalizedString()), -1, "test"+i);
+      assertEquals(replServer3.getGenerationId(baseDn.toNormalizedString()), -1, "test"+i);
 
       debugInfo(
         "Disconnect DS from replServer1 (required in order to DEL entries).");
@@ -1477,7 +1498,7 @@
   public void generationIdTest() throws Exception
   {
     testSingleRS();
-    testMultiRS();
+    testMultiRS(0);
     testServerStop();
     testLoop();
   }

--
Gitblit v1.10.0