You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2012/06/05 22:10:08 UTC
svn commit: r1346562 - in
/jena/trunk/jena-tdb/src/test/java/com/hp/hpl/jena/tdb: store/TS_Store.java
store/TestStoreConnections.java transaction/AbstractTestTransSeq.java
transaction/TestTransSequentialMem.java
Author: andy
Date: Tue Jun 5 20:10:08 2012
New Revision: 1346562
URL: http://svn.apache.org/viewvc?rev=1346562&view=rev
Log:
Separate the store release/connect tests.
Added:
jena/trunk/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/store/TestStoreConnections.java
Modified:
jena/trunk/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/store/TS_Store.java
jena/trunk/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/transaction/AbstractTestTransSeq.java
jena/trunk/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransSequentialMem.java
Modified: jena/trunk/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/store/TS_Store.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/store/TS_Store.java?rev=1346562&r1=1346561&r2=1346562&view=diff
==============================================================================
--- jena/trunk/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/store/TS_Store.java (original)
+++ jena/trunk/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/store/TS_Store.java Tue Jun 5 20:10:08 2012
@@ -36,6 +36,7 @@ import org.junit.runners.Suite;
, TestConcurrentAccess.class
, TestDynamicDataset.class
, TestLoader.class
+ , TestStoreConnections.class
} )
public class TS_Store
{
Added: jena/trunk/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/store/TestStoreConnections.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/store/TestStoreConnections.java?rev=1346562&view=auto
==============================================================================
--- jena/trunk/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/store/TestStoreConnections.java (added)
+++ jena/trunk/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/store/TestStoreConnections.java Tue Jun 5 20:10:08 2012
@@ -0,0 +1,149 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.hp.hpl.jena.tdb.store;
+
+import java.io.File ;
+
+import org.junit.After ;
+import org.junit.Before ;
+import org.junit.Test ;
+import org.openjena.atlas.iterator.Iter ;
+import org.openjena.atlas.junit.BaseTest ;
+import org.openjena.atlas.lib.FileOps ;
+
+import com.hp.hpl.jena.query.ReadWrite ;
+import com.hp.hpl.jena.sparql.core.Quad ;
+import com.hp.hpl.jena.sparql.sse.SSE ;
+import com.hp.hpl.jena.tdb.ConfigTest ;
+import com.hp.hpl.jena.tdb.StoreConnection ;
+import com.hp.hpl.jena.tdb.sys.SystemTDB ;
+import com.hp.hpl.jena.tdb.transaction.DatasetGraphTxn ;
+import com.hp.hpl.jena.tdb.transaction.TDBTransactionException ;
+
+public class TestStoreConnections extends BaseTest
+{
+
+ static boolean nonDeleteableMMapFiles = SystemTDB.isWindows ;
+
+ static Quad q = SSE.parseQuad("(<g> <s> <p> 000) ") ;
+ static Quad q1 = SSE.parseQuad("(<g> <s> <p> 111)") ;
+ static Quad q2 = SSE.parseQuad("(<g> <s> <p> 222)") ;
+ static Quad q3 = SSE.parseQuad("(<g> <s> <p> 333)") ;
+ static Quad q4 = SSE.parseQuad("(<g> <s> <p> 444)") ;
+
+ String DIR = null ;
+
+ @Before public void before()
+ {
+ StoreConnection.reset() ;
+ DIR = nonDeleteableMMapFiles ? ConfigTest.getTestingDirUnique() : ConfigTest.getTestingDir() ;
+ FileOps.ensureDir(DIR) ;
+ FileOps.clearDirectory(DIR) ;
+
+ File d = new File(DIR) ;
+ if ( d.list().length > 2 ) // . and ..
+ throw new RuntimeException("not empty") ;
+ }
+
+ @After public void after() {}
+
+ protected StoreConnection getStoreConnection()
+ {
+ return StoreConnection.make(DIR) ;
+ }
+
+ @Test public void store_50()
+ {
+ // Expel.
+ StoreConnection sConn = getStoreConnection() ;
+ DatasetGraphTxn dsgW1 = sConn.begin(ReadWrite.WRITE) ;
+ dsgW1.commit() ;
+ dsgW1.end() ;
+ StoreConnection.release(sConn.getLocation()) ;
+ StoreConnection sConn2 = getStoreConnection() ;
+ }
+
+ @Test
+ public void store_51()
+ {
+ // Expel.
+ StoreConnection sConn = getStoreConnection() ;
+ DatasetGraphTxn dsgR1 = sConn.begin(ReadWrite.READ) ;
+ DatasetGraphTxn dsgW1 = sConn.begin(ReadWrite.WRITE) ;
+ dsgW1.add(q1) ;
+ dsgW1.commit() ;
+ dsgW1.end() ;
+ dsgR1.end();
+
+ StoreConnection.release(sConn.getLocation()) ;
+ sConn = null ;
+
+ StoreConnection sConn2 = getStoreConnection() ;
+ }
+
+ @Test(expected=TDBTransactionException.class)
+ public void store_52()
+ {
+ // Expel.
+ // Only applies to non-memory.
+ StoreConnection sConn = getStoreConnection() ;
+ DatasetGraphTxn dsgR1 = sConn.begin(ReadWrite.READ) ;
+ StoreConnection.release(sConn.getLocation()) ;
+ }
+
+ @Test(expected=TDBTransactionException.class)
+ public void store_53()
+ {
+ // Expel.
+ StoreConnection sConn = getStoreConnection() ;
+ DatasetGraphTxn dsgR1 = sConn.begin(ReadWrite.WRITE) ;
+ StoreConnection.release(sConn.getLocation()) ;
+ }
+
+
+ @Test
+ public void store_54()
+ {
+ // Fails for in-memory because the state is lost on StoreConnection.release
+
+ StoreConnection sConn = getStoreConnection() ;
+ DatasetGraphTxn dsgR1 = sConn.begin(ReadWrite.READ) ;
+ DatasetGraphTxn dsgW1 = sConn.begin(ReadWrite.WRITE) ;
+ dsgW1.add(q1) ;
+ dsgW1.commit() ;
+ dsgW1.end() ;
+ dsgR1.end();
+
+ StoreConnection.release(sConn.getLocation()) ;
+ sConn = null ;
+
+ StoreConnection sConn2 = getStoreConnection() ;
+ DatasetGraphTxn dsgW2 = sConn2.begin(ReadWrite.WRITE) ;
+ dsgW2.add(q2) ;
+ dsgW2.commit() ;
+ dsgW2.end() ;
+
+ DatasetGraphTxn dsgR2 = sConn2.begin(ReadWrite.READ) ;
+ long x = Iter.count(dsgR2.find()) ;
+ assertEquals(2, x) ;
+ }
+
+
+}
+
Modified: jena/trunk/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/transaction/AbstractTestTransSeq.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/transaction/AbstractTestTransSeq.java?rev=1346562&r1=1346561&r2=1346562&view=diff
==============================================================================
--- jena/trunk/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/transaction/AbstractTestTransSeq.java (original)
+++ jena/trunk/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/transaction/AbstractTestTransSeq.java Tue Jun 5 20:10:08 2012
@@ -22,7 +22,6 @@ package com.hp.hpl.jena.tdb.transaction;
import org.junit.AfterClass ;
import org.junit.BeforeClass ;
import org.junit.Test ;
-import org.openjena.atlas.iterator.Iter ;
import org.openjena.atlas.junit.BaseTest ;
import org.openjena.atlas.logging.Log ;
@@ -51,535 +50,458 @@ public abstract class AbstractTestTransS
protected abstract StoreConnection getStoreConnection() ;
-// // Basics.
-//
-// @Test public void trans_01()
-// {
-// StoreConnection sConn = getStoreConnection() ;
-// DatasetGraphTxn dsg = sConn.begin(ReadWrite.READ) ;
-// dsg.end() ;
-// }
-//
-//
-// @Test public void trans_02()
-// {
-// StoreConnection sConn = getStoreConnection() ;
-// DatasetGraphTxn dsg = sConn.begin(ReadWrite.WRITE) ;
-// try {
-// dsg.add(q) ;
-// assertTrue(dsg.contains(q)) ;
-// dsg.commit() ;
-// } finally { dsg.end() ; }
-// }
-//
-// @Test public void trans_03()
-// {
-// // WRITE-commit-READ-check
-// StoreConnection sConn = getStoreConnection() ;
-// DatasetGraphTxn dsgW = sConn.begin(ReadWrite.WRITE) ;
-//
-// dsgW.add(q) ;
-// assertTrue(dsgW.contains(q)) ;
-// dsgW.commit() ;
-// dsgW.end() ;
-//
-// DatasetGraphTxn dsg2 = sConn.begin(ReadWrite.READ) ;
-// assertTrue(dsg2.contains(q)) ;
-// dsg2.end() ;
-//
-// DatasetGraph dsg = sConn.getBaseDataset() ;
-// assertTrue(dsg.contains(q)) ;
-//
-// }
-//
-// @Test public void trans_04()
-// {
-// // WRITE-abort-READ-check
-// StoreConnection sConn = getStoreConnection() ;
-// DatasetGraphTxn dsgW = sConn.begin(ReadWrite.WRITE) ;
-//
-// dsgW.add(q) ;
-// assertTrue(dsgW.contains(q)) ;
-// dsgW.abort() ;
-// dsgW.end() ;
-//
-// DatasetGraphTxn dsg2 = sConn.begin(ReadWrite.READ) ;
-// assertFalse(dsg2.contains(q)) ;
-// dsg2.end() ;
-//
-// DatasetGraph dsg = sConn.getBaseDataset() ;
-// assertFalse(dsg.contains(q)) ;
-// }
-//
-// @Test public void trans_05()
-// {
-// // WRITE(commit)-WRITE(commit)-READ-check
-// StoreConnection sConn = getStoreConnection() ;
-// DatasetGraphTxn dsgW1 = sConn.begin(ReadWrite.WRITE) ;
-// dsgW1.add(q1) ;
-// dsgW1.commit() ;
-// dsgW1.end() ;
-//
-// DatasetGraphTxn dsgW2 = sConn.begin(ReadWrite.WRITE) ;
-// dsgW2.add(q2) ;
-// dsgW2.commit() ;
-// dsgW2.end() ;
-//
-// DatasetGraphTxn dsgR2 = sConn.begin(ReadWrite.READ) ;
-// assertTrue(dsgR2.contains(q1)) ;
-// assertTrue(dsgR2.contains(q2)) ;
-// dsgR2.end() ;
-//
-// DatasetGraph dsg = sConn.getBaseDataset() ;
-// assertTrue(dsg.contains(q1)) ;
-// assertTrue(dsg.contains(q2)) ;
-// }
-//
-// @Test public void trans_06()
-// {
-// // READ(start)-READ(finish)-WRITE(start)-WRITE(commit)-check
-// StoreConnection sConn = getStoreConnection() ;
-//
-// DatasetGraphTxn dsgR2 = sConn.begin(ReadWrite.READ) ;
-// assertFalse(dsgR2.contains(q1)) ;
-// assertFalse(dsgR2.contains(q2)) ;
-// dsgR2.end() ;
-//
-// DatasetGraphTxn dsgW1 = sConn.begin(ReadWrite.WRITE) ;
-// dsgW1.add(q1) ;
-// dsgW1.add(q2) ;
-// dsgW1.commit() ;
-// dsgW1.end() ;
-//
-// DatasetGraph dsg = sConn.getBaseDataset() ;
-// assertTrue(dsg.contains(q1)) ;
-// assertTrue(dsg.contains(q2)) ;
-// }
-//
-//
-//
-// @Test public void trans_readBlock_01()
-// {
-// // READ(start)-WRITE(commit)-READ(finish)-check
-// StoreConnection sConn = getStoreConnection() ;
-// DatasetGraphTxn dsgR1 = sConn.begin(ReadWrite.READ) ;
-//
-// DatasetGraphTxn dsgW = sConn.begin(ReadWrite.WRITE) ;
-//
-// dsgW.add(q) ;
-// dsgW.commit() ;
-// dsgW.end() ;
-//
-// assertFalse(dsgR1.contains(q)) ;
-// dsgR1.end() ;
-//
-// //**** Not hitting the queue ****
-// // Order of tweaking counters?
-// // also writer and counters?
-//
-// DatasetGraphTxn dsgR2 = sConn.begin(ReadWrite.READ) ;
-// assertTrue(dsgR2.contains(q)) ;
-// dsgR2.end() ;
-//
-// DatasetGraph dsg = sConn.getBaseDataset() ;
-// assertTrue(dsg.contains(q)) ;
-// }
-//
-//
-// @Test public void trans_readBlock_02()
-// {
-// // READ(start)-WRITE(abort)-READ(finish)-check
-// StoreConnection sConn = getStoreConnection() ;
-// DatasetGraphTxn dsgR1 = sConn.begin(ReadWrite.READ) ;
-//
-// DatasetGraphTxn dsgW = sConn.begin(ReadWrite.WRITE) ;
-//
-// dsgW.add(q) ;
-// dsgW.abort() ;
-// dsgW.end() ;
-//
-// assertFalse(dsgR1.contains(q)) ;
-// dsgR1.end() ;
-//
-// DatasetGraphTxn dsgR2 = sConn.begin(ReadWrite.READ) ;
-// assertFalse(dsgR2.contains(q)) ;
-// dsgR2.end() ;
-//
-// DatasetGraph dsg = sConn.getBaseDataset() ;
-// assertFalse(dsg.contains(q)) ;
-// }
-//
-// @Test public void trans_readBlock_03()
-// {
-// // READ(start)-WRITE(commit)-WRITE(commit)-READ(finish)-check
-// StoreConnection sConn = getStoreConnection() ;
-// DatasetGraphTxn dsgR1 = sConn.begin(ReadWrite.READ) ;
-//
-// DatasetGraphTxn dsgW1 = sConn.begin(ReadWrite.WRITE) ;
-// dsgW1.add(q1) ;
-// dsgW1.commit() ;
-// dsgW1.end() ;
-//
-// assertFalse(dsgR1.contains(q1)) ;
-//
-// DatasetGraphTxn dsgW2 = sConn.begin(ReadWrite.WRITE) ;
-// dsgW2.add(q2) ;
-// dsgW2.commit() ;
-// dsgW2.end() ;
-//
-// assertFalse(dsgR1.contains(q1)) ;
-// assertFalse(dsgR1.contains(q2)) ;
-//
-// dsgR1.end() ;
-//
-// DatasetGraphTxn dsgR2 = sConn.begin(ReadWrite.READ) ;
-// assertTrue(dsgR2.contains(q1)) ;
-// assertTrue(dsgR2.contains(q2)) ;
-// dsgR2.end() ;
-//
-// DatasetGraph dsg = sConn.getBaseDataset() ;
-// assertTrue(dsg.contains(q1)) ;
-// assertTrue(dsg.contains(q2)) ;
-// }
-//
-// @Test
-// public void trans_readBlock_04()
-// {
-// // READ(block)-WRITE(abort)-WRITE(commit)-READ(close)-check
-// StoreConnection sConn = getStoreConnection() ;
-// DatasetGraphTxn dsgR1 = sConn.begin(ReadWrite.READ) ;
-//
-// DatasetGraphTxn dsgW2 = sConn.begin(ReadWrite.WRITE) ;
-// dsgW2.add(q2) ;
-// dsgW2.abort() ; // ABORT
-// dsgW2.end() ;
-// assertFalse(dsgR1.contains(q2)) ;
-//
-// DatasetGraphTxn dsgW3 = sConn.begin(ReadWrite.WRITE) ;
-// dsgW3.add(q3) ;
-// // Can see W1
-// assertFalse(dsgW3.contains(q2)) ;
-// dsgW3.commit() ;
-// dsgW3.end() ;
-// assertFalse(dsgR1.contains(q3)) ;
-//
-// dsgR1.end() ;
-//
-// DatasetGraph dsg = sConn.getBaseDataset() ;
-// assertFalse(dsg.contains(q2)) ;
-// assertTrue(dsg.contains(q3)) ;
-// }
-//
-//
-// @Test
-// public void trans_readBlock_05()
-// {
-// // READ(block)-WRITE(commit)-WRITE(abort)-WRITE(commit)-READ(close)-check
-// StoreConnection sConn = getStoreConnection() ;
-// DatasetGraphTxn dsgR1 = sConn.begin(ReadWrite.READ) ;
-//
-// DatasetGraphTxn dsgW1 = sConn.begin(ReadWrite.WRITE) ;
-// dsgW1.add(q1) ;
-// dsgW1.commit() ;
-// dsgW1.end() ;
-// assertFalse(dsgR1.contains(q1)) ;
-//
-// DatasetGraphTxn dsgW2 = sConn.begin(ReadWrite.WRITE) ;
-// dsgW2.add(q2) ;
-// dsgW2.abort() ; // ABORT
-// dsgW2.end() ;
-// assertFalse(dsgR1.contains(q2)) ;
-//
-// DatasetGraphTxn dsgW3 = sConn.begin(ReadWrite.WRITE) ;
-// dsgW3.add(q3) ;
-// // Can see W1
-// assertTrue(dsgW3.contains(q1)) ;
-// assertFalse(dsgW3.contains(q2)) ;
-// dsgW3.commit() ;
-// dsgW3.end() ;
-// assertFalse(dsgR1.contains(q3)) ;
-//
-// dsgR1.end() ;
-//
-// DatasetGraph dsg = sConn.getBaseDataset() ;
-// assertTrue(dsg.contains(q1)) ;
-// assertFalse(dsg.contains(q2)) ;
-// assertTrue(dsg.contains(q3)) ;
-// }
-//
-// @Test public void trans_readBlock_06()
-// {
-// // WRITE(start)-READ(start)-WRITE(commit)-READ sees old DSG.
-// // READ before WRITE remains seeing old view - READ after WRITE starts
-//
-// StoreConnection sConn = getStoreConnection() ;
-// DatasetGraphTxn dsgW = sConn.begin(ReadWrite.WRITE) ;
-// DatasetGraphTxn dsgR = sConn.begin(ReadWrite.READ) ;
-//
-// dsgW.add(q) ;
-// dsgW.commit() ;
-// dsgW.end() ;
-//
-// assertFalse(dsgR.contains(q)) ;
-// dsgR.end() ;
-//
-// DatasetGraphTxn dsgR2 = sConn.begin(ReadWrite.READ) ;
-// assertTrue(dsgR2.contains(q)) ;
-//
-// DatasetGraph dsg = sConn.getBaseDataset() ;
-// assertTrue(dsg.contains(q)) ;
-// }
-//
-// @Test public void trans_readBlock_07()
-// {
-// // WRITE(start)-READ(start)-add-WRITE(commit)-READ sees old DSG.
-// // READ before WRITE remains seeing old view - READ after WRITE starts
-//
-// StoreConnection sConn = getStoreConnection() ;
-// DatasetGraphTxn dsgW = sConn.begin(ReadWrite.WRITE) ;
-// dsgW.add(q) ;
-//
-// DatasetGraphTxn dsgR = sConn.begin(ReadWrite.READ) ;
-// dsgW.commit() ;
-// dsgW.end() ;
-//
-// assertFalse(dsgR.contains(q)) ;
-// dsgR.end() ;
-//
-// DatasetGraphTxn dsgR2 = sConn.begin(ReadWrite.READ) ;
-// assertTrue(dsgR2.contains(q)) ;
-// dsgR2.end() ;
-//
-// DatasetGraph dsg = sConn.getBaseDataset() ;
-// assertTrue(dsg.contains(q)) ;
-// }
-//
-// @Test public void trans_readBlock_08()
-// {
-// // WRITE(start)-add-READ(start)-WRITE(commit)-READ sees old DSG.
-// StoreConnection sConn = getStoreConnection() ;
-// DatasetGraphTxn dsgW = sConn.begin(ReadWrite.WRITE) ;
-// dsgW.add(q) ;
-//
-// DatasetGraphTxn dsgR1 = sConn.begin(ReadWrite.READ) ;
-// assertFalse(dsgR1.contains(q)) ;
-//
-// dsgW.commit() ;
-// dsgW.end() ;
-//
-// DatasetGraphTxn dsgR2 = sConn.begin(ReadWrite.READ) ;
-//
-// assertFalse(dsgR1.contains(q)) ; // Before view
-// assertTrue(dsgR2.contains(q)) ; // After view
-// dsgR1.end() ;
-// dsgR2.end() ;
-//
-// DatasetGraph dsg = sConn.getBaseDataset() ;
-// assertTrue(dsg.contains(q)) ;
-// }
-//
-// @Test public void trans_readBlock_09()
-// {
-// // WRITE(commit)-READ(start)-WRITE(commit)-READ(finish)-check
-// StoreConnection sConn = getStoreConnection() ;
-// DatasetGraphTxn dsgW1 = sConn.begin(ReadWrite.WRITE) ;
-// dsgW1.add(q1) ;
-// dsgW1.commit() ;
-// dsgW1.end() ;
-//
-// DatasetGraphTxn dsgR1 = sConn.begin(ReadWrite.READ) ;
-// DatasetGraphTxn dsgW2 = sConn.begin(ReadWrite.WRITE) ;
-// dsgW2.add(q2) ;
-// dsgW2.commit() ;
-// dsgW2.end() ;
-//
-// DatasetGraphTxn dsgR2 = sConn.begin(ReadWrite.READ) ;
-// assertTrue(dsgR1.contains(q1)) ;
-// assertFalse(dsgR1.contains(q2)) ;
-//
-// assertTrue(dsgR2.contains(q1)) ;
-// assertTrue(dsgR2.contains(q2)) ;
-//
-// dsgR1.end() ;
-// dsgR2.end() ;
-//
-// DatasetGraph dsg = sConn.getBaseDataset() ;
-// assertTrue(dsg.contains(q1)) ;
-// assertTrue(dsg.contains(q2)) ;
-// }
-//
-// @Test public void trans_readBlock_10()
-// {
-// // READ(start)-WRITE(start)-WRITE(finish)-WRITE(start)-READ(finish)-WRITE(finish)-check
-// StoreConnection sConn = getStoreConnection() ;
-//
-// DatasetGraphTxn dsgR1 = sConn.begin(ReadWrite.READ) ;
-// DatasetGraphTxn dsgW1 = sConn.begin(ReadWrite.WRITE) ;
-// dsgW1.add(q1) ;
-// dsgW1.commit() ;
-// dsgW1.end() ;
-//
-// DatasetGraphTxn dsgW2 = sConn.begin(ReadWrite.WRITE) ;
-// dsgW2.add(q2) ;
-// dsgR1.end() ;
-//
-// dsgW2.commit() ;
-// dsgW2.end() ;
-//
-// DatasetGraphTDB dsg = sConn.getBaseDataset() ;
-// assertTrue(dsg.contains(q1)) ;
-// assertTrue(dsg.contains(q2)) ;
-// }
-//
-// @Test public void trans_readBlock_11()
-// {
-// // JENA-91
-// // READ(start)-WRITE-WRITE-WRITE-READ(finish)-check
-// StoreConnection sConn = getStoreConnection() ;
-//
-// DatasetGraphTxn dsgR1 = sConn.begin(ReadWrite.READ) ;
-// DatasetGraphTxn dsgW1 = sConn.begin(ReadWrite.WRITE) ;
-// dsgW1.add(q1) ;
-// dsgW1.commit() ;
-// dsgW1.end() ;
-//
-// DatasetGraphTxn dsgW2 = sConn.begin(ReadWrite.WRITE) ;
-// dsgW2.add(q2) ;
-// dsgW2.commit() ;
-// dsgW2.end() ;
-//
-// DatasetGraphTxn dsgW3 = sConn.begin(ReadWrite.WRITE) ;
-// dsgW3.add(q3) ;
-// dsgW3.commit() ;
-// dsgW3.end() ;
-//
-// dsgR1.end() ;
-//
-// DatasetGraphTDB dsg = sConn.getBaseDataset() ;
-// assertTrue(dsg.contains(q1)) ;
-// assertTrue(dsg.contains(q2)) ;
-// assertTrue(dsg.contains(q3)) ;
-// }
-//
-//
-// // Not a test
-// //@Test (expected=TDBTransactionException.class)
-// public void trans_20()
-// {
-// // Two WRITE : This would block.
-// StoreConnection sConn = getStoreConnection() ;
-// DatasetGraphTxn dsgW1 = sConn.begin(ReadWrite.WRITE) ;
-// DatasetGraphTxn dsgW2 = sConn.begin(ReadWrite.WRITE) ;
-// }
-//
-// @Test (expected=TDBException.class)
-// public void trans_21()
-// {
-// // READ-add
-// StoreConnection sConn = getStoreConnection() ;
-// DatasetGraphTxn dsg = sConn.begin(ReadWrite.READ) ;
-// dsg.add(q) ;
-// }
-//
-// @Test //(expected=TDBException.class)
-// public void trans_22()
-// {
-// // WRITE-close causes implicit abort
-// StoreConnection sConn = getStoreConnection() ;
-// DatasetGraphTxn dsg = sConn.begin(ReadWrite.WRITE) ;
-// dsg.add(q) ;
-// dsg.end() ;
-// }
-//
-// //@Test
-// public void trans_30()
-// {
-// // WRITE lots
-// StoreConnection sConn = getStoreConnection() ;
-// DatasetGraphTxn dsg = sConn.begin(ReadWrite.WRITE) ;
-// for ( int i = 0 ; i < 600 ; i++ )
-// {
-// Quad q = SSE.parseQuad("(_ <s> <p> "+i+")") ;
-// dsg.add(q) ;
-// }
-// dsg.commit() ;
-// dsg.end() ;
-// }
-//
- @Test public void trans_50()
+ // Basics.
+
+ @Test public void trans_01()
+ {
+ StoreConnection sConn = getStoreConnection() ;
+ DatasetGraphTxn dsg = sConn.begin(ReadWrite.READ) ;
+ dsg.end() ;
+ }
+
+
+ @Test public void trans_02()
+ {
+ StoreConnection sConn = getStoreConnection() ;
+ DatasetGraphTxn dsg = sConn.begin(ReadWrite.WRITE) ;
+ try {
+ dsg.add(q) ;
+ assertTrue(dsg.contains(q)) ;
+ dsg.commit() ;
+ } finally { dsg.end() ; }
+ }
+
+ @Test public void trans_03()
+ {
+ // WRITE-commit-READ-check
+ StoreConnection sConn = getStoreConnection() ;
+ DatasetGraphTxn dsgW = sConn.begin(ReadWrite.WRITE) ;
+
+ dsgW.add(q) ;
+ assertTrue(dsgW.contains(q)) ;
+ dsgW.commit() ;
+ dsgW.end() ;
+
+ DatasetGraphTxn dsg2 = sConn.begin(ReadWrite.READ) ;
+ assertTrue(dsg2.contains(q)) ;
+ dsg2.end() ;
+
+ DatasetGraph dsg = sConn.getBaseDataset() ;
+ assertTrue(dsg.contains(q)) ;
+
+ }
+
+ @Test public void trans_04()
+ {
+ // WRITE-abort-READ-check
+ StoreConnection sConn = getStoreConnection() ;
+ DatasetGraphTxn dsgW = sConn.begin(ReadWrite.WRITE) ;
+
+ dsgW.add(q) ;
+ assertTrue(dsgW.contains(q)) ;
+ dsgW.abort() ;
+ dsgW.end() ;
+
+ DatasetGraphTxn dsg2 = sConn.begin(ReadWrite.READ) ;
+ assertFalse(dsg2.contains(q)) ;
+ dsg2.end() ;
+
+ DatasetGraph dsg = sConn.getBaseDataset() ;
+ assertFalse(dsg.contains(q)) ;
+ }
+
+ @Test public void trans_05()
{
- // Expel.
+ // WRITE(commit)-WRITE(commit)-READ-check
StoreConnection sConn = getStoreConnection() ;
DatasetGraphTxn dsgW1 = sConn.begin(ReadWrite.WRITE) ;
+ dsgW1.add(q1) ;
dsgW1.commit() ;
dsgW1.end() ;
- StoreConnection.release(sConn.getLocation()) ;
- StoreConnection sConn2 = getStoreConnection() ;
+
+ DatasetGraphTxn dsgW2 = sConn.begin(ReadWrite.WRITE) ;
+ dsgW2.add(q2) ;
+ dsgW2.commit() ;
+ dsgW2.end() ;
+
+ DatasetGraphTxn dsgR2 = sConn.begin(ReadWrite.READ) ;
+ assertTrue(dsgR2.contains(q1)) ;
+ assertTrue(dsgR2.contains(q2)) ;
+ dsgR2.end() ;
+
+ DatasetGraph dsg = sConn.getBaseDataset() ;
+ assertTrue(dsg.contains(q1)) ;
+ assertTrue(dsg.contains(q2)) ;
}
- @Test
- public void trans_51()
+ @Test public void trans_06()
{
- // Expel.
+ // READ(start)-READ(finish)-WRITE(start)-WRITE(commit)-check
StoreConnection sConn = getStoreConnection() ;
- DatasetGraphTxn dsgR1 = sConn.begin(ReadWrite.READ) ;
+
+ DatasetGraphTxn dsgR2 = sConn.begin(ReadWrite.READ) ;
+ assertFalse(dsgR2.contains(q1)) ;
+ assertFalse(dsgR2.contains(q2)) ;
+ dsgR2.end() ;
+
DatasetGraphTxn dsgW1 = sConn.begin(ReadWrite.WRITE) ;
dsgW1.add(q1) ;
+ dsgW1.add(q2) ;
dsgW1.commit() ;
dsgW1.end() ;
- dsgR1.end();
-
- StoreConnection.release(sConn.getLocation()) ;
- sConn = null ;
-
- StoreConnection sConn2 = getStoreConnection() ;
+
+ DatasetGraph dsg = sConn.getBaseDataset() ;
+ assertTrue(dsg.contains(q1)) ;
+ assertTrue(dsg.contains(q2)) ;
}
+
+
- @Test(expected=TDBTransactionException.class)
- public void trans_52()
+ @Test public void trans_readBlock_01()
{
- // Expel.
- // Only applies to non-memory.
+ // READ(start)-WRITE(commit)-READ(finish)-check
StoreConnection sConn = getStoreConnection() ;
DatasetGraphTxn dsgR1 = sConn.begin(ReadWrite.READ) ;
- StoreConnection.release(sConn.getLocation()) ;
+
+ DatasetGraphTxn dsgW = sConn.begin(ReadWrite.WRITE) ;
+
+ dsgW.add(q) ;
+ dsgW.commit() ;
+ dsgW.end() ;
+
+ assertFalse(dsgR1.contains(q)) ;
+ dsgR1.end() ;
+
+ //**** Not hitting the queue ****
+ // Order of tweaking counters?
+ // also writer and counters?
+
+ DatasetGraphTxn dsgR2 = sConn.begin(ReadWrite.READ) ;
+ assertTrue(dsgR2.contains(q)) ;
+ dsgR2.end() ;
+
+ DatasetGraph dsg = sConn.getBaseDataset() ;
+ assertTrue(dsg.contains(q)) ;
}
- @Test(expected=TDBTransactionException.class)
- public void trans_53()
+
+ @Test public void trans_readBlock_02()
{
- // Expel.
+ // READ(start)-WRITE(abort)-READ(finish)-check
StoreConnection sConn = getStoreConnection() ;
- DatasetGraphTxn dsgR1 = sConn.begin(ReadWrite.WRITE) ;
- StoreConnection.release(sConn.getLocation()) ;
+ DatasetGraphTxn dsgR1 = sConn.begin(ReadWrite.READ) ;
+
+ DatasetGraphTxn dsgW = sConn.begin(ReadWrite.WRITE) ;
+
+ dsgW.add(q) ;
+ dsgW.abort() ;
+ dsgW.end() ;
+
+ assertFalse(dsgR1.contains(q)) ;
+ dsgR1.end() ;
+
+ DatasetGraphTxn dsgR2 = sConn.begin(ReadWrite.READ) ;
+ assertFalse(dsgR2.contains(q)) ;
+ dsgR2.end() ;
+
+ DatasetGraph dsg = sConn.getBaseDataset() ;
+ assertFalse(dsg.contains(q)) ;
}
-
+ @Test public void trans_readBlock_03()
+ {
+ // READ(start)-WRITE(commit)-WRITE(commit)-READ(finish)-check
+ StoreConnection sConn = getStoreConnection() ;
+ DatasetGraphTxn dsgR1 = sConn.begin(ReadWrite.READ) ;
+
+ DatasetGraphTxn dsgW1 = sConn.begin(ReadWrite.WRITE) ;
+ dsgW1.add(q1) ;
+ dsgW1.commit() ;
+ dsgW1.end() ;
+
+ assertFalse(dsgR1.contains(q1)) ;
+
+ DatasetGraphTxn dsgW2 = sConn.begin(ReadWrite.WRITE) ;
+ dsgW2.add(q2) ;
+ dsgW2.commit() ;
+ dsgW2.end() ;
+
+ assertFalse(dsgR1.contains(q1)) ;
+ assertFalse(dsgR1.contains(q2)) ;
+
+ dsgR1.end() ;
+
+ DatasetGraphTxn dsgR2 = sConn.begin(ReadWrite.READ) ;
+ assertTrue(dsgR2.contains(q1)) ;
+ assertTrue(dsgR2.contains(q2)) ;
+ dsgR2.end() ;
+
+ DatasetGraph dsg = sConn.getBaseDataset() ;
+ assertTrue(dsg.contains(q1)) ;
+ assertTrue(dsg.contains(q2)) ;
+ }
+
@Test
- public void trans_54()
+ public void trans_readBlock_04()
{
- // Fails for in-memory because the state is lost on StoreConnection.release
+ // READ(block)-WRITE(abort)-WRITE(commit)-READ(close)-check
+ StoreConnection sConn = getStoreConnection() ;
+ DatasetGraphTxn dsgR1 = sConn.begin(ReadWrite.READ) ;
+
+ DatasetGraphTxn dsgW2 = sConn.begin(ReadWrite.WRITE) ;
+ dsgW2.add(q2) ;
+ dsgW2.abort() ; // ABORT
+ dsgW2.end() ;
+ assertFalse(dsgR1.contains(q2)) ;
+
+ DatasetGraphTxn dsgW3 = sConn.begin(ReadWrite.WRITE) ;
+ dsgW3.add(q3) ;
+ // Can see W1
+ assertFalse(dsgW3.contains(q2)) ;
+ dsgW3.commit() ;
+ dsgW3.end() ;
+ assertFalse(dsgR1.contains(q3)) ;
+ dsgR1.end() ;
+
+ DatasetGraph dsg = sConn.getBaseDataset() ;
+ assertFalse(dsg.contains(q2)) ;
+ assertTrue(dsg.contains(q3)) ;
+ }
+
+
+ @Test
+ public void trans_readBlock_05()
+ {
+ // READ(block)-WRITE(commit)-WRITE(abort)-WRITE(commit)-READ(close)-check
StoreConnection sConn = getStoreConnection() ;
DatasetGraphTxn dsgR1 = sConn.begin(ReadWrite.READ) ;
+
DatasetGraphTxn dsgW1 = sConn.begin(ReadWrite.WRITE) ;
dsgW1.add(q1) ;
dsgW1.commit() ;
dsgW1.end() ;
- dsgR1.end();
+ assertFalse(dsgR1.contains(q1)) ;
+
+ DatasetGraphTxn dsgW2 = sConn.begin(ReadWrite.WRITE) ;
+ dsgW2.add(q2) ;
+ dsgW2.abort() ; // ABORT
+ dsgW2.end() ;
+ assertFalse(dsgR1.contains(q2)) ;
+
+ DatasetGraphTxn dsgW3 = sConn.begin(ReadWrite.WRITE) ;
+ dsgW3.add(q3) ;
+ // Can see W1
+ assertTrue(dsgW3.contains(q1)) ;
+ assertFalse(dsgW3.contains(q2)) ;
+ dsgW3.commit() ;
+ dsgW3.end() ;
+ assertFalse(dsgR1.contains(q3)) ;
- StoreConnection.release(sConn.getLocation()) ;
- sConn = null ;
+ dsgR1.end() ;
- StoreConnection sConn2 = getStoreConnection() ;
- DatasetGraphTxn dsgW2 = sConn2.begin(ReadWrite.WRITE) ;
+ DatasetGraph dsg = sConn.getBaseDataset() ;
+ assertTrue(dsg.contains(q1)) ;
+ assertFalse(dsg.contains(q2)) ;
+ assertTrue(dsg.contains(q3)) ;
+ }
+
+ @Test public void trans_readBlock_06()
+ {
+ // WRITE(start)-READ(start)-WRITE(commit)-READ sees old DSG.
+ // READ before WRITE remains seeing old view - READ after WRITE starts
+
+ StoreConnection sConn = getStoreConnection() ;
+ DatasetGraphTxn dsgW = sConn.begin(ReadWrite.WRITE) ;
+ DatasetGraphTxn dsgR = sConn.begin(ReadWrite.READ) ;
+
+ dsgW.add(q) ;
+ dsgW.commit() ;
+ dsgW.end() ;
+
+ assertFalse(dsgR.contains(q)) ;
+ dsgR.end() ;
+
+ DatasetGraphTxn dsgR2 = sConn.begin(ReadWrite.READ) ;
+ assertTrue(dsgR2.contains(q)) ;
+
+ DatasetGraph dsg = sConn.getBaseDataset() ;
+ assertTrue(dsg.contains(q)) ;
+ }
+
+ @Test public void trans_readBlock_07()
+ {
+ // WRITE(start)-READ(start)-add-WRITE(commit)-READ sees old DSG.
+ // READ before WRITE remains seeing old view - READ after WRITE starts
+
+ StoreConnection sConn = getStoreConnection() ;
+ DatasetGraphTxn dsgW = sConn.begin(ReadWrite.WRITE) ;
+ dsgW.add(q) ;
+
+ DatasetGraphTxn dsgR = sConn.begin(ReadWrite.READ) ;
+ dsgW.commit() ;
+ dsgW.end() ;
+
+ assertFalse(dsgR.contains(q)) ;
+ dsgR.end() ;
+
+ DatasetGraphTxn dsgR2 = sConn.begin(ReadWrite.READ) ;
+ assertTrue(dsgR2.contains(q)) ;
+ dsgR2.end() ;
+
+ DatasetGraph dsg = sConn.getBaseDataset() ;
+ assertTrue(dsg.contains(q)) ;
+ }
+
+ @Test public void trans_readBlock_08()
+ {
+ // WRITE(start)-add-READ(start)-WRITE(commit)-READ sees old DSG.
+ StoreConnection sConn = getStoreConnection() ;
+ DatasetGraphTxn dsgW = sConn.begin(ReadWrite.WRITE) ;
+ dsgW.add(q) ;
+
+ DatasetGraphTxn dsgR1 = sConn.begin(ReadWrite.READ) ;
+ assertFalse(dsgR1.contains(q)) ;
+
+ dsgW.commit() ;
+ dsgW.end() ;
+
+ DatasetGraphTxn dsgR2 = sConn.begin(ReadWrite.READ) ;
+
+ assertFalse(dsgR1.contains(q)) ; // Before view
+ assertTrue(dsgR2.contains(q)) ; // After view
+ dsgR1.end() ;
+ dsgR2.end() ;
+
+ DatasetGraph dsg = sConn.getBaseDataset() ;
+ assertTrue(dsg.contains(q)) ;
+ }
+
+ @Test public void trans_readBlock_09()
+ {
+ // WRITE(commit)-READ(start)-WRITE(commit)-READ(finish)-check
+ StoreConnection sConn = getStoreConnection() ;
+ DatasetGraphTxn dsgW1 = sConn.begin(ReadWrite.WRITE) ;
+ dsgW1.add(q1) ;
+ dsgW1.commit() ;
+ dsgW1.end() ;
+
+ DatasetGraphTxn dsgR1 = sConn.begin(ReadWrite.READ) ;
+ DatasetGraphTxn dsgW2 = sConn.begin(ReadWrite.WRITE) ;
dsgW2.add(q2) ;
dsgW2.commit() ;
dsgW2.end() ;
+
+ DatasetGraphTxn dsgR2 = sConn.begin(ReadWrite.READ) ;
+ assertTrue(dsgR1.contains(q1)) ;
+ assertFalse(dsgR1.contains(q2)) ;
+
+ assertTrue(dsgR2.contains(q1)) ;
+ assertTrue(dsgR2.contains(q2)) ;
+
+ dsgR1.end() ;
+ dsgR2.end() ;
- DatasetGraphTxn dsgR2 = sConn2.begin(ReadWrite.READ) ;
- long x = Iter.count(dsgR2.find()) ;
- assertEquals(2, x) ;
+ DatasetGraph dsg = sConn.getBaseDataset() ;
+ assertTrue(dsg.contains(q1)) ;
+ assertTrue(dsg.contains(q2)) ;
}
+
+ @Test public void trans_readBlock_10()
+ {
+ // READ(start)-WRITE(start)-WRITE(finish)-WRITE(start)-READ(finish)-WRITE(finish)-check
+ StoreConnection sConn = getStoreConnection() ;
+ DatasetGraphTxn dsgR1 = sConn.begin(ReadWrite.READ) ;
+ DatasetGraphTxn dsgW1 = sConn.begin(ReadWrite.WRITE) ;
+ dsgW1.add(q1) ;
+ dsgW1.commit() ;
+ dsgW1.end() ;
+
+ DatasetGraphTxn dsgW2 = sConn.begin(ReadWrite.WRITE) ;
+ dsgW2.add(q2) ;
+ dsgR1.end() ;
+
+ dsgW2.commit() ;
+ dsgW2.end() ;
+
+ DatasetGraphTDB dsg = sConn.getBaseDataset() ;
+ assertTrue(dsg.contains(q1)) ;
+ assertTrue(dsg.contains(q2)) ;
+ }
+
+ @Test public void trans_readBlock_11()
+ {
+ // JENA-91
+ // READ(start)-WRITE-WRITE-WRITE-READ(finish)-check
+ StoreConnection sConn = getStoreConnection() ;
+
+ DatasetGraphTxn dsgR1 = sConn.begin(ReadWrite.READ) ;
+ DatasetGraphTxn dsgW1 = sConn.begin(ReadWrite.WRITE) ;
+ dsgW1.add(q1) ;
+ dsgW1.commit() ;
+ dsgW1.end() ;
+
+ DatasetGraphTxn dsgW2 = sConn.begin(ReadWrite.WRITE) ;
+ dsgW2.add(q2) ;
+ dsgW2.commit() ;
+ dsgW2.end() ;
+
+ DatasetGraphTxn dsgW3 = sConn.begin(ReadWrite.WRITE) ;
+ dsgW3.add(q3) ;
+ dsgW3.commit() ;
+ dsgW3.end() ;
+
+ dsgR1.end() ;
+
+ DatasetGraphTDB dsg = sConn.getBaseDataset() ;
+ assertTrue(dsg.contains(q1)) ;
+ assertTrue(dsg.contains(q2)) ;
+ assertTrue(dsg.contains(q3)) ;
+ }
+
+
+ // Not a test
+ //@Test (expected=TDBTransactionException.class)
+ public void trans_20()
+ {
+ // Two WRITE : This would block.
+ StoreConnection sConn = getStoreConnection() ;
+ DatasetGraphTxn dsgW1 = sConn.begin(ReadWrite.WRITE) ;
+ DatasetGraphTxn dsgW2 = sConn.begin(ReadWrite.WRITE) ;
+ }
+
+ @Test (expected=TDBException.class)
+ public void trans_21()
+ {
+ // READ-add
+ StoreConnection sConn = getStoreConnection() ;
+ DatasetGraphTxn dsg = sConn.begin(ReadWrite.READ) ;
+ dsg.add(q) ;
+ }
+
+ @Test //(expected=TDBException.class)
+ public void trans_22()
+ {
+ // WRITE-close causes implicit abort
+ StoreConnection sConn = getStoreConnection() ;
+ DatasetGraphTxn dsg = sConn.begin(ReadWrite.WRITE) ;
+ dsg.add(q) ;
+ dsg.end() ;
+ }
+
+ //@Test
+ public void trans_30()
+ {
+ // WRITE lots
+ StoreConnection sConn = getStoreConnection() ;
+ DatasetGraphTxn dsg = sConn.begin(ReadWrite.WRITE) ;
+ for ( int i = 0 ; i < 600 ; i++ )
+ {
+ Quad q = SSE.parseQuad("(_ <s> <p> "+i+")") ;
+ dsg.add(q) ;
+ }
+ dsg.commit() ;
+ dsg.end() ;
+ }
}
Modified: jena/trunk/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransSequentialMem.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransSequentialMem.java?rev=1346562&r1=1346561&r2=1346562&view=diff
==============================================================================
--- jena/trunk/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransSequentialMem.java (original)
+++ jena/trunk/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransSequentialMem.java Tue Jun 5 20:10:08 2012
@@ -20,7 +20,6 @@ package com.hp.hpl.jena.tdb.transaction;
import org.junit.After ;
import org.junit.Before ;
-import org.junit.Test ;
import com.hp.hpl.jena.tdb.StoreConnection ;
import com.hp.hpl.jena.tdb.base.file.Location ;
@@ -40,11 +39,4 @@ public class TestTransSequentialMem exte
{
return StoreConnection.make(Location.mem()) ;
}
-
- // release/connect - meaningless in-memory.
- @Override @Test public void trans_50() {}
- @Override @Test public void trans_51() {}
- @Override @Test public void trans_52() {}
- @Override @Test public void trans_53() {}
- @Override @Test public void trans_54() {}
}