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