]> source.dussan.org Git - aspectj.git/commitdiff
consolidate output dir for post-test clean-up
authorwisberg <wisberg>
Fri, 31 Oct 2003 20:53:05 +0000 (20:53 +0000)
committerwisberg <wisberg>
Fri, 31 Oct 2003 20:53:05 +0000 (20:53 +0000)
weaver/testsrc/org/aspectj/weaver/BcweaverTests.java
weaver/testsrc/org/aspectj/weaver/bcel/MegaZipTestCase.java
weaver/testsrc/org/aspectj/weaver/bcel/TraceJarWeaveTestCase.java
weaver/testsrc/org/aspectj/weaver/bcel/WeaveTestCase.java
weaver/testsrc/org/aspectj/weaver/bcel/WorldTestCase.java
weaver/testsrc/org/aspectj/weaver/bcel/ZipTestCase.java

index d0eff4d150934deb06138fe703c8e5c00082e89c..35e7c547384e33c2245bba91445d31db4b0647c9 100644 (file)
 
 package org.aspectj.weaver;
 
+import java.io.File;
+
+import org.aspectj.util.FileUtil;
+
 import junit.framework.*;
 
 public class BcweaverTests extends TestCase {
 
     public static final String TESTDATA_PATH = "../weaver/testdata";
+    public static final String OUTDIR_PATH = "../weaver/out";
+    
+    /** @return File outDir (writable) or null if unable to write */
+    public static File getOutdir() {
+        File result = new File(OUTDIR_PATH);
+        if (result.mkdirs() 
+            || (result.canWrite() && result.isDirectory())) {
+            return result;
+        }
+        return null;
+    }
+    
+    /** best efforts to delete the output directory and any contents */
+    public static void removeOutDir() {
+        File outDir = getOutdir();
+        if (null != outDir) {
+            FileUtil.deleteContents(outDir);
+            outDir.delete();
+        }
+    }
+    
     public static Test suite() { 
         TestSuite suite = new TestSuite(BcweaverTests.class.getName());
         // abstract
index 9acc65bdb534e6563be2115690b8c28044e99414..6e3f6269ea4a99dc9b36375d7525ed55a7a1f9b4 100644 (file)
@@ -17,14 +17,26 @@ import java.io.*;
 import java.lang.reflect.Modifier;
 import java.util.*;
 
+import org.aspectj.util.FileUtil;
 import org.aspectj.weaver.*;
 
 public class MegaZipTestCase extends WeaveTestCase {
 
+    private File outDir;
+
        public MegaZipTestCase(String arg0) {
                super(arg0);
        }
 
+    public void setUp() {
+        outDir = BcweaverTests.getOutdir();
+    }
+
+    public void tearDown() {
+        BcweaverTests.removeOutDir();
+        outDir = null;
+    }
+
 
     private BcelAdvice makeAroundMunger(final boolean matchOnlyPrintln) {
         BcelWorld world = new BcelWorld();
@@ -86,8 +98,8 @@ public class MegaZipTestCase extends WeaveTestCase {
        
        public void zipTest(String fileName) throws IOException {
                long startTime = System.currentTimeMillis();
-               File inFile = new File("testdata", fileName);
-               File outFile = new File("out", fileName);
+               File inFile = new File(BcweaverTests.TESTDATA_PATH, fileName);
+               File outFile = new File(outDir, fileName);
                outFile.delete();
                
                world = new BcelWorld("c:/apps/java-1.3.1_04/lib/tools.jar");
index a463db310658b0f9094eccbe83a8d757ebd2914c..ac6a43a5117d495f86995db473dc5764bdfec53d 100644 (file)
@@ -29,8 +29,8 @@ public class TraceJarWeaveTestCase extends WeaveTestCase {
                world = new BcelWorld(getTraceJar());
                BcelWeaver weaver = new BcelWeaver(world);
                weaver.addLibraryAspect("MyTrace");
-               
-               UnwovenClassFile classFile = makeUnwovenClassFile(classDir, "DynamicHelloWorld", outDir);
+               UnwovenClassFile classFile 
+            = makeUnwovenClassFile(classDir, "DynamicHelloWorld", outDirPath);
         
         weaver.addClassFile(classFile);
         weaver.prepareForWeave();
index 0f39caaf7e5477fe651ee37b9e26e1662ce4fc04..ba29b43d51ee0f3ccc514765a82ab594301b3301 100644 (file)
@@ -28,13 +28,26 @@ public abstract class WeaveTestCase extends TestCase {
 
        public boolean regenerate = false;
        public boolean runTests = true;
-       
+
+    File outDir;
+    String outDirPath;
+       
        public BcelWorld world = new BcelWorld();
 
     public WeaveTestCase(String name) {
         super(name);
     }
     
+    public void setUp() {
+        outDir = BcweaverTests.getOutdir();
+        outDirPath = outDir.getAbsolutePath();
+    }
+    public void tearDown() {
+        BcweaverTests.removeOutDir();
+        outDir = null;
+        outDirPath = null;
+    }
+
        public static InstructionList getAdviceTag(BcelShadow shadow, String where) {
                String methodName =
                        "ajc_" + where + "_" + shadow.getKind().toLegalJavaIdentifier();
@@ -53,13 +66,12 @@ public abstract class WeaveTestCase extends TestCase {
     }
     
     static String classDir = "../weaver/bin";
-    static String outDir = "out";
     
     
        public void weaveTest(String name, String outName, List planners) throws IOException {
         BcelWeaver weaver = new BcelWeaver(world);
         
-        UnwovenClassFile classFile = makeUnwovenClassFile(classDir, name, outDir);
+        UnwovenClassFile classFile = makeUnwovenClassFile(classDir, name, outDirPath); 
         
         weaver.addClassFile(classFile);
         weaver.setShadowMungers(planners);
@@ -83,11 +95,11 @@ public abstract class WeaveTestCase extends TestCase {
                        gen = classType.getLazyClassGen(); //new LazyClassGen(classType);
                }
                try {
-                       checkClass(gen, outDir, outName + ".txt");
+                       checkClass(gen, outDirPath, outName + ".txt");
                        if (runTests) {
                                System.out.println(
                                        "*******RUNNING: " + outName + "  " + name + " *******");
-                               TestUtil.runMain(makeClassPath(outDir), name);
+                TestUtil.runMain(makeClassPath(outDirPath), name);
                        }
                } catch (Error e) {
                        gen.print(System.err);
@@ -130,7 +142,7 @@ public abstract class WeaveTestCase extends TestCase {
         if (regenerate) genClass(gen, outDir, expectedFile);
         else realCheckClass(gen, outDir, expectedFile);
     }
-    static final File TESTDATA_DIR = new File("../weaver/testdata");                                   
+    static final File TESTDATA_DIR = new File(BcweaverTests.TESTDATA_PATH);                                    
     void genClass(LazyClassGen gen, String outDir, String expectedFile) throws IOException {
        //ClassGen b = getJavaClass(outDir, className);
        FileOutputStream out = new FileOutputStream(new File(TESTDATA_DIR, expectedFile));
index cf78e88ca1e22bdda34827210449bec314224ec9..428bdce9c1b3cc5c88854e20c4b630122919db24 100644 (file)
@@ -26,7 +26,8 @@ public class WorldTestCase extends AbstractWorldTestCase {
         super(name);
     }
         
-    private final BcelWorld world = new BcelWorld("testdata/tracing.jar");
+    private final BcelWorld world 
+        = new BcelWorld(BcweaverTests.TESTDATA_PATH + "/tracing.jar");
 
        protected World getWorld() {
                return world;
index f3f63142d97b84455a48eb9e197e0203815b1ac4..1aa65bcfbe922506492d564ad830b03fe40cab3d 100644 (file)
@@ -22,6 +22,8 @@ import junit.framework.TestCase;
 
 public class ZipTestCase extends TestCase {
 
+    File outDir;
+
        /**
         * Constructor for ZipTestCase.
         * @param arg0
@@ -29,6 +31,15 @@ public class ZipTestCase extends TestCase {
        public ZipTestCase(String arg0) {
                super(arg0);
        }
+
+    public void setUp() {
+        outDir = BcweaverTests.getOutdir();
+    }
+    
+    public void tearDown() {
+        BcweaverTests.removeOutDir();
+        outDir = null;
+    }
        
        
        public void zipTest(String fileName, String aspectjar) throws IOException {
@@ -37,7 +48,7 @@ public class ZipTestCase extends TestCase {
        
        public void zipTest(String fileName, String aspectjar, boolean isInJar) throws IOException {
                File inFile = new File(fileName);
-               File outFile = new File("out", inFile.getName());
+               File outFile = new File(outDir, inFile.getName());
                
                
                BcelWorld world = new BcelWorld();