You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by am...@apache.org on 2016/12/19 06:52:42 UTC

svn commit: r1774997 - in /jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/blob: AbstractDataStoreCacheTest.java CachingDataStoreTest.java ConsolidatedDataStoreStatsTest.java

Author: amitj
Date: Mon Dec 19 06:52:41 2016
New Revision: 1774997

URL: http://svn.apache.org/viewvc?rev=1774997&view=rev
Log:
OAK-5285: Test failures in org.apache.jackrabbit.oak.plugins.blob

Fix & additional logging for CachingDataStoreTest

Modified:
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/blob/AbstractDataStoreCacheTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/blob/CachingDataStoreTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/blob/ConsolidatedDataStoreStatsTest.java

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/blob/AbstractDataStoreCacheTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/blob/AbstractDataStoreCacheTest.java?rev=1774997&r1=1774996&r2=1774997&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/blob/AbstractDataStoreCacheTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/blob/AbstractDataStoreCacheTest.java Mon Dec 19 06:52:41 2016
@@ -236,6 +236,11 @@ public class AbstractDataStoreCacheTest
     // records have been added and removed, for test purposes only.
     static class TestMemoryBackend extends AbstractSharedBackend {
         final Map<DataIdentifier, File> _backend = Maps.newHashMap();
+        private final File root;
+
+        public TestMemoryBackend(File root) {
+            this.root = root;
+        }
 
         @Override public InputStream read(DataIdentifier identifier) throws DataStoreException {
             try {
@@ -248,6 +253,11 @@ public class AbstractDataStoreCacheTest
         @Override public void write(DataIdentifier identifier, File file)
             throws DataStoreException {
             if (file != null && file.exists()) {
+                try {
+                    FileUtils.copyFile(file, getFile(identifier.toString(), root));
+                } catch (IOException e) {
+                    throw new DataStoreException(e);
+                }
                 _backend.put(identifier, file);
             } else {
                 throw new DataStoreException(

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/blob/CachingDataStoreTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/blob/CachingDataStoreTest.java?rev=1774997&r1=1774996&r2=1774997&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/blob/CachingDataStoreTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/blob/CachingDataStoreTest.java Mon Dec 19 06:52:41 2016
@@ -32,6 +32,8 @@ import java.util.concurrent.TimeUnit;
 import com.google.common.collect.Iterators;
 import com.google.common.io.Closer;
 import com.google.common.io.Files;
+import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.ListenableFuture;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.io.output.NullOutputStream;
@@ -90,6 +92,8 @@ public class CachingDataStoreTest extend
     }
 
     private void init(int i, int cacheSize, int uploadSplit) throws Exception {
+        LOG.info("Starting init");
+
         // create executor
         taskLatch = new CountDownLatch(1);
         callbackLatch = new CountDownLatch(1);
@@ -103,7 +107,9 @@ public class CachingDataStoreTest extend
 
         scheduledExecutor = Executors.newSingleThreadScheduledExecutor();
         closer.register(new ExecutorCloser(scheduledExecutor, 500, TimeUnit.MILLISECONDS));
-        final TestMemoryBackend testBackend = new TestMemoryBackend();
+
+        final File datastoreRoot = folder.newFolder();
+        final TestMemoryBackend testBackend = new TestMemoryBackend(datastoreRoot);
         this.backend = testBackend;
 
         dataStore = new AbstractSharedCachingDataStore() {
@@ -121,6 +127,9 @@ public class CachingDataStoreTest extend
         dataStore.listeningExecutor = executor;
         dataStore.schedulerExecutor = scheduledExecutor;
         dataStore.init(root.getAbsolutePath());
+        Futures.successfulAsList((Iterable<? extends ListenableFuture<?>>) executor.futures).get();
+
+        LOG.info("Finished init");
     }
 
     /**
@@ -129,6 +138,8 @@ public class CachingDataStoreTest extend
      */
     @Test
     public void zeroCacheAddGetDelete() throws Exception {
+        LOG.info("Starting zeroCacheAddGetDelete");
+
         dataStore.close();
         init(1, 0, 0);
         File f = copyToFile(randomStream(0, 4 * 1024), folder.newFile());
@@ -149,6 +160,8 @@ public class CachingDataStoreTest extend
         dataStore.deleteRecord(new DataIdentifier(id));
         rec = dataStore.getRecordIfStored(new DataIdentifier(id));
         assertNull(rec);
+
+        LOG.info("Finished zeroCacheAddGetDelete");
     }
 
     /**
@@ -157,6 +170,8 @@ public class CachingDataStoreTest extend
      */
     @Test
     public void zeroStagingCacheAddGetDelete() throws Exception {
+        LOG.info("Starting zeroStagingCacheAddGetDelete");
+
         dataStore.close();
         init(1, 64 * 1024 * 1024, 0);
         File f = copyToFile(randomStream(0, 4 * 1024), folder.newFile());
@@ -177,6 +192,8 @@ public class CachingDataStoreTest extend
         dataStore.deleteRecord(new DataIdentifier(id));
         rec = dataStore.getRecordIfStored(new DataIdentifier(id));
         assertNull(rec);
+
+        LOG.info("Finished zeroStagingCacheAddGetDelete");
     }
 
     /**
@@ -185,6 +202,8 @@ public class CachingDataStoreTest extend
      */
     @Test
     public void syncAddGetDelete() throws Exception {
+        LOG.info("Starting syncAddGetDelete");
+
         File f = copyToFile(randomStream(0, 4 * 1024), folder.newFile());
         String id = getIdForInputStream(f);
         FileInputStream fin = new FileInputStream(f);
@@ -203,6 +222,8 @@ public class CachingDataStoreTest extend
         dataStore.deleteRecord(new DataIdentifier(id));
         rec = dataStore.getRecordIfStored(new DataIdentifier(id));
         assertNull(rec);
+
+        LOG.info("Finished syncAddGetDelete");
     }
 
     /**
@@ -210,8 +231,12 @@ public class CachingDataStoreTest extend
      */
     @Test
     public void getRecordNotAvailable() throws DataStoreException {
+        LOG.info("Starting getRecordNotAvailable");
+
         DataRecord rec = dataStore.getRecordIfStored(new DataIdentifier(ID_PREFIX + 0));
         assertNull(rec);
+
+        LOG.info("Finished getRecordNotAvailable");
     }
 
     /**
@@ -220,7 +245,11 @@ public class CachingDataStoreTest extend
      */
     @Test
     public void exists() throws IOException {
+        LOG.info("Starting exists");
+
         assertFalse(dataStore.exists(new DataIdentifier(ID_PREFIX + 0)));
+
+        LOG.info("Finished exists");
     }
 
     /**
@@ -228,6 +257,8 @@ public class CachingDataStoreTest extend
      */
     @Test
     public void addDelete() throws Exception {
+        LOG.info("Starting addDelete");
+
         File f = copyToFile(randomStream(0, 4 * 1024), folder.newFile());
         String id = getIdForInputStream(f);
         FileInputStream fin = new FileInputStream(f);
@@ -248,6 +279,8 @@ public class CachingDataStoreTest extend
         dataStore.deleteRecord(new DataIdentifier(id));
         rec = dataStore.getRecordIfStored(new DataIdentifier(id));
         assertNull(rec);
+
+        LOG.info("Finished addDelete");
     }
 
     /**
@@ -256,6 +289,8 @@ public class CachingDataStoreTest extend
      */
     @Test
     public void addStagingAndDelete() throws Exception {
+        LOG.info("Starting addStagingAndDelete");
+
         File f = copyToFile(randomStream(0, 4 * 1024), folder.newFile());
         String id = getIdForInputStream(f);
         FileInputStream fin = new FileInputStream(f);
@@ -281,6 +316,8 @@ public class CachingDataStoreTest extend
 
         rec = dataStore.getRecordIfStored(new DataIdentifier(id));
         assertNull(rec);
+
+        LOG.info("Finished addStagingAndDelete");
     }
 
     /**
@@ -288,6 +325,8 @@ public class CachingDataStoreTest extend
      */
     @Test
     public void getAllIdentifiers() throws Exception {
+        LOG.info("Starting getAllIdentifiers");
+
         File f = copyToFile(randomStream(0, 4 * 1024), folder.newFile());
         String id = getIdForInputStream(f);
         FileInputStream fin = new FileInputStream(f);
@@ -304,10 +343,14 @@ public class CachingDataStoreTest extend
         waitFinish();
 
         assertTrue(Iterators.contains(dataStore.getAllIdentifiers(), new DataIdentifier(id)));
+
+        LOG.info("Finished getAllIdentifiers");
     }
 
     @Test
     public void reference() throws Exception {
+        LOG.info("Starting reference");
+
         File f = copyToFile(randomStream(0, 4 * 1024), folder.newFile());
         String id = getIdForInputStream(f);
         FileInputStream fin = new FileInputStream(f);
@@ -337,10 +380,14 @@ public class CachingDataStoreTest extend
         assertFile(rec.getStream(), f, folder);
         assertEquals(backend.getReferenceFromIdentifier(rec.getIdentifier()),
             rec.getReference());
+
+        LOG.info("Finished reference");
     }
 
     @Test
     public void referenceNoCache() throws Exception {
+        LOG.info("Starting referenceNoCache");
+
         dataStore.close();
         init(1, 0, 0);
 
@@ -361,6 +408,8 @@ public class CachingDataStoreTest extend
         assertFile(rec.getStream(), f, folder);
         assertEquals(backend.getReferenceFromIdentifier(rec.getIdentifier()),
             rec.getReference());
+
+        LOG.info("Finished referenceNoCache");
     }
 
     @After

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/blob/ConsolidatedDataStoreStatsTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/blob/ConsolidatedDataStoreStatsTest.java?rev=1774997&r1=1774996&r2=1774997&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/blob/ConsolidatedDataStoreStatsTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/blob/ConsolidatedDataStoreStatsTest.java Mon Dec 19 06:52:41 2016
@@ -125,9 +125,11 @@ public class ConsolidatedDataStoreStatsT
 
         scheduledExecutor = Executors.newSingleThreadScheduledExecutor();
         closer.register(new ExecutorCloser(scheduledExecutor, 500, TimeUnit.MILLISECONDS));
+
+        final File datastoreRoot = folder.newFolder();
         dataStore = new AbstractSharedCachingDataStore() {
             @Override protected AbstractSharedBackend createBackend() {
-                return new TestMemoryBackend();
+                return new TestMemoryBackend(datastoreRoot);
             }
 
             @Override public int getMinRecordLength() {