You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@marmotta.apache.org by ss...@apache.org on 2013/12/10 19:01:21 UTC

git commit: improved test setup

Updated Branches:
  refs/heads/develop cfde3aac2 -> 756b6a82b


improved test setup


Project: http://git-wip-us.apache.org/repos/asf/marmotta/repo
Commit: http://git-wip-us.apache.org/repos/asf/marmotta/commit/756b6a82
Tree: http://git-wip-us.apache.org/repos/asf/marmotta/tree/756b6a82
Diff: http://git-wip-us.apache.org/repos/asf/marmotta/diff/756b6a82

Branch: refs/heads/develop
Commit: 756b6a82bac1505b6eece34990dedbf144ab9298
Parents: cfde3aa
Author: Sebastian Schaffert <ss...@apache.org>
Authored: Tue Dec 10 19:01:16 2013 +0100
Committer: Sebastian Schaffert <ss...@apache.org>
Committed: Tue Dec 10 19:01:16 2013 +0100

----------------------------------------------------------------------
 .../apache/marmotta/kiwi/sail/KiWiStore.java    | 31 +++++++++++++-
 .../kiwi/test/MySQLConcurrencyTest.java         | 13 +++---
 .../kiwi/test/PostgreSQLConcurrencyTest.java    | 13 +++---
 .../marmotta/kiwi/test/RepositoryTest.java      | 43 ++++++++------------
 .../kiwi/test/sesame/KiWiLocaleTest.java        |  5 +--
 .../test/sesame/KiWiSailConcurrencyTest.java    | 19 +--------
 .../kiwi/test/sesame/KiWiSailInterruptTest.java |  1 +
 .../kiwi/test/sesame/KiWiStoreTest.java         | 19 +--------
 .../KiWiRepositoryConnectionTest.java           | 22 +---------
 9 files changed, 69 insertions(+), 97 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/marmotta/blob/756b6a82/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/sail/KiWiStore.java
----------------------------------------------------------------------
diff --git a/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/sail/KiWiStore.java b/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/sail/KiWiStore.java
index a3fec3a..89ed095 100644
--- a/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/sail/KiWiStore.java
+++ b/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/sail/KiWiStore.java
@@ -18,7 +18,6 @@
 package org.apache.marmotta.kiwi.sail;
 
 import com.google.common.collect.MapMaker;
-
 import org.apache.marmotta.commons.sesame.tripletable.IntArray;
 import org.apache.marmotta.kiwi.config.KiWiConfiguration;
 import org.apache.marmotta.kiwi.persistence.KiWiDialect;
@@ -92,6 +91,12 @@ public class KiWiStore extends NotifyingSailBase {
      */
     protected ConcurrentMap<IntArray,Statement> tripleRegistry;
 
+
+    /**
+     * Drop databases when shutdown is called. This option is mostly useful for testing.
+     */
+    private boolean dropTablesOnShutdown = false;
+
     public KiWiStore(KiWiPersistence persistence, String defaultContext, String inferredContext) {
         this.persistence    = persistence;
         this.defaultContext = defaultContext;
@@ -158,6 +163,21 @@ public class KiWiStore extends NotifyingSailBase {
         return persistence;
     }
 
+
+    /**
+     * Drop databases when shutdown is called. This option is mostly useful for testing.
+     */
+    public boolean isDropTablesOnShutdown() {
+        return dropTablesOnShutdown;
+    }
+
+    /**
+     * Drop databases when shutdown is called. This option is mostly useful for testing.
+     */
+    public void setDropTablesOnShutdown(boolean dropTablesOnShutdown) {
+        this.dropTablesOnShutdown = dropTablesOnShutdown;
+    }
+
     /**
      * Returns a store-specific SailConnection object.
      *
@@ -174,6 +194,15 @@ public class KiWiStore extends NotifyingSailBase {
     @Override
     protected void shutDownInternal() throws SailException {
         closeValueFactory();
+
+        if(dropTablesOnShutdown) {
+            try {
+                persistence.dropDatabase();
+            } catch (SQLException e) {
+                logger.error("error dropping database: {}", e.getMessage());
+            }
+        }
+
         persistence.shutdown();
         tripleRegistry = null;
         initialized = false;

http://git-wip-us.apache.org/repos/asf/marmotta/blob/756b6a82/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/MySQLConcurrencyTest.java
----------------------------------------------------------------------
diff --git a/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/MySQLConcurrencyTest.java b/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/MySQLConcurrencyTest.java
index 29bfabf..91fce3f 100644
--- a/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/MySQLConcurrencyTest.java
+++ b/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/MySQLConcurrencyTest.java
@@ -17,11 +17,6 @@
 
 package org.apache.marmotta.kiwi.test;
 
-import static org.junit.Assert.assertTrue;
-
-import java.sql.SQLException;
-import java.util.Random;
-
 import org.apache.marmotta.kiwi.config.KiWiConfiguration;
 import org.apache.marmotta.kiwi.persistence.mysql.MySQLDialect;
 import org.apache.marmotta.kiwi.sail.KiWiStore;
@@ -34,6 +29,11 @@ import org.openrdf.repository.sail.SailRepository;
 import org.openrdf.sail.SailException;
 import org.slf4j.LoggerFactory;
 
+import java.sql.SQLException;
+import java.util.Random;
+
+import static org.junit.Assert.assertTrue;
+
 /**
  * This test starts many triplestore operations in parallel to check if concurrent operations will break things,
  *
@@ -53,6 +53,7 @@ public class MySQLConcurrencyTest extends ConcurrencyTestBase {
         rnd = new Random();
 
         store = new KiWiStore(mysqlConfig);
+        store.setDropTablesOnShutdown(true);
         repository = new SailRepository(store);
         repository.initialize();
     }
@@ -61,8 +62,6 @@ public class MySQLConcurrencyTest extends ConcurrencyTestBase {
     public static void dropDatabase() throws RepositoryException, SQLException, SailException {
     	if (store != null && store.isInitialized()) {
             assertTrue(store.checkConsistency());
-            store.closeValueFactory(); // release all connections before dropping the database 
-            store.getPersistence().dropDatabase();
             repository.shutDown();
     	}
     }

http://git-wip-us.apache.org/repos/asf/marmotta/blob/756b6a82/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/PostgreSQLConcurrencyTest.java
----------------------------------------------------------------------
diff --git a/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/PostgreSQLConcurrencyTest.java b/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/PostgreSQLConcurrencyTest.java
index 7b7b3c1..0cb8334 100644
--- a/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/PostgreSQLConcurrencyTest.java
+++ b/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/PostgreSQLConcurrencyTest.java
@@ -17,11 +17,6 @@
 
 package org.apache.marmotta.kiwi.test;
 
-import static org.junit.Assert.assertTrue;
-
-import java.sql.SQLException;
-import java.util.Random;
-
 import org.apache.marmotta.kiwi.config.KiWiConfiguration;
 import org.apache.marmotta.kiwi.persistence.pgsql.PostgreSQLDialect;
 import org.apache.marmotta.kiwi.sail.KiWiStore;
@@ -34,6 +29,11 @@ import org.openrdf.repository.sail.SailRepository;
 import org.openrdf.sail.SailException;
 import org.slf4j.LoggerFactory;
 
+import java.sql.SQLException;
+import java.util.Random;
+
+import static org.junit.Assert.assertTrue;
+
 /**
  * This test starts many triplestore operations in parallel to check if concurrent operations will break things,
  *
@@ -55,6 +55,7 @@ public class PostgreSQLConcurrencyTest extends ConcurrencyTestBase {
         rnd = new Random();
 
         store = new KiWiStore(psql);
+        store.setDropTablesOnShutdown(true);
         repository = new SailRepository(store);
         repository.initialize();
     }
@@ -64,8 +65,6 @@ public class PostgreSQLConcurrencyTest extends ConcurrencyTestBase {
         logger.info("cleaning up test setup...");
     	if (store != null && store.isInitialized()) {
             assertTrue(store.checkConsistency());
-            store.closeValueFactory(); // release all connections before dropping the database
-            store.getPersistence().dropDatabase();
             repository.shutDown();
     	}
     }

http://git-wip-us.apache.org/repos/asf/marmotta/blob/756b6a82/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/RepositoryTest.java
----------------------------------------------------------------------
diff --git a/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/RepositoryTest.java b/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/RepositoryTest.java
index 5627f1b..ce2adae 100644
--- a/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/RepositoryTest.java
+++ b/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/RepositoryTest.java
@@ -16,21 +16,9 @@
  */
 package org.apache.marmotta.kiwi.test;
 
-import static org.hamcrest.CoreMatchers.hasItems;
-import static org.hamcrest.CoreMatchers.not;
-import static org.hamcrest.CoreMatchers.notNullValue;
-import static org.hamcrest.Matchers.hasItem;
-import static org.hamcrest.Matchers.hasProperty;
-import static org.hamcrest.Matchers.is;
-import static org.hamcrest.Matchers.lessThan;
-import static org.junit.Assume.assumeThat;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.sql.SQLException;
-import java.util.ConcurrentModificationException;
-import java.util.List;
-
+import com.google.common.base.Function;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Iterables;
 import org.apache.commons.lang3.RandomStringUtils;
 import org.apache.marmotta.commons.sesame.repository.ResourceUtils;
 import org.apache.marmotta.kiwi.config.KiWiConfiguration;
@@ -42,11 +30,7 @@ import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.openrdf.model.Literal;
-import org.openrdf.model.Namespace;
-import org.openrdf.model.Resource;
-import org.openrdf.model.Statement;
-import org.openrdf.model.URI;
+import org.openrdf.model.*;
 import org.openrdf.query.MalformedQueryException;
 import org.openrdf.query.QueryLanguage;
 import org.openrdf.query.Update;
@@ -60,9 +44,19 @@ import org.openrdf.rio.RDFParseException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.base.Function;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Iterables;
+import java.io.IOException;
+import java.io.InputStream;
+import java.sql.SQLException;
+import java.util.ConcurrentModificationException;
+import java.util.List;
+
+import static org.hamcrest.CoreMatchers.hasItems;
+import static org.hamcrest.CoreMatchers.not;
+import static org.hamcrest.CoreMatchers.notNullValue;
+import static org.hamcrest.Matchers.hasItem;
+import static org.hamcrest.Matchers.*;
+import static org.hamcrest.Matchers.is;
+import static org.junit.Assume.assumeThat;
 
 /**
  * Test the Sesame repository functionality backed by the KiWi triple store. 
@@ -88,14 +82,13 @@ public class RepositoryTest {
     @Before
     public void initDatabase() throws RepositoryException {
         store = new KiWiStore(kiwiConfiguration);
+        store.setDropTablesOnShutdown(true);
         repository = new SailRepository(store);
         repository.initialize();
     }
 
     @After
     public void dropDatabase() throws RepositoryException, SQLException {
-        store.closeValueFactory(); // release all connections before dropping the database
-        store.getPersistence().dropDatabase();
         repository.shutDown();
     }
 

http://git-wip-us.apache.org/repos/asf/marmotta/blob/756b6a82/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiLocaleTest.java
----------------------------------------------------------------------
diff --git a/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiLocaleTest.java b/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiLocaleTest.java
index 7815127..080aab1 100644
--- a/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiLocaleTest.java
+++ b/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiLocaleTest.java
@@ -26,7 +26,6 @@ import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.openrdf.model.Literal;
-import org.openrdf.sail.SailConnection;
 import org.openrdf.sail.SailException;
 
 import java.sql.SQLException;
@@ -50,14 +49,14 @@ public class KiWiLocaleTest  {
     
     @Before
     public void initialize() throws SailException {
-    	store = new KiWiStore(kiwiConfig);
+        store = new KiWiStore(kiwiConfig);
+        store.setDropTablesOnShutdown(true);
     	store.initialize();
     	vf = new KiWiValueFactory(store, "http://example.org");
     }
     
     @After
     public void shutdown() throws SailException, SQLException {
-        store.getPersistence().dropDatabase();
     	store.shutDown();
     	store = null;
     	vf = null;

http://git-wip-us.apache.org/repos/asf/marmotta/blob/756b6a82/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiSailConcurrencyTest.java
----------------------------------------------------------------------
diff --git a/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiSailConcurrencyTest.java b/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiSailConcurrencyTest.java
index c5661c7..bffbd30 100644
--- a/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiSailConcurrencyTest.java
+++ b/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiSailConcurrencyTest.java
@@ -26,11 +26,6 @@ import org.junit.runner.RunWith;
 import org.openrdf.sail.Sail;
 import org.openrdf.sail.SailConcurrencyTest;
 import org.openrdf.sail.SailException;
-import org.openrdf.sail.helpers.SailWrapper;
-
-import java.sql.SQLException;
-
-import static org.junit.Assert.fail;
 
 /**
  * Run the Sesame {@link SailConcurrencyTest} suite.
@@ -48,18 +43,8 @@ public class KiWiSailConcurrencyTest extends SailConcurrencyTest {
     
     @Override
     protected Sail createSail() throws SailException {
-        Sail store = new SailWrapper(new KiWiStore(kiwiConfig)) {
-            @Override
-            public void shutDown() throws SailException {
-                try {
-                    ((KiWiStore)getBaseSail()).getPersistence().dropDatabase();
-                } catch (SQLException e) {
-                    fail("SQL exception while deleting database");
-                }
-
-                super.shutDown();
-            }
-        };
+        KiWiStore store = new KiWiStore(kiwiConfig);
+        store.setDropTablesOnShutdown(true);
         return store;
     }
 

http://git-wip-us.apache.org/repos/asf/marmotta/blob/756b6a82/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiSailInterruptTest.java
----------------------------------------------------------------------
diff --git a/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiSailInterruptTest.java b/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiSailInterruptTest.java
index 710f128..92a5cff 100644
--- a/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiSailInterruptTest.java
+++ b/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiSailInterruptTest.java
@@ -48,6 +48,7 @@ public class KiWiSailInterruptTest extends SailInterruptTest {
     @Override
     protected Sail createSail() throws SailException {
         KiWiStore store = new KiWiStore(kiwiConfig);
+        store.setDropTablesOnShutdown(true);
         return store;
     }
     

http://git-wip-us.apache.org/repos/asf/marmotta/blob/756b6a82/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiStoreTest.java
----------------------------------------------------------------------
diff --git a/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiStoreTest.java b/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiStoreTest.java
index 081dae4..d1b1322 100644
--- a/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiStoreTest.java
+++ b/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiStoreTest.java
@@ -23,11 +23,6 @@ import org.junit.runner.RunWith;
 import org.openrdf.sail.RDFStoreTest;
 import org.openrdf.sail.Sail;
 import org.openrdf.sail.SailException;
-import org.openrdf.sail.helpers.SailWrapper;
-
-import java.sql.SQLException;
-
-import static org.junit.Assert.fail;
 
 /**
  * Run the Sesame {@link RDFStoreTest} suite.
@@ -44,18 +39,8 @@ public class KiWiStoreTest extends RDFStoreTest {
     
     @Override
     protected Sail createSail() throws SailException {
-        Sail store = new SailWrapper(new KiWiStore(kiwiConfig)) {
-            @Override
-            public void shutDown() throws SailException {
-                try {
-                    ((KiWiStore)getBaseSail()).getPersistence().dropDatabase();
-                } catch (SQLException e) {
-                    fail("SQL exception while deleting database");
-                }
-
-                super.shutDown();
-            }
-        };
+        KiWiStore store = new KiWiStore(kiwiConfig);
+        store.setDropTablesOnShutdown(true);
         store.initialize();
         return store;
     }

http://git-wip-us.apache.org/repos/asf/marmotta/blob/756b6a82/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/repository/KiWiRepositoryConnectionTest.java
----------------------------------------------------------------------
diff --git a/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/repository/KiWiRepositoryConnectionTest.java b/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/repository/KiWiRepositoryConnectionTest.java
index f71f964..4ff4632 100644
--- a/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/repository/KiWiRepositoryConnectionTest.java
+++ b/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/repository/KiWiRepositoryConnectionTest.java
@@ -17,20 +17,12 @@
 package org.apache.marmotta.kiwi.test.sesame.repository;
 
 import org.apache.marmotta.kiwi.config.KiWiConfiguration;
-import org.apache.marmotta.kiwi.persistence.h2.H2Dialect;
 import org.apache.marmotta.kiwi.sail.KiWiStore;
 import org.apache.marmotta.kiwi.test.junit.KiWiDatabaseRunner;
 import org.junit.runner.RunWith;
 import org.openrdf.repository.Repository;
 import org.openrdf.repository.RepositoryConnectionTest;
 import org.openrdf.repository.sail.SailRepository;
-import org.openrdf.sail.Sail;
-import org.openrdf.sail.SailException;
-import org.openrdf.sail.helpers.SailWrapper;
-
-import java.sql.SQLException;
-
-import static org.junit.Assert.fail;
 
 /**
  * Run the {@link RepositoryConnectionTest}s.
@@ -52,18 +44,8 @@ public class KiWiRepositoryConnectionTest extends RepositoryConnectionTest {
     @Override
     protected Repository createRepository() throws Exception {
         config.setDefaultContext(null);
-        Sail store = new SailWrapper(new KiWiStore(config)) {
-            @Override
-            public void shutDown() throws SailException {
-                try {
-                    ((KiWiStore)getBaseSail()).getPersistence().dropDatabase();
-                } catch (SQLException e) {
-                    fail("SQL exception while deleting database");
-                }
-
-                super.shutDown();
-            }
-        };
+        KiWiStore store = new KiWiStore(config);
+        store.setDropTablesOnShutdown(true);
         return new SailRepository(store);
     }