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()  {}
 }