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 md...@apache.org on 2016/04/20 23:21:22 UTC
svn commit: r1740198 -
/jackrabbit/oak/trunk/oak-segment-next/src/test/java/org/apache/jackrabbit/oak/segment/SegmentSizeTest.java
Author: mduerig
Date: Wed Apr 20 21:21:22 2016
New Revision: 1740198
URL: http://svn.apache.org/viewvc?rev=1740198&view=rev
Log:
OAK-3348: Cross gc sessions might introduce references to pre-compacted segments
Account for changes in node size caused by node id and update test expectations accordingly
Modified:
jackrabbit/oak/trunk/oak-segment-next/src/test/java/org/apache/jackrabbit/oak/segment/SegmentSizeTest.java
Modified: jackrabbit/oak/trunk/oak-segment-next/src/test/java/org/apache/jackrabbit/oak/segment/SegmentSizeTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-next/src/test/java/org/apache/jackrabbit/oak/segment/SegmentSizeTest.java?rev=1740198&r1=1740197&r2=1740198&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-next/src/test/java/org/apache/jackrabbit/oak/segment/SegmentSizeTest.java (original)
+++ jackrabbit/oak/trunk/oak-segment-next/src/test/java/org/apache/jackrabbit/oak/segment/SegmentSizeTest.java Wed Apr 20 21:21:22 2016
@@ -28,53 +28,45 @@ import java.util.Collections;
import com.google.common.collect.ImmutableList;
import org.apache.jackrabbit.oak.api.Type;
import org.apache.jackrabbit.oak.plugins.memory.PropertyStates;
-import org.apache.jackrabbit.oak.segment.RecordId;
-import org.apache.jackrabbit.oak.segment.Segment;
-import org.apache.jackrabbit.oak.segment.SegmentNodeBuilder;
-import org.apache.jackrabbit.oak.segment.SegmentNodeState;
-import org.apache.jackrabbit.oak.segment.SegmentStore;
-import org.apache.jackrabbit.oak.segment.SegmentWriter;
import org.apache.jackrabbit.oak.segment.memory.MemoryStore;
import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
import org.apache.jackrabbit.oak.spi.state.NodeState;
import org.apache.jackrabbit.util.ISO8601;
-import org.junit.Ignore;
import org.junit.Test;
/**
* Test case for ensuring that segment size remains within bounds.
*/
-@Ignore // FIXME OAK-3348 fix failing test SegmentSizeTest
public class SegmentSizeTest {
@Test
public void testNodeSize() throws IOException {
NodeBuilder builder = EMPTY_NODE.builder();
expectSize(96, builder);
- expectAmortizedSize(4, builder);
+ expectAmortizedSize(8, builder);
builder = EMPTY_NODE.builder();
builder.setProperty("foo", "bar");
expectSize(112, builder);
- expectAmortizedSize(8, builder);
+ expectAmortizedSize(12, builder);
builder = EMPTY_NODE.builder();
builder.setProperty("foo", "bar");
builder.setProperty("baz", 123);
expectSize(128, builder);
- expectAmortizedSize(16, builder);
+ expectAmortizedSize(20, builder);
builder = EMPTY_NODE.builder();
builder.child("foo");
expectSize(128, builder);
- expectAmortizedSize(12, builder);
+ expectAmortizedSize(20, builder);
builder = EMPTY_NODE.builder();
builder.child("foo");
builder.child("bar");
- expectSize(144, builder);
- expectAmortizedSize(40, builder);
+ expectSize(160, builder);
+ expectAmortizedSize(52, builder);
}
@Test
@@ -91,13 +83,13 @@ public class SegmentSizeTest {
builder.setProperty(PropertyStates.createProperty(
"test", Collections.nCopies(12, string), Type.STRINGS));
RecordId id2 = builder.getNodeState().getRecordId();
- assertEquals(16 + 12 * Segment.RECORD_ID_BYTES,
+ assertEquals(20 + 12 * Segment.RECORD_ID_BYTES,
id1.getOffset() - id2.getOffset());
builder.setProperty(PropertyStates.createProperty(
"test", Collections.nCopies(100, string), Type.STRINGS));
RecordId id3 = builder.getNodeState().getRecordId();
- assertEquals(16 + 100 * Segment.RECORD_ID_BYTES,
+ assertEquals(20 + 100 * Segment.RECORD_ID_BYTES,
id2.getOffset() - id3.getOffset());
}
@@ -115,13 +107,13 @@ public class SegmentSizeTest {
builder.setProperty(PropertyStates.createProperty(
"test", Collections.nCopies(12, now), Type.DATES));
RecordId id2 = builder.getNodeState().getRecordId();
- assertEquals(16 + 12 * Segment.RECORD_ID_BYTES,
+ assertEquals(20 + 12 * Segment.RECORD_ID_BYTES,
id1.getOffset() - id2.getOffset());
builder.setProperty(PropertyStates.createProperty(
"test", Collections.nCopies(100, now), Type.DATES));
RecordId id3 = builder.getNodeState().getRecordId();
- assertEquals(16 + 100 * Segment.RECORD_ID_BYTES,
+ assertEquals(20 + 100 * Segment.RECORD_ID_BYTES,
id2.getOffset() - id3.getOffset());
}
@@ -130,7 +122,7 @@ public class SegmentSizeTest {
NodeBuilder builder = EMPTY_NODE.builder();
builder.setProperty("jcr:primaryType", "rep:ACL", Type.NAME);
expectSize(96, builder);
- expectAmortizedSize(4, builder);
+ expectAmortizedSize(8, builder);
NodeBuilder deny = builder.child("deny");
deny.setProperty("jcr:primaryType", "rep:DenyACE", Type.NAME);
@@ -138,15 +130,15 @@ public class SegmentSizeTest {
deny.setProperty(PropertyStates.createProperty(
"rep:privileges", ImmutableList.of("jcr:read"), Type.NAMES));
expectSize(240, builder);
- expectAmortizedSize(32, builder);
+ expectAmortizedSize(40, builder);
NodeBuilder allow = builder.child("allow");
allow.setProperty("jcr:primaryType", "rep:GrantACE");
allow.setProperty("rep:principalName", "administrators");
allow.setProperty(PropertyStates.createProperty(
"rep:privileges", ImmutableList.of("jcr:all"), Type.NAMES));
- expectSize(368, builder);
- expectAmortizedSize(84, builder);
+ expectSize(384, builder);
+ expectAmortizedSize(96, builder);
NodeBuilder deny0 = builder.child("deny0");
deny0.setProperty("jcr:primaryType", "rep:DenyACE", Type.NAME);
@@ -154,16 +146,16 @@ public class SegmentSizeTest {
deny0.setProperty("rep:glob", "*/activities/*");
builder.setProperty(PropertyStates.createProperty(
"rep:privileges", ImmutableList.of("jcr:read"), Type.NAMES));
- expectSize(464, builder);
- expectAmortizedSize(124, builder);
+ expectSize(480, builder);
+ expectAmortizedSize(136, builder);
NodeBuilder allow0 = builder.child("allow0");
allow0.setProperty("jcr:primaryType", "rep:GrantACE");
allow0.setProperty("rep:principalName", "user-administrators");
allow0.setProperty(PropertyStates.createProperty(
"rep:privileges", ImmutableList.of("jcr:all"), Type.NAMES));
- expectSize(528, builder);
- expectAmortizedSize(160, builder);
+ expectSize(544, builder);
+ expectAmortizedSize(176, builder);
}
@Test
@@ -179,7 +171,7 @@ public class SegmentSizeTest {
SegmentNodeState state = writer.writeNode(builder.getNodeState());
writer.flush();
Segment segment = store.readSegment(state.getRecordId().getSegmentId());
- assertEquals(27584, segment.size());
+ assertEquals(31584, segment.size());
writer.flush(); // force flushing of the previous segment