[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