From: Bryan T. <tho...@us...> - 2007-03-27 17:12:03
|
Update of /cvsroot/cweb/bigdata/src/test/com/bigdata/objndx In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv2900/src/test/com/bigdata/objndx Modified Files: TestRestartSafe.java Log Message: Corrected problem in the interpretation of maximumExtent for an IBufferStrategy vs an IJournal. Working through use of isolatable indices for the triple store. Index: TestRestartSafe.java =================================================================== RCS file: /cvsroot/cweb/bigdata/src/test/com/bigdata/objndx/TestRestartSafe.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** TestRestartSafe.java 27 Mar 2007 14:34:21 -0000 1.8 --- TestRestartSafe.java 27 Mar 2007 17:11:42 -0000 1.9 *************** *** 58,61 **** --- 58,62 ---- import com.bigdata.journal.Journal; import com.bigdata.journal.Options; + import com.bigdata.rawstore.IRawStore; /** *************** *** 217,220 **** --- 218,306 ---- } + + /** + * Test verifies that classes which extend {@link BTree} are correctly + * restored by {@link BTree#load(com.bigdata.rawstore.IRawStore, long)}. + */ + public void test_restartSafeSubclass() { + + Journal journal = new Journal(getProperties()); + + final int m = 3; + + final long addr1; + + SimpleEntry v1 = new SimpleEntry(1); + SimpleEntry v2 = new SimpleEntry(2); + SimpleEntry v3 = new SimpleEntry(3); + SimpleEntry v4 = new SimpleEntry(4); + SimpleEntry v5 = new SimpleEntry(5); + SimpleEntry v6 = new SimpleEntry(6); + SimpleEntry v7 = new SimpleEntry(7); + SimpleEntry v8 = new SimpleEntry(8); + Object[] values = new Object[] { v5, v6, v7, v8, v3, v4, v2, v1 }; + + { + + final BTree btree = new MyBTree(journal, 3, UUID.randomUUID(), + SimpleEntry.Serializer.INSTANCE); + + byte[][] keys = new byte[][] { new byte[] { 5 }, new byte[] { 6 }, + new byte[] { 7 }, new byte[] { 8 }, new byte[] { 3 }, + new byte[] { 4 }, new byte[] { 2 }, new byte[] { 1 } }; + + btree.insert(new BatchInsert(values.length, keys, values)); + + assertTrue(btree.dump(Level.DEBUG, System.err)); + + // @todo verify in more detail. + assertSameIterator(new Object[] { v1, v2, v3, v4, v5, v6, v7, v8 }, + btree.entryIterator()); + + addr1 = btree.write(); + + journal.commit(); + + } + + /* + * restart, re-opening the same file. + */ + { + + journal = reopenStore(journal); + + final MyBTree btree = (MyBTree) BTree.load(journal, addr1); + + assertTrue(btree.dump(Level.DEBUG, System.err)); + + // @todo verify in more detail. + assertSameIterator(new Object[] { v1, v2, v3, v4, v5, v6, v7, v8 }, + btree.entryIterator()); + + journal.closeAndDelete(); + + } + + } + + public static class MyBTree extends BTree { + + public MyBTree(IRawStore store, int branchingFactor, UUID indexUUID, + IValueSerializer valSer) { + + super(store, branchingFactor, indexUUID, valSer); + + } + + /** + * @param store + * @param metadata + */ + public MyBTree(IRawStore store, BTreeMetadata metadata) { + super(store, metadata); + } + + } } |