[jboss-cvs] JBoss Messaging SVN: r5171 - in trunk/tests/src/org/jboss/messaging/tests/unit/core/journal/impl: fakes and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Oct 23 10:51:41 EDT 2008


Author: clebert.suconic at jboss.com
Date: 2008-10-23 10:51:40 -0400 (Thu, 23 Oct 2008)
New Revision: 5171

Modified:
   trunk/tests/src/org/jboss/messaging/tests/unit/core/journal/impl/JournalAsyncTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/journal/impl/fakes/FakeSequentialFileFactory.java
Log:
Fixing JournalAsyncTest unit-test

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/journal/impl/JournalAsyncTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/journal/impl/JournalAsyncTest.java	2008-10-22 20:18:51 UTC (rev 5170)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/journal/impl/JournalAsyncTest.java	2008-10-23 14:51:40 UTC (rev 5171)
@@ -22,6 +22,7 @@
 
 package org.jboss.messaging.tests.unit.core.journal.impl;
 
+import java.nio.ByteBuffer;
 import java.util.ArrayList;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
@@ -31,6 +32,7 @@
 import org.jboss.messaging.core.journal.impl.JournalImpl;
 import org.jboss.messaging.tests.unit.core.journal.impl.fakes.FakeSequentialFileFactory;
 import org.jboss.messaging.tests.unit.core.journal.impl.fakes.SimpleEncoding;
+import org.jboss.messaging.tests.unit.core.journal.impl.fakes.FakeSequentialFileFactory.FakeSequentialFile;
 import org.jboss.messaging.tests.util.UnitTestCase;
 
 public class JournalAsyncTest extends UnitTestCase
@@ -60,7 +62,7 @@
 
       setupJournal(JOURNAL_SIZE, 100, 5);
 
-      factory.setHoldCallbacks(true);
+      factory.setHoldCallbacks(true, null);
 
       final CountDownLatch latch = new CountDownLatch(1);
 
@@ -79,7 +81,7 @@
                }
 
                latch.countDown();
-               factory.setHoldCallbacks(false);
+               factory.setHoldCallbacks(false, null);
                journalImpl.appendCommitRecord(1l);
             }
             catch (Exception e)
@@ -115,10 +117,15 @@
 
       setupJournal(JOURNAL_SIZE, 100, 5);
 
-      factory.setHoldCallbacks(true);
+      final CountDownLatch latch = new CountDownLatch(11);
 
-      final CountDownLatch latch = new CountDownLatch(1);
+      factory.setHoldCallbacks(true, new FakeSequentialFileFactory.ListenerHoldCallback(){
 
+         public void callbackAdded(ByteBuffer bytes)
+         {
+            latch.countDown();
+         }});
+
       class LocalThread extends Thread
       {
          Exception e;
@@ -133,7 +140,6 @@
                   journalImpl.appendAddRecordTransactional(1l, i, (byte)1, new SimpleEncoding(1, (byte)0));
                }
 
-               latch.countDown();
                journalImpl.appendRollbackRecord(1l);
             }
             catch (Exception e)
@@ -173,10 +179,16 @@
 
       setupJournal(JOURNAL_SIZE, 100, 5);
 
-      factory.setHoldCallbacks(true);
+      final CountDownLatch latch = new CountDownLatch(11);
 
-      final CountDownLatch latch = new CountDownLatch(1);
+      factory.setHoldCallbacks(true, new FakeSequentialFileFactory.ListenerHoldCallback(){
 
+         public void callbackAdded(ByteBuffer bytes)
+         {
+            latch.countDown();
+         }});
+
+
       class LocalThread extends Thread
       {
          Exception e;
@@ -191,7 +203,6 @@
                   journalImpl.appendAddRecordTransactional(1l, i, (byte)1, new SimpleEncoding(1, (byte)0));
                }
 
-               latch.countDown();
                journalImpl.appendCommitRecord(1l);
             }
             catch (Exception e)
@@ -243,7 +254,7 @@
 
       setupJournal(JOURNAL_SIZE, 100, 5);
 
-      factory.setHoldCallbacks(true);
+      factory.setHoldCallbacks(true, null);
       factory.setGenerateErrors(true);
 
       journalImpl.appendAddRecordTransactional(1l, 1, (byte)1, new SimpleEncoding(1, (byte)0));
@@ -251,7 +262,7 @@
       factory.flushAllCallbacks();
 
       factory.setGenerateErrors(false);
-      factory.setHoldCallbacks(false);
+      factory.setHoldCallbacks(false, null);
 
       try
       {

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/journal/impl/fakes/FakeSequentialFileFactory.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/journal/impl/fakes/FakeSequentialFileFactory.java	2008-10-22 20:18:51 UTC (rev 5170)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/journal/impl/fakes/FakeSequentialFileFactory.java	2008-10-23 14:51:40 UTC (rev 5171)
@@ -57,6 +57,8 @@
    private final boolean supportsCallback;
 
    private volatile boolean holdCallbacks;
+   
+   private ListenerHoldCallback holdCallbackListener;
 
    private volatile boolean generateErrors;
 
@@ -70,7 +72,7 @@
    {
       this.alignment = alignment;
       this.supportsCallback = supportsCallback;
-      callbacksInHold = new ArrayList<CallbackRunnable>();
+      callbacksInHold =  new ArrayList<CallbackRunnable>();
    }
 
    public FakeSequentialFileFactory()
@@ -166,14 +168,15 @@
       return ByteBuffer.wrap(bytes);
    }
 
-   public boolean isHoldCallbacks()
+   public synchronized boolean isHoldCallbacks()
    {
       return holdCallbacks;
    }
 
-   public void setHoldCallbacks(final boolean holdCallbacks)
+   public synchronized void setHoldCallbacks(final boolean holdCallbacks, final ListenerHoldCallback holdCallbackListener)
    {
       this.holdCallbacks = holdCallbacks;
+      this.holdCallbackListener = holdCallbackListener;
    }
 
    public boolean isGenerateErrors()
@@ -186,7 +189,7 @@
       this.generateErrors = generateErrors;
    }
 
-   public void flushAllCallbacks()
+   public synchronized void flushAllCallbacks()
    {
       for (Runnable action : callbacksInHold)
       {
@@ -196,19 +199,19 @@
       callbacksInHold.clear();
    }
 
-   public void flushCallback(final int position)
+   public synchronized void flushCallback(final int position)
    {
       Runnable run = callbacksInHold.get(position);
       run.run();
       callbacksInHold.remove(run);
    }
 
-   public void setCallbackAsError(final int position)
+   public synchronized void setCallbackAsError(final int position)
    {
       callbacksInHold.get(position).setSendError(true);
    }
 
-   public int getNumberOfCallbacks()
+   public synchronized int getNumberOfCallbacks()
    {
       return callbacksInHold.size();
    }
@@ -231,6 +234,12 @@
 
    // Inner classes -------------------------------------------------
 
+   /** This listener will return a message to the test with each callback added */
+   public static interface ListenerHoldCallback 
+   {
+      public void callbackAdded(final ByteBuffer bytes);
+   }
+   
    private class CallbackRunnable implements Runnable
    {
 
@@ -447,7 +456,7 @@
 
          if (holdCallbacks)
          {
-            callbacksInHold.add(action);
+            addCallback(bytes, action);
          }
          else
          {
@@ -502,6 +511,23 @@
          }
       }
 
+      /**
+       * @param bytes
+       * @param action
+       */
+      private void addCallback(final ByteBuffer bytes, CallbackRunnable action)
+      {
+         synchronized (FakeSequentialFileFactory.this)
+         {
+            callbacksInHold.add(action);
+            if (holdCallbackListener != null)
+            {
+               holdCallbackListener.callbackAdded(bytes);
+            }
+         }
+      }
+
+
       public int getAlignment() throws Exception
       {
          return alignment;




More information about the jboss-cvs-commits mailing list