summaryrefslogtreecommitdiffstats
path: root/jack-tests/src/com/android/jack/test/toolchain/AbstractTestTools.java
diff options
context:
space:
mode:
Diffstat (limited to 'jack-tests/src/com/android/jack/test/toolchain/AbstractTestTools.java')
-rw-r--r--jack-tests/src/com/android/jack/test/toolchain/AbstractTestTools.java52
1 files changed, 50 insertions, 2 deletions
diff --git a/jack-tests/src/com/android/jack/test/toolchain/AbstractTestTools.java b/jack-tests/src/com/android/jack/test/toolchain/AbstractTestTools.java
index bf6007a..0c9fa32 100644
--- a/jack-tests/src/com/android/jack/test/toolchain/AbstractTestTools.java
+++ b/jack-tests/src/com/android/jack/test/toolchain/AbstractTestTools.java
@@ -135,8 +135,8 @@ public abstract class AbstractTestTools {
@Override
public IToolchain build() {
- return new LegacyJillToolchain(getPrebuilt("jill"), getPrebuilt("jack"),
- getPrebuilt("jarjar"), getPrebuilt("proguard"));
+ return new LegacyJillToolchain(getPrebuilt("legacy-java-compiler"), getPrebuilt("jill"),
+ getPrebuilt("jack"), getPrebuilt("jarjar"), getPrebuilt("proguard"));
}
}
@@ -300,6 +300,37 @@ public abstract class AbstractTestTools {
}
}
+ public static void copyDirectory(@Nonnull File source, @Nonnull File dest) throws IOException {
+ if (!source.isDirectory() || !dest.isDirectory()) {
+ throw new AssertionError("Existing directories must be provided");
+ }
+ recursiveFileCopy(source, dest);
+ }
+
+ private static void recursiveFileCopy(@Nonnull File src, @Nonnull File dest)
+ throws IOException {
+
+ if (src.isDirectory()) {
+
+ if (!dest.exists() && !dest.mkdir()) {
+ throw new AssertionError("Unable to create directory '" + dest.getPath() + "'");
+ }
+
+ for (String file : src.list()) {
+ File srcFile = new File(src, file);
+ File destFile = new File(dest, file);
+ recursiveFileCopy(srcFile, destFile);
+ }
+
+ } else {
+
+ assert src.isFile();
+
+ Files.copy(src, dest);
+ }
+ }
+
+
@Nonnull
public static String getClasspathAsString(@Nonnull File[] files) {
if (files.length == 0) {
@@ -460,6 +491,23 @@ public abstract class AbstractTestTools {
}
}
+ public static void zip(@Nonnull File directory, @Nonnull File outputFile) throws IOException {
+ String[] args = new String[] {"zip", "-r", outputFile.getAbsolutePath(), "."};
+
+ ExecuteFile execFile = new ExecuteFile(args);
+ execFile.setWorkingDir(directory, /* create = */ false);
+ execFile.setErr(System.err);
+ execFile.setOut(System.out);
+
+ try {
+ if (execFile.run() != 0) {
+ throw new RuntimeException("Zip exited with an error");
+ }
+ } catch (ExecFileException e) {
+ throw new RuntimeException("An error occured while running zip", e);
+ }
+ }
+
public static void createjar(@Nonnull File jarfile, @Nonnull File inputFiles) {
String[] args = new String[] {"jar",
"cf",