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