import java.io.File; import java.io.FilenameFilter; import java.util.ArrayList; import junit.framework.TestCase; import org.junit.Test; import com.sun.tools.javac.Main; public class SystemTests extends TestCase { // Paths are relative to the Compiler project private static final String RUNTIME_SOURCE_PATH = "../Runtime/dpj/"; private static final String RUNTIME_CLASS_PATH = "../Runtime/classes/"; private static final String BARNES_HUT_PATH = "../../Benchmarks/Applications/barnes-hut/dpj/"; private static final String KERNELS_PATH = "../../Benchmarks/Kernels/dpj/"; @Test public void testsTemporarilyDisabled() { assertTrue(true); } // @Test public void testRuntimeClasses() throws Throwable { // compileAllFilesIn(RUNTIME_SOURCE_PATH, "Runtime"); // } // // @Test public void testBarnesHutClasses() throws Throwable { // compileAllFilesIn(BARNES_HUT_PATH, "Barnes-Hut"); // } // // @Test public void testKernelClasses() throws Throwable { // compileAllFilesIn(KERNELS_PATH, "Kernels"); // } private void compileAllFilesIn(String directoryName, String description) { checkExists(RUNTIME_SOURCE_PATH, "Runtime"); File directory = checkExists(directoryName, description); if (directory == null) return; ArrayList<String> arguments = new ArrayList<String>(32); arguments.add("-source"); arguments.add("1.5"); arguments.add("-target"); arguments.add("1.5"); arguments.add("-d"); arguments.add("/tmp"); arguments.add("-cp"); arguments.add(RUNTIME_CLASS_PATH); for (File f : directory.listFiles()) { if (f.getName().endsWith(".java")) { //System.out.println("- " + directoryName + f.getName()); arguments.add(directoryName + f.getName()); } } //System.out.println("Compiling..."); int result = Main.compileDPJ(arguments.toArray(new String[arguments.size()])); assertEquals(0, result); //System.out.println("Done"); } private File checkExists(String directoryName, String description) { File directory = new File(directoryName); if (!directory.exists() || !directory.isDirectory()) { System.err.println(description + " not found; skipping"); return null; } return directory; } }