]> source.dussan.org Git - aspectj.git/commitdiff
- better logging, temp dir, deletion...
authorwisberg <wisberg>
Sun, 25 May 2003 19:32:22 +0000 (19:32 +0000)
committerwisberg <wisberg>
Sun, 25 May 2003 19:32:22 +0000 (19:32 +0000)
- using build.config system property

build/testsrc/org/aspectj/internal/build/BuildModuleTest.java

index 5a82510aa97dcb78cd9b5d43c694631184458f05..e3d714a9ac1855b85db2e2cf1db30b3497da537b 100644 (file)
@@ -29,32 +29,34 @@ import java.util.Iterator;
 
 import junit.framework.*;
 import junit.framework.TestCase;
+
 /**
- * 
+ * Test our integrated taskdef build.
+ * This responds to two environment variables:
+ * (1) run.build.tests must be defined before
+ *   tests that build the tree (and hence take minutes)
+ *   will run;
+ * (2) build.config takes the same form as it does for the
+ *   builder task, e.g., "useEclipseCompiles" will avoid
+ *   recompiling with Javac and adopt classes in the 
+ *   {module}/bin directories.
  */
 public class BuildModuleTest extends TestCase {
 
     private static final String SKIP_MESSAGE = 
         "Define \"run.build.tests\" as a system property to run tests to build ";
-    private static boolean delete(File file) { // XXX Util
-        if ((null == file) || !file.exists()) {
-            return true;
-        }
-        if (file.isFile()) {
-            return file.delete();
-        } else {
-            File[] files = file.listFiles();
-            boolean result = true;
-            for (int i = 0; i < files.length; i++) {
-                if (!BuildModuleTest.delete(files[i])
-                    && result) {
-                    result = false;
-                }
-            }
-            return (file.delete() && result);
+    private static final String BUILD_CONFIG;
+    static {
+        String config = null;
+        try {
+            config = System.getProperty("build.config");
+        } catch (Throwable t) {
+            // ignore
         }
+        BUILD_CONFIG = config;
+        System.out.println("BuildModuleTest build.config: " + config);
     }
-
+    
     ArrayList tempFiles = new ArrayList();
     private File jarDir;
     boolean building;  // must be enabled for tests to run
@@ -68,8 +70,20 @@ public class BuildModuleTest extends TestCase {
                super.tearDown();
         for (Iterator iter = tempFiles.iterator(); iter.hasNext();) {
                        File file = (File) iter.next();
-            if (!BuildModuleTest.delete(file)) {
-                System.err.println("warning: BuildModuleTest unable to delete " + file);
+            if (!Util.delete(file)) {
+                File[] list = file.listFiles();
+                if (!Util.isEmpty(list)) {                
+                    StringBuffer sb = new StringBuffer();
+                    sb.append("warning: BuildModuleTest unable to delete ");
+                    sb.append(file.toString());
+                    sb.append("\n"); // XXX platform
+                    for (int i = 0; i < list.length; i++) {
+                        sb.append("  ");
+                        sb.append(list[i].toString());
+                        sb.append("\n"); // XXX platform
+                    }
+                    System.err.println(sb.toString());
+                }
             }
                }
        }
@@ -128,7 +142,7 @@ public class BuildModuleTest extends TestCase {
     
     void checkAntClipping(String moduleName, boolean expectAnt) {
         File baseDir = new File("..").getAbsoluteFile();
-        File jarDir = new File("../aj-build/jars").getAbsoluteFile();
+        File jarDir = getJarDir().getAbsoluteFile();
         Messager handler = new Messager();
         Modules modules = new Modules(baseDir, jarDir, false, handler);
         Module td = modules.getModule(moduleName);
@@ -162,12 +176,15 @@ public class BuildModuleTest extends TestCase {
         Project project = new Project();
         task.setProject(project);
         assertTrue(jarDir.canWrite() || jarDir.mkdirs());
-        // XXX restore tempFiles.add(jarDir);
+        tempFiles.add(jarDir);
         task.setJardir(new Path(project, jarDir.getAbsolutePath()));
         task.setProductdir(new Path(project, productDir.getAbsolutePath()));
         task.setBasedir(new Path(project, baseDir.getAbsolutePath()));
         task.setDistdir(new Path(project, distDir.getAbsolutePath()));
         task.setFailonerror(true);
+        if (null != BUILD_CONFIG) {
+            task.setBuildConfig(BUILD_CONFIG);
+        }
         //task.setVerbose(true);
         task.setCreateinstaller(true);
         task.execute();
@@ -183,6 +200,9 @@ public class BuildModuleTest extends TestCase {
             jarDir = new File("tempJarDir");
             tempFiles.add(jarDir);
         }
+        if (!jarDir.exists()) {
+            assertTrue(jarDir.mkdirs());
+        }
         return jarDir;
     }
     
@@ -193,8 +213,14 @@ public class BuildModuleTest extends TestCase {
         File jarDir = getJarDir();
         assertTrue(jarDir.canWrite() || jarDir.mkdirs());
         tempFiles.add(jarDir);
-        task.setModuledir(new Path(project, "../" + module));
+        File moduleDir = new File("../" + module);
+        assertTrue(moduleDir.canRead());
+        task.setModuledir(new Path(project, moduleDir.getAbsolutePath()));
         task.setJardir(new Path(project, jarDir.getAbsolutePath()));
+        task.setFailonerror(true);
+        if (null != BUILD_CONFIG) {
+            task.setBuildConfig(BUILD_CONFIG);
+        }
         return task;
     }
     
@@ -221,9 +247,9 @@ public class BuildModuleTest extends TestCase {
         
         // run without assembly
         BuildModule task = getTask(module);
+        File jar = new File(getJarDir(), module + ".jar");
         task.setAssembleall(false);
         task.execute();
-        File jar = new File(getJarDir(), module + ".jar");
         assertTrue("cannot read " + jar, jar.canRead());
         assertTrue("cannot delete " + jar, jar.delete());
 
@@ -242,6 +268,7 @@ public class BuildModuleTest extends TestCase {
         Java java = new Java();
         Project project = task.getProject();
         java.setProject(project);
+        java.setFailonerror(true);
         Path cp = new Path(project);
         cp.append(new Path(project, jar.getAbsolutePath()));
         if (addAnt) {
@@ -249,11 +276,12 @@ public class BuildModuleTest extends TestCase {
         }
         java.setClasspath(cp);
         java.setClassname(classname);
-        for (int i = 0; i < args.length; i++) {
-            Argument arg = java.createArg();
-            arg.setValue(args[i]);
-               }
-        java.setFailonerror(true);
+        if (null != args) {
+            for (int i = 0; i < args.length; i++) {
+                Argument arg = java.createArg();
+                arg.setValue(args[i]);
+            }
+        }
         try {
             java.execute();
         } catch (BuildException e) {