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 2011/10/03 21:58:02 UTC

svn commit: r1178550 - in /incubator/jena/Experimental/TxTDB/trunk: src-dev/tx/ src/test/java/com/hp/hpl/jena/tdb/transaction/

Author: andy
Date: Mon Oct  3 19:58:02 2011
New Revision: 1178550

URL: http://svn.apache.org/viewvc?rev=1178550&view=rev
Log:
Incorporate test for reattaching to an existing database.
Rename long running system tests as T_* so idiom of JUnit in Maven "run all Test*" does not pick them up.

Added:
    incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/T_TransSystem.java   (contents, props changed)
      - copied, changed from r1178522, incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransSystem.java
    incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/T_TransSystemMultiDatasets.java   (contents, props changed)
      - copied, changed from r1178522, incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransSystemMultiDatasets.java
    incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransRestart.java   (with props)
Removed:
    incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/TestNodeTableObjectFileCorruption.java
    incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransSystem.java
    incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransSystemMultiDatasets.java
Modified:
    incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/TS_Transaction.java

Modified: incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/TS_Transaction.java
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/TS_Transaction.java?rev=1178550&r1=1178549&r2=1178550&view=diff
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/TS_Transaction.java (original)
+++ incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/TS_Transaction.java Mon Oct  3 19:58:02 2011
@@ -23,6 +23,7 @@ import org.junit.runners.Suite ;
     , TestNodeTableTransDisk.class
     , TestTransSequentialMem.class
     , TestTransSequentialDisk.class
+    , TestTransRestart.class
 })
 public class TS_Transaction
 {

Copied: incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/T_TransSystem.java (from r1178522, incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransSystem.java)
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/T_TransSystem.java?p2=incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/T_TransSystem.java&p1=incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransSystem.java&r1=1178522&r2=1178550&rev=1178550&view=diff
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransSystem.java (original)
+++ incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/T_TransSystem.java Mon Oct  3 19:58:02 2011
@@ -48,10 +48,10 @@ import com.hp.hpl.jena.tdb.base.file.Loc
 import com.hp.hpl.jena.tdb.sys.SystemTDB ;
 
 /** System testing of the transactions. */
-public class TestTransSystem
+public class T_TransSystem
 {
     static { org.openjena.atlas.logging.Log.setLog4j() ; }
-    private static Logger log = LoggerFactory.getLogger(TestTransSystem.class) ;
+    private static Logger log = LoggerFactory.getLogger(T_TransSystem.class) ;
 
     /* Notes:
      * MS Windows does not allow memory mapped files to be deleted during the run of a JVM.
@@ -120,7 +120,7 @@ public class TestTransSystem
                 if ( i%N == (N-1) )
                     println() ;
             }
-            new TestTransSystem().manyReaderAndOneWriter() ;
+            new T_TransSystem().manyReaderAndOneWriter() ;
         }
         if ( inlineProgress )
         {
@@ -289,7 +289,7 @@ public class TestTransSystem
         return sConn ;
     }
     
-    public TestTransSystem() {}
+    public T_TransSystem() {}
         
     //@Test
     public void manyRead()

Propchange: incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/T_TransSystem.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Copied: incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/T_TransSystemMultiDatasets.java (from r1178522, incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransSystemMultiDatasets.java)
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/T_TransSystemMultiDatasets.java?p2=incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/T_TransSystemMultiDatasets.java&p1=incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransSystemMultiDatasets.java&r1=1178522&r2=1178550&rev=1178550&view=diff
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransSystemMultiDatasets.java (original)
+++ incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/T_TransSystemMultiDatasets.java Mon Oct  3 19:58:02 2011
@@ -55,12 +55,12 @@ import com.hp.hpl.jena.tdb.sys.SystemTDB
 import com.hp.hpl.jena.tdb.sys.TDBMaker;
 
 /** System testing using multiple datasets of the transactions. */
-public class TestTransSystemMultiDatasets
+public class T_TransSystemMultiDatasets
 {
     // Use this to flip between FileMode.direct and FileMode.mapped
     static { SystemTDB.setFileMode(FileMode.mapped) ; }
     static { org.openjena.atlas.logging.Log.setLog4j() ; }
-    private static Logger log = LoggerFactory.getLogger(TestTransSystemMultiDatasets.class) ;
+    private static Logger log = LoggerFactory.getLogger(T_TransSystemMultiDatasets.class) ;
 
     static boolean MEM = false ;
     static boolean USE_TRANSACTIONS = false ;
@@ -120,7 +120,7 @@ public class TestTransSystemMultiDataset
                 if ( i%N == (N-1) )
                     println() ;
             }
-            new TestTransSystemMultiDatasets().manyReaderAndOneWriter() ;
+            new T_TransSystemMultiDatasets().manyReaderAndOneWriter() ;
         }
         if ( inlineProgress )
         {
@@ -151,9 +151,9 @@ public class TestTransSystemMultiDataset
     {
         private final int repeats ;
         private final int maxpause ;
-        private final TestTransSystemMultiDatasets tts ; 
+        private final T_TransSystemMultiDatasets tts ; 
     
-        ReaderTx(TestTransSystemMultiDatasets tts, int numSeqRepeats, int pause)
+        ReaderTx(T_TransSystemMultiDatasets tts, int numSeqRepeats, int pause)
         {
             this.repeats = numSeqRepeats ;
             this.maxpause = pause ;
@@ -201,10 +201,10 @@ public class TestTransSystemMultiDataset
     {
         private final int repeats ;
         private final int maxpause ;
-        private final TestTransSystemMultiDatasets tts ;
+        private final T_TransSystemMultiDatasets tts ;
         private final boolean commit ; 
     
-        protected WriterTx(TestTransSystemMultiDatasets tts, int numSeqRepeats, int pause, boolean commit)
+        protected WriterTx(T_TransSystemMultiDatasets tts, int numSeqRepeats, int pause, boolean commit)
         {
             this.repeats = numSeqRepeats ;
             this.maxpause = pause ;
@@ -273,9 +273,9 @@ public class TestTransSystemMultiDataset
     {
         private final int repeats ;
         private final int maxpause ;
-        private final TestTransSystemMultiDatasets tts ; 
+        private final T_TransSystemMultiDatasets tts ; 
     
-        Reader(TestTransSystemMultiDatasets tts, int numSeqRepeats, int pause)
+        Reader(T_TransSystemMultiDatasets tts, int numSeqRepeats, int pause)
         {
             this.repeats = numSeqRepeats ;
             this.maxpause = pause ;
@@ -325,9 +325,9 @@ public class TestTransSystemMultiDataset
     {
         private final int repeats ;
         private final int maxpause ;
-        private final TestTransSystemMultiDatasets tts ;
+        private final T_TransSystemMultiDatasets tts ;
     
-        protected Writer(TestTransSystemMultiDatasets tts, int numSeqRepeats, int pause)
+        protected Writer(T_TransSystemMultiDatasets tts, int numSeqRepeats, int pause)
         {
             this.repeats = numSeqRepeats ;
             this.maxpause = pause ;
@@ -414,7 +414,7 @@ public class TestTransSystemMultiDataset
         return dsg ;
     }
     
-    public TestTransSystemMultiDatasets() {}
+    public T_TransSystemMultiDatasets() {}
         
     //@Test
     public void manyRead()

Propchange: incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/T_TransSystemMultiDatasets.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransRestart.java
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransRestart.java?rev=1178550&view=auto
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransRestart.java (added)
+++ incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransRestart.java Mon Oct  3 19:58:02 2011
@@ -0,0 +1,132 @@
+/**
+ * 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.transaction ;
+
+import java.io.File ;
+import java.nio.ByteBuffer ;
+import java.util.Iterator ;
+
+import org.junit.After ;
+import org.junit.Before ;
+import org.junit.Test ;
+import org.openjena.atlas.junit.BaseTest ;
+import org.openjena.atlas.lib.FileOps ;
+import org.openjena.atlas.lib.Pair ;
+
+import com.hp.hpl.jena.sparql.core.DatasetGraph ;
+import com.hp.hpl.jena.sparql.core.Quad ;
+import com.hp.hpl.jena.sparql.sse.SSE ;
+import com.hp.hpl.jena.tdb.* ;
+import com.hp.hpl.jena.tdb.base.file.FileFactory ;
+import com.hp.hpl.jena.tdb.base.file.Location ;
+import com.hp.hpl.jena.tdb.base.objectfile.ObjectFile ;
+import com.hp.hpl.jena.tdb.store.DatasetGraphTDB ;
+import com.hp.hpl.jena.tdb.sys.Names ;
+import com.hp.hpl.jena.tdb.sys.TDBMaker ;
+
+/** Test of reattaching to persistent database */  
+public class TestTransRestart extends BaseTest {
+    private static final String path = ConfigTest.getTestingDirDB() ;
+    private static Location location = new Location (path) ;
+    private static boolean useTransactionsSetup = false ;
+    private static Quad quad1 = SSE.parseQuad("(_ <foo:bar> rdfs:label 'foo')") ;
+    private static Quad quad2 = SSE.parseQuad("(_ <foo:bar> rdfs:label 'bar')") ;
+    
+    @Before public void setup() {
+        cleanup() ;
+        FileOps.ensureDir(path) ;
+        if (  useTransactionsSetup )
+            setupTxn() ;
+        else
+            setupPlain() ;
+    }
+    
+    @After public void teardown()
+    {
+        cleanup() ;
+    }
+    
+    private static void setupPlain() {
+        // Make without transactions.
+        DatasetGraphTDB dsg = TDBFactory.createDatasetGraph(location) ;
+        dsg.add(quad1) ; 
+        dsg.close() ;
+        TDBMaker.releaseDataset(dsg) ;
+        return ;
+    }
+
+    private static void setupTxn() {
+        StoreConnection sc = StoreConnection.make(location) ; 
+        DatasetGraphTxn dsg = sc.begin(ReadWrite.WRITE) ; 
+        dsg.add(quad1) ; 
+        dsg.commit() ; 
+        TDB.sync(dsg) ; 
+        dsg.close() ; 
+        StoreConnection.release(location) ; 
+    }
+        
+    private static void cleanup() {
+        File dir = new File(path) ;
+        if ( dir.exists() ) {
+            FileOps.clearDirectory(path) ;
+            FileOps.delete(path) ;
+        }
+        assertFalse ( dir.exists() ) ;
+    }
+
+    
+    @Test
+    public void testPlain() {
+        assertEquals (3, countRDFNodes()) ;
+        DatasetGraph dsg = TDBFactory.createDatasetGraph(location) ;
+        assertTrue(dsg.contains(quad1)) ;
+        dsg.add(quad2) ;
+        assertTrue(dsg.contains(quad2)) ;
+        dsg.close() ; 
+        assertEquals (4, countRDFNodes()) ;
+    }
+    
+    @Test
+    public void testTxn() {
+        assertEquals (3, countRDFNodes()) ;
+
+        StoreConnection sc = StoreConnection.make(location) ; 
+        DatasetGraphTxn dsg = sc.begin(ReadWrite.WRITE) ;
+        assertTrue(dsg.contains(quad1)) ;
+        dsg.add(quad2) ; 
+        dsg.commit() ; 
+        dsg.close() ; 
+        assertEquals (4, countRDFNodes()) ;
+    }
+    
+    // Only call when the dataset is not in TDBMaker or in StoreConnection  
+    private static int countRDFNodes() {
+        ObjectFile objects = FileFactory.createObjectFileDisk( location.getPath(Names.indexId2Node, Names.extNodeData) ) ;
+        int count = 0 ;
+        Iterator<Pair<Long,ByteBuffer>> iter = objects.all() ; 
+        while ( iter.hasNext() ) { 
+            iter.next() ;
+            count++ ;
+        }
+        objects.close() ;
+        return count ;
+    }
+    
+}
+

Propchange: incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransRestart.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain