diff --git oak-blob-cloud/src/test/java/org/apache/jackrabbit/oak/blob/cloud/s3/TestS3Ds.java oak-blob-cloud/src/test/java/org/apache/jackrabbit/oak/blob/cloud/s3/TestS3Ds.java index 6f26a9d93b..b95520085e 100644 --- oak-blob-cloud/src/test/java/org/apache/jackrabbit/oak/blob/cloud/s3/TestS3Ds.java +++ oak-blob-cloud/src/test/java/org/apache/jackrabbit/oak/blob/cloud/s3/TestS3Ds.java @@ -16,30 +16,30 @@ */ package org.apache.jackrabbit.oak.blob.cloud.s3; +import static org.apache.jackrabbit.oak.blob.cloud.s3.S3DataStoreUtils.getFixtures; +import static org.apache.jackrabbit.oak.blob.cloud.s3.S3DataStoreUtils.getS3Config; +import static org.apache.jackrabbit.oak.blob.cloud.s3.S3DataStoreUtils.getS3DataStore; +import static org.apache.jackrabbit.oak.blob.cloud.s3.S3DataStoreUtils.isS3Configured; +import static org.junit.Assume.assumeTrue; + import java.util.Date; import java.util.List; import java.util.Properties; import javax.jcr.RepositoryException; +import com.google.common.collect.Lists; import org.apache.jackrabbit.core.data.DataStore; import org.apache.jackrabbit.oak.plugins.blob.datastore.AbstractDataStoreTest; import org.junit.After; -import org.junit.Assume; +import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; -import org.mockito.internal.matchers.Equals; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import static org.apache.jackrabbit.oak.blob.cloud.s3.S3DataStoreUtils.getFixtures; -import static org.apache.jackrabbit.oak.blob.cloud.s3.S3DataStoreUtils.getS3Config; -import static org.apache.jackrabbit.oak.blob.cloud.s3.S3DataStoreUtils.getS3DataStore; -import static org.apache.jackrabbit.oak.blob.cloud.s3.S3DataStoreUtils.isS3Configured; -import static org.junit.Assume.assumeTrue; - /** * Test {@link S3DataStore} with S3Backend and local cache on. * It requires to pass aws config file via system property or system properties by prefixing with 'ds.'. @@ -52,7 +52,8 @@ public class TestS3Ds extends AbstractDataStoreTest { protected static final Logger LOG = LoggerFactory.getLogger(TestS3Ds.class); - private Date startTime = null; + private static Date overallStartTime = new Date(); + private Date thisTestStartTime = null; protected Properties props; @@ -71,14 +72,17 @@ public class TestS3Ds extends AbstractDataStoreTest { assumeTrue(isS3Configured()); } + private static List createdBucketNames = Lists.newArrayList(); + @Override @Before public void setUp() throws Exception { props = getS3Config(); - startTime = new Date(); + thisTestStartTime = new Date(); bucket = String.valueOf(randomGen.nextInt(9999)) + "-" + String.valueOf(randomGen.nextInt(9999)) - + "-test"; + + "-s3datastore-autogenerated-unit-test-bucket"; + createdBucketNames.add(bucket); props.setProperty(S3Constants.S3_BUCKET, bucket); props.setProperty("secret", "123456"); super.setUp(); @@ -89,9 +93,22 @@ public class TestS3Ds extends AbstractDataStoreTest { public void tearDown() { try { super.tearDown(); - S3DataStoreUtils.deleteBucket(bucket, startTime); - } catch (Exception ignore) { + } + catch (Exception ignore) { } + + try { + S3DataStoreUtils.deleteBucket(bucket, thisTestStartTime); + } + catch (Exception ignore) { } + } + @AfterClass + public static void verifyAllBucketsDeleted() { + for (String bucket : createdBucketNames) { + try { + S3DataStoreUtils.deleteBucket(bucket, overallStartTime); + } + catch (Exception ignore) { } } }