]> source.dussan.org Git - aspectj.git/commitdiff
various polish to previously mavenized projects to support newer ones
authorAndy Clement <aclement@pivotal.io>
Thu, 31 Jan 2019 20:01:34 +0000 (12:01 -0800)
committerAndy Clement <aclement@pivotal.io>
Thu, 31 Jan 2019 20:01:34 +0000 (12:01 -0800)
testing-util/src/main/java/org/aspectj/testing/util/TestUtil.java

index 1dbc0115ca7f9912f1b643ae55938742ed268eb0..a152d8cc98c4ca326af5a6292c8bfb870cfb86b5 100644 (file)
@@ -45,6 +45,7 @@ import jdiff.text.FileLine;
 import jdiff.util.Diff;
 import jdiff.util.DiffNormalOutput;
 import junit.framework.Assert;
+import junit.framework.AssertionFailedError;
 import junit.framework.Test;
 import junit.framework.TestCase;
 import junit.framework.TestResult;
@@ -62,6 +63,7 @@ import org.aspectj.util.Reflection;
  * not required to resolve this class. Also, the bytecode weaver is required to compare class files, but not to compare other files.
  */
 public final class TestUtil {
+       private static final String SANDBOX_NAME = "ajcSandbox";
        private static final boolean JAVA_5_VM;
        private static final String ASPECTJRT_KEY = "aspectjrt";
        private static final String TESTING_CLIENT_KEY = "testing-client";
@@ -203,6 +205,10 @@ public final class TestUtil {
                return path.toString();
        }
 
+    public static String aspectjrtClasspath() {
+        return TestUtil.aspectjrtPath().getPath();        
+    }
+    
        /**
         * @param input the String to parse for [on|off|true|false]
         * @throws IllegalArgumentException if input is bad
@@ -896,6 +902,54 @@ public final class TestUtil {
                        }
                }
        }
+       
+
+       public static File createEmptySandbox() {
+               File sandbox;
+
+               String os = System.getProperty("os.name");
+               File tempDir = null;
+               // AMC - I did this rather than use the JDK default as I hate having to go look
+               // in c:\documents and settings\......... for the results of a failed test.
+               if (os.startsWith("Windows")) {
+                       tempDir = new File("N:\\temp");
+                       if (!tempDir.exists()) {
+                               tempDir = new File("C:\\temp");
+                           if (!tempDir.exists()) {
+                                   tempDir.mkdir();
+                               }
+                       }
+               } else {
+                       tempDir = new File("/tmp");
+               }
+               File sandboxRoot = new File(tempDir, SANDBOX_NAME);
+               if (!sandboxRoot.exists()) {
+                       sandboxRoot.mkdir();
+               }
+
+               try {
+                       File workspace = new File(".." + File.separator);
+                       String workspaceName = workspace.getCanonicalPath();
+                       int index = workspaceName.lastIndexOf(File.separator);
+                       workspaceName = workspaceName.substring(index + 1);
+
+                       File workspaceRoot = new File(sandboxRoot, workspaceName);
+                       if (!workspaceRoot.exists()) {
+                               workspaceRoot.mkdir();
+                       }
+
+                       FileUtil.deleteContents(workspaceRoot);
+
+                       sandbox = File.createTempFile("ajcTest", ".tmp", workspaceRoot);
+                       sandbox.delete();
+                       sandbox.mkdir();
+
+               } catch (IOException ioEx) {
+                       throw new AssertionFailedError("Unable to create sandbox directory for test");
+               }
+
+               return sandbox;
+       }
 
        /**
         * Capture PrintStream output to String[] (delimiting component String on println()), also showing any missed text.