summaryrefslogtreecommitdiff
path: root/src/test/java/com/amazon/carbonado/TestUtilities.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/com/amazon/carbonado/TestUtilities.java')
-rw-r--r--src/test/java/com/amazon/carbonado/TestUtilities.java38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/test/java/com/amazon/carbonado/TestUtilities.java b/src/test/java/com/amazon/carbonado/TestUtilities.java
index edf8754..d964c6e 100644
--- a/src/test/java/com/amazon/carbonado/TestUtilities.java
+++ b/src/test/java/com/amazon/carbonado/TestUtilities.java
@@ -19,7 +19,11 @@ package com.amazon.carbonado;
import java.io.File;
import java.io.IOException;
+import java.util.Collections;
+import java.util.HashSet;
import java.util.Random;
+import java.util.Set;
+import java.util.UUID;
import com.amazon.carbonado.repo.sleepycat.BDBRepositoryBuilder;
@@ -37,6 +41,8 @@ public class TestUtilities {
private static final Random sRandom = new Random();
+ private static final Set<File> cTempFiles = Collections.synchronizedSet(new HashSet<File>());
+
public static String makeTestDirectoryString(String nameElement) {
return makeTestDirectory(nameElement).getAbsolutePath();
}
@@ -174,4 +180,36 @@ public class TestUtilities {
}
return buffer.toString();
}
+
+ public static File makeTempDir(String prefix) throws IOException {
+ File temp;
+ do {
+ temp = new File(System.getProperty("java.io.tmpdir"),
+ prefix + '-' + UUID.randomUUID());
+ } while (temp.exists());
+ if (!temp.mkdir()) {
+ throw new IOException("Couldn't create temp directory: " + temp);
+ }
+ cTempFiles.add(temp);
+ return temp;
+ }
+
+ public static void deleteTempDir(File file) {
+ if (!cTempFiles.remove(file)) {
+ // Was not registered, so leave it alone.
+ return;
+ }
+ recursiveDelete(file);
+ }
+
+ private static void recursiveDelete(File file) {
+ if (file.isDirectory()) {
+ for (File f : file.listFiles()) {
+ recursiveDelete(f);
+ }
+ }
+ if (!file.delete()) {
+ System.err.println("Couldn't delete file: " + file);
+ }
+ }
}