Merge "Fix method id merging" into ub-jack
diff --git a/jack-tests/src/com/android/jack/test/toolchain/JackApiV01Toolchain.java b/jack-tests/src/com/android/jack/test/toolchain/JackApiV01Toolchain.java
index baf6808..8e664ba 100644
--- a/jack-tests/src/com/android/jack/test/toolchain/JackApiV01Toolchain.java
+++ b/jack-tests/src/com/android/jack/test/toolchain/JackApiV01Toolchain.java
@@ -58,7 +58,7 @@
public void srcToExe(@Nonnull File out, boolean zipFile, @Nonnull File... sources)
throws Exception {
srcToCommon(sources);
- setOutputDex(out);
+ setOutputDex(out, zipFile);
run();
}
@@ -66,21 +66,21 @@
public void srcToLib(@Nonnull File out, boolean zipFiles, @Nonnull File... sources)
throws Exception {
srcToCommon(sources);
- setOutputJack(out);
+ setOutputJack(out, zipFiles);
run();
}
@Override
public void libToExe(@Nonnull File[] in, @Nonnull File out, boolean zipFile) throws Exception {
libToCommon(in);
- setOutputDex(out);
+ setOutputDex(out, zipFile);
run();
}
@Override
public void libToLib(@Nonnull File[] in, @Nonnull File out, boolean zipFiles) throws Exception {
libToCommon(in);
- setOutputJack(out);
+ setOutputJack(out, zipFiles);
run();
}
@@ -250,8 +250,8 @@
}
}
- private void setOutputDex(@Nonnull File outDex) throws Exception {
- if (outDex.isDirectory()) {
+ private void setOutputDex(@Nonnull File outDex, boolean zipFiles) throws Exception {
+ if (!zipFiles) {
apiV01Config.setOutputDexDir(outDex);
} else {
apiV01Config.setProperty(Options.DEX_OUTPUT_CONTAINER_TYPE.getName(), Container.ZIP.name());
@@ -260,8 +260,9 @@
}
}
- private void setOutputJack(@Nonnull File outjack) throws Exception {
- if (!outjack.isDirectory()) {
+ @Override
+ public void setOutputJack(@Nonnull File outjack, boolean zipFiles) throws Exception {
+ if (zipFiles) {
apiV01Config.setOutputJackFile(outjack);
} else {
apiV01Config.setProperty(Options.LIBRARY_OUTPUT_CONTAINER_TYPE.getName(),
diff --git a/jack-tests/src/com/android/jack/test/toolchain/JackApiV02Toolchain.java b/jack-tests/src/com/android/jack/test/toolchain/JackApiV02Toolchain.java
index 3f9b33f..8ea71c2 100644
--- a/jack-tests/src/com/android/jack/test/toolchain/JackApiV02Toolchain.java
+++ b/jack-tests/src/com/android/jack/test/toolchain/JackApiV02Toolchain.java
@@ -57,7 +57,7 @@
public void srcToExe(@Nonnull File out, boolean zipFile, @Nonnull File... sources)
throws Exception {
srcToCommon(sources);
- setOutputDex(out);
+ setOutputDex(out, zipFile);
run();
}
@@ -65,21 +65,21 @@
public void srcToLib(@Nonnull File out, boolean zipFiles, @Nonnull File... sources)
throws Exception {
srcToCommon(sources);
- setOutputJack(out);
+ setOutputJack(out, zipFiles);
run();
}
@Override
public void libToExe(@Nonnull File[] in, @Nonnull File out, boolean zipFile) throws Exception {
libToCommon(in);
- setOutputDex(out);
+ setOutputDex(out, zipFile);
run();
}
@Override
public void libToLib(@Nonnull File[] in, @Nonnull File out, boolean zipFiles) throws Exception {
libToCommon(in);
- setOutputJack(out);
+ setOutputJack(out, zipFiles);
run();
}
@@ -262,8 +262,8 @@
}
}
- private void setOutputDex(@Nonnull File outDex) throws Exception {
- if (outDex.isDirectory()) {
+ private void setOutputDex(@Nonnull File outDex, boolean zipFiles) throws Exception {
+ if (!zipFiles) {
apiV02Config.setOutputDexDir(outDex);
} else {
apiV02Config.setProperty(Options.DEX_OUTPUT_CONTAINER_TYPE.getName(), Container.ZIP.name());
@@ -272,8 +272,9 @@
}
}
- private void setOutputJack(@Nonnull File outjack) throws Exception {
- if (!outjack.isDirectory()) {
+ @Override
+ public void setOutputJack(@Nonnull File outjack, boolean zipFiles) throws Exception {
+ if (zipFiles) {
apiV02Config.setOutputJackFile(outjack);
} else {
apiV02Config.setProperty(Options.LIBRARY_OUTPUT_CONTAINER_TYPE.getName(),
diff --git a/jack-tests/src/com/android/jack/test/toolchain/JackBasedToolchain.java b/jack-tests/src/com/android/jack/test/toolchain/JackBasedToolchain.java
index d670a6f..8caff3b 100644
--- a/jack-tests/src/com/android/jack/test/toolchain/JackBasedToolchain.java
+++ b/jack-tests/src/com/android/jack/test/toolchain/JackBasedToolchain.java
@@ -142,4 +142,6 @@
return ".jayce";
}
+ public abstract void setOutputJack(@Nonnull File outputJack, boolean zipFiles) throws Exception;
+
}
diff --git a/jack-tests/src/com/android/jack/test/toolchain/JackCliToolchain.java b/jack-tests/src/com/android/jack/test/toolchain/JackCliToolchain.java
index 22c9578..134785d 100644
--- a/jack-tests/src/com/android/jack/test/toolchain/JackCliToolchain.java
+++ b/jack-tests/src/com/android/jack/test/toolchain/JackCliToolchain.java
@@ -53,6 +53,11 @@
protected boolean sanityChecks = true;
+ @CheckForNull
+ protected File outputJack;
+
+ boolean zipOutputJackFiles;
+
JackCliToolchain(@Nonnull File prebuilt) {
this.jackPrebuilt = prebuilt;
addProperty(Options.USE_DEFAULT_LIBRARIES.getName(), "false");
@@ -99,14 +104,9 @@
List<String> commandLine = new ArrayList<String>();
- srcToCommon(commandLine, sources);
+ setOutputJack(out, zipFiles);
- if (zipFiles) {
- commandLine.add("--output-jack");
- } else {
- commandLine.add("--output-jack-dir");
- }
- commandLine.add(out.getAbsolutePath());
+ srcToCommon(commandLine, sources);
AbstractTestTools.addFile(commandLine, /* mustExist = */ false, sources);
@@ -146,6 +146,15 @@
commandLine.add(meta.getPath());
}
+ if (outputJack != null) {
+ if (zipOutputJackFiles) {
+ commandLine.add("--output-jack");
+ } else {
+ commandLine.add("--output-jack-dir");
+ }
+ commandLine.add(outputJack.getAbsolutePath());
+ }
+
commandLine.addAll(extraJackArgs);
for (File jarjarFile : jarjarRules) {
@@ -192,14 +201,9 @@
public void libToLib(@Nonnull File[] in, @Nonnull File out, boolean zipFiles) throws Exception {
List<String> commandLine = new ArrayList<String>();
- libToCommon(commandLine, getClasspathAsString(), in);
+ setOutputJack(out, zipFiles);
- if (zipFiles) {
- commandLine.add("--output-jack");
- } else {
- commandLine.add("--output-jack-dir");
- }
- commandLine.add(out.getAbsolutePath());
+ libToCommon(commandLine, getClasspathAsString(), in);
run(commandLine);
@@ -231,6 +235,15 @@
commandLine.add(meta.getPath());
}
+ if (outputJack != null) {
+ if (zipOutputJackFiles) {
+ commandLine.add("--output-jack");
+ } else {
+ commandLine.add("--output-jack-dir");
+ }
+ commandLine.add(outputJack.getAbsolutePath());
+ }
+
addProperties(properties, commandLine);
if (!classpath.equals("")) {
@@ -357,6 +370,13 @@
}
}
+ @Override
+ public void setOutputJack(@Nonnull File outputJack, boolean zipFiles) throws Exception {
+ this.outputJack = outputJack;
+ this.zipOutputJackFiles = zipFiles;
+ }
+
+
protected void run(@Nonnull List<String> commandLine) {
ExecuteFile exec = new ExecuteFile(commandLine.toArray(new String[commandLine.size()]));