You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by ka...@apache.org on 2009/03/22 23:12:13 UTC

svn commit: r757265 [2/2] - in /labs/bananadb/trunk/src: main/java/org/apache/labs/bananadb/ main/java/org/apache/labs/bananadb/entity/ main/java/org/apache/labs/bananadb/entity/isolation/ main/java/org/apache/labs/bananadb/store/ main/java/org/apache/...

Modified: labs/bananadb/trunk/src/test/java/org/apache/labs/bananadb/store/TestStore.java
URL: http://svn.apache.org/viewvc/labs/bananadb/trunk/src/test/java/org/apache/labs/bananadb/store/TestStore.java?rev=757265&r1=757264&r2=757265&view=diff
==============================================================================
--- labs/bananadb/trunk/src/test/java/org/apache/labs/bananadb/store/TestStore.java (original)
+++ labs/bananadb/trunk/src/test/java/org/apache/labs/bananadb/store/TestStore.java Sun Mar 22 22:12:12 2009
@@ -19,9 +19,15 @@
 
 
 import org.junit.Test;
+import org.apache.labs.bananadb.store.data.bananatrie.Hashtable;
+import org.apache.labs.bananadb.store.data.bananatrie.HashCodesPartition;
+import org.apache.labs.bananadb.store.data.bananatrie.KeysPartition;
+import org.apache.labs.bananadb.store.data.bananatrie.ValuesPartition;
+import org.apache.labs.bananadb.store.data.FileHandler;
 
 import java.io.IOException;
 import java.util.Arrays;
+import java.util.Random;
 
 /**
  * @author kalle
@@ -29,6 +35,66 @@
  */
 public class TestStore extends StoreTest {
 
+
+  @Test
+  public void testPostings() throws IOException {
+
+    randomizeKeyValues(1000);
+
+    Configuration configuration = new Configuration(getDirectory("testRevision"));
+    Store store = new Store(configuration);
+    store.open();
+
+    Accessor accessor;
+
+
+    accessor = store.createAccessor(false);
+
+    store.put(accessor, keys[0], hashes[0], values[0], 321);
+
+    Hashtable.Posting htp = new Hashtable.Posting();
+    accessor.getHashtable().readPosting(htp, accessor.getHashtable().calculateHashCodePostingOffset(hashes[0]));
+
+    assertEquals(FileHandler.Posting.FLAG_IN_USE, htp.getFlag());
+    assertEquals(321, htp.getCreatedRevision());
+    assertEquals(-1, htp.getDeletedRevision());
+
+    HashCodesPartition.Posting hcp = new HashCodesPartition.Posting();
+    accessor.getHashCodesPartition(htp.getHashCodePostingPartition()).readPosting(hcp, htp.getHashCodePostingPartitionOffset());
+
+    assertEquals(FileHandler.Posting.FLAG_IN_USE, hcp.getFlag());
+    assertEquals(321, hcp.getCreatedRevision());
+    assertEquals(-1, hcp.getDeletedRevision());
+    assertEquals(-1, hcp.getNextPostingPartition());
+    assertEquals(-1, hcp.getNextPostingPartitionOffset());
+    assertEquals(hashes[0], hcp.getKeyHashCode());
+
+    KeysPartition.Posting kp = new KeysPartition.Posting();
+    accessor.getKeysPartition(hcp.getFirstKeyPostingPartition()).readPosting(kp, hcp.getFirstKeyPostingPartitionOffset());
+
+
+    assertEquals(FileHandler.Posting.FLAG_IN_USE, kp.getFlag());
+    assertEquals(321, kp.getCreatedRevision());
+    assertEquals(-1, kp.getDeletedRevision());
+    assertTrue(Arrays.equals(keys[0], kp.getBytes()));
+    assertEquals(hashes[0], kp.getKeyHashCode());
+
+    ValuesPartition.Posting vp = new ValuesPartition.Posting();
+    accessor.getValuesPartition(kp.getValuePostingPartition()).readPosting(vp, kp.getValuePostingPartitionOffset());
+
+    assertEquals(FileHandler.Posting.FLAG_IN_USE, vp.getFlag());
+    assertEquals(321, vp.getCreatedRevision());
+    assertEquals(-1, vp.getDeletedRevision());
+    assertTrue(Arrays.equals(values[0], vp.getBytes()));
+
+    accessor.close();
+
+    // todo test delete postings
+    
+  }
+
+
+
   @Test
   public void testSimple() throws IOException {
 
@@ -79,12 +145,12 @@
 
     // simple general put/get/containsKey/remove tests
 
-    assertNull(store.put(accessor, key, hash, value));    
+    assertNull(store.put(accessor, key, hash, value));
     assertTrue(store.containsKey(accessor, key, hash));
     assertTrue(Arrays.equals(value, store.get(accessor, key, hash)));
     // add again with alternative values
     byte[] value2 = new byte[100];
-    Arrays.fill(value2, (byte)3);
+    Arrays.fill(value2, (byte) 3);
     assertTrue(Arrays.equals(value, store.put(accessor, key, hash, value2)));
     assertTrue("It is probable that the byte array in ValuePartition.Posting (value2) was attempted to be cached and thus overwritten",
         Arrays.equals(value2, store.remove(accessor, key, hash)));
@@ -105,7 +171,7 @@
     assertNull(store.put(accessor, key, hash, value));
     assertTrue(store.containsKey(accessor, key, hash));
     assertTrue(Arrays.equals(value, store.get(accessor, key, hash)));
-    
+
 
     key = new byte[10];
     Arrays.fill(key, (byte) 5);
@@ -124,5 +190,4 @@
     store.close();
 
   }
-
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org