You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by th...@apache.org on 2013/05/27 14:48:52 UTC
svn commit: r1486598 -
/jackrabbit/oak/trunk/oak-mongomk/src/test/java/org/apache/jackrabbit/mongomk/ClusterTest.java
Author: thomasm
Date: Mon May 27 12:48:52 2013
New Revision: 1486598
URL: http://svn.apache.org/r1486598
Log:
OAK-762 MongoMK: addtional cluster test
Modified:
jackrabbit/oak/trunk/oak-mongomk/src/test/java/org/apache/jackrabbit/mongomk/ClusterTest.java
Modified: jackrabbit/oak/trunk/oak-mongomk/src/test/java/org/apache/jackrabbit/mongomk/ClusterTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mongomk/src/test/java/org/apache/jackrabbit/mongomk/ClusterTest.java?rev=1486598&r1=1486597&r2=1486598&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-mongomk/src/test/java/org/apache/jackrabbit/mongomk/ClusterTest.java (original)
+++ jackrabbit/oak/trunk/oak-mongomk/src/test/java/org/apache/jackrabbit/mongomk/ClusterTest.java Mon May 27 12:48:52 2013
@@ -24,7 +24,6 @@ import org.apache.jackrabbit.mk.blobs.Me
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-import org.junit.Ignore;
import com.mongodb.DB;
@@ -40,40 +39,63 @@ public class ClusterTest {
private MemoryBlobStore bs;
@Test
- @Ignore
public void threeNodes() throws Exception {
MemoryDocumentStore ds = new MemoryDocumentStore();
MemoryBlobStore bs = new MemoryBlobStore();
MongoMK.Builder builder;
builder = new MongoMK.Builder();
- builder.setDocumentStore(ds).setBlobStore(bs);
+ builder.setDocumentStore(ds).setBlobStore(bs).setAsyncDelay(0);
MongoMK mk1 = builder.setClusterId(1).open();
builder = new MongoMK.Builder();
- builder.setDocumentStore(ds).setBlobStore(bs);
+ builder.setDocumentStore(ds).setBlobStore(bs).setAsyncDelay(0);
MongoMK mk2 = builder.setClusterId(2).open();
builder = new MongoMK.Builder();
- builder.setDocumentStore(ds).setBlobStore(bs);
+ builder.setDocumentStore(ds).setBlobStore(bs).setAsyncDelay(0);
MongoMK mk3 = builder.setClusterId(3).open();
- String r1 = mk1.commit("/", "+\"test\":{}", null, null);
-
+ mk1.commit("/", "+\"test\":{}", null, null);
mk2.commit("/", "+\"a\":{}", null, null);
mk3.commit("/", "+\"b\":{}", null, null);
+ mk2.backgroundWrite();
+ mk2.backgroundRead();
+ mk3.backgroundWrite();
+ mk3.backgroundRead();
+ mk1.backgroundWrite();
+ mk1.backgroundRead();
+ mk2.backgroundWrite();
+ mk2.backgroundRead();
+ mk3.backgroundWrite();
+ mk3.backgroundRead();
+
mk2.commit("/", "^\"test/x\":1", null, null);
+ String n3 = mk3.getNodes("/test", mk3.getHeadRevision(), 0, 0, 10, null);
+ // mk3 didn't see the previous change yet;
+ // it is questionable if this should prevent any changes to this node
+ // (currently it does not)
+ assertEquals("{\":childNodeCount\":0}", n3);
mk3.commit("/", "^\"test/y\":2", null, null);
- String r2 = mk1.commit("/", "^\"b/x\":1", null, null);
- String r3 = mk1.commit("/", "^\"a/x\":1", null, null);
-
+ mk3.backgroundWrite();
+ mk3.backgroundRead();
+ mk1.backgroundWrite();
+ mk1.backgroundRead();
+
+ String r1 = mk1.getHeadRevision();
String n1 = mk1.getNodes("/test", r1, 0, 0, 10, null);
- String n2 = mk1.getNodes("/test", r2, 0, 0, 10, null);
- String n3 = mk1.getNodes("/test", r3, 0, 0, 10, null);
+ // mk1 only sees the change of mk3 so far
+ assertEquals("{\"y\":2,\":childNodeCount\":0}", n1);
+
+ mk2.backgroundWrite();
+ mk2.backgroundRead();
+ mk1.backgroundWrite();
+ mk1.backgroundRead();
+
+ String r1b = mk1.getHeadRevision();
+ String n1b = mk1.getNodes("/test", r1b, 0, 0, 10, null);
+ // mk1 now sees both changes
+ assertEquals("{\"x\":1,\"y\":2,\":childNodeCount\":0}", n1b);
- System.out.println(n1);
- System.out.println(n2);
- System.out.println(n3);
-
mk1.dispose();
mk2.dispose();
mk3.dispose();