Index: oak-core/src/test/java/org/apache/jackrabbit/oak/core/RootFuzzIT.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-core/src/test/java/org/apache/jackrabbit/oak/core/RootFuzzIT.java (revision 3ab55f614d7668c2304a3e7b70ffdb50ca0b57f4) +++ oak-core/src/test/java/org/apache/jackrabbit/oak/core/RootFuzzIT.java (revision ) @@ -42,6 +42,8 @@ import org.apache.jackrabbit.oak.core.RootFuzzIT.Operation.Rebase; import org.apache.jackrabbit.oak.kernel.JsopDiff; import org.apache.jackrabbit.oak.spi.state.NodeState; +import org.apache.jackrabbit.oak.spi.state.NodeStateDiff; +import org.apache.jackrabbit.oak.spi.state.NodeStateUtils; import org.apache.jackrabbit.oak.spi.state.NodeStore; import org.junit.After; import org.junit.Before; @@ -63,8 +65,8 @@ @Parameters public static Collection fixtures() { Object[][] fixtures = new Object[][] { - {NodeStoreFixture.MK_IMPL}, - {NodeStoreFixture.MONGO_MK}, +// {NodeStoreFixture.MK_IMPL}, +// {NodeStoreFixture.MONGO_MK}, {NodeStoreFixture.SEGMENT_MK}, }; return Arrays.asList(fixtures); @@ -72,9 +74,10 @@ private static final int OP_COUNT = 5000; - private static final int SEED = Integer.getInteger( - RootFuzzIT.class.getSimpleName() + "-seed", - new Random().nextInt()); + private static final int SEED = 1896599533; +// Integer.getInteger( +// RootFuzzIT.class.getSimpleName() + "-seed", +// new Random().nextInt()); private static final Random random = new Random(); @@ -129,11 +132,52 @@ checkEqual(root1.getTree("/"), root2.getTree("/")); if (op instanceof Save) { root2.commit(); - NodeState tree1 = store1.getRoot(); - NodeState tree2 = store2.getRoot(); - if (!tree1.equals(tree2)) { + final NodeState tree1 = store1.getRoot(); + final NodeState tree2 = store2.getRoot(); + tree1.compareAgainstBaseState(tree2, new NodeStateDiff() { + @Override + public boolean propertyAdded(PropertyState after) { + failIfNotHidden(after.getName()); + return true; + } + + @Override + public boolean propertyChanged(PropertyState before, PropertyState after) { + failIfNotHidden(after.getName()); + return true; + } + + @Override + public boolean propertyDeleted(PropertyState before) { + failIfNotHidden(before.getName()); + return true; + } + + @Override + public boolean childNodeAdded(String name, NodeState after) { + failIfNotHidden(name); + return true; + } + + @Override + public boolean childNodeChanged(String name, NodeState before, NodeState after) { + failIfNotHidden(name); + before.compareAgainstBaseState(after, this); + return true; + } + + @Override + public boolean childNodeDeleted(String name, NodeState before) { + failIfNotHidden(name); + return true; + } + + private void failIfNotHidden(String name) { + if (!NodeStateUtils.isHidden(name)) { - fail("seed: " + SEED + ", " + JsopDiff.diffToJsop(tree1, tree2)); - } + fail("seed: " + SEED + ", " + JsopDiff.diffToJsop(tree1, tree2)); + } + } + }); } } }