summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Marie Henaff <jmhenaff@google.com>2014-12-23 17:42:57 +0100
committerJean-Marie Henaff <jmhenaff@google.com>2015-01-14 10:13:27 +0100
commit016b6e5e3c8aa7b6ec4dfbd4ad5046d2ff2f5f70 (patch)
treed1f48d62c1572e1ec04e1b8152ffb43e66892b19
parent09f9bf059547d1123dc53009282acd796dd4219a (diff)
downloadtoolchain_jack-016b6e5e3c8aa7b6ec4dfbd4ad5046d2ff2f5f70.zip
toolchain_jack-016b6e5e3c8aa7b6ec4dfbd4ad5046d2ff2f5f70.tar.gz
toolchain_jack-016b6e5e3c8aa7b6ec4dfbd4ad5046d2ff2f5f70.tar.bz2
Clean test framework
factorize some code remove useless JSR305 annotations Change-Id: I42b520f0a93dbf045020b5592dc223758740006e
-rw-r--r--jack-tests/src/com/android/jack/test/toolchain/DummyToolchain.java20
-rw-r--r--jack-tests/src/com/android/jack/test/toolchain/IToolchain.java10
-rw-r--r--jack-tests/src/com/android/jack/test/toolchain/JackApiToolchain.java152
-rw-r--r--jack-tests/src/com/android/jack/test/toolchain/JackCliToolchain.java164
-rw-r--r--jack-tests/src/com/android/jack/test/toolchain/LegacyJillToolchain.java3
-rw-r--r--jack-tests/src/com/android/jack/test/toolchain/LegacyToolchain.java13
-rw-r--r--jack-tests/src/com/android/jack/test/toolchain/Toolchain.java16
7 files changed, 135 insertions, 243 deletions
diff --git a/jack-tests/src/com/android/jack/test/toolchain/DummyToolchain.java b/jack-tests/src/com/android/jack/test/toolchain/DummyToolchain.java
index 09e3f1b..30391f3 100644
--- a/jack-tests/src/com/android/jack/test/toolchain/DummyToolchain.java
+++ b/jack-tests/src/com/android/jack/test/toolchain/DummyToolchain.java
@@ -34,26 +34,18 @@ public class DummyToolchain extends AndroidToolchain {
public DummyToolchain() {}
@Override
- @Nonnull
- public void srcToExe(@CheckForNull String classpath, @Nonnull File out,
- boolean zipFile, @Nonnull File... sources) throws Exception {
- }
+ public void srcToExe(@CheckForNull String classpath, @Nonnull File out, boolean zipFile,
+ @Nonnull File... sources) throws Exception {}
@Override
- @Nonnull
- public void srcToLib(@CheckForNull String classpath, @Nonnull File out,
- boolean zipFiles, @Nonnull File... sources) throws Exception {
- }
+ public void srcToLib(@CheckForNull String classpath, @Nonnull File out, boolean zipFiles,
+ @Nonnull File... sources) throws Exception {}
@Override
- @Nonnull
- public void libToExe(@Nonnull File in, @Nonnull File out, boolean zipFile) throws Exception {
- }
+ public void libToExe(@Nonnull File[] in, @Nonnull File out, boolean zipFile) throws Exception {}
@Override
- @Nonnull
- public void libToLib(@Nonnull File[] in, @Nonnull File out, boolean zipFiles) throws Exception {
- }
+ public void libToLib(@Nonnull File[] in, @Nonnull File out, boolean zipFiles) throws Exception {}
@Override
@Nonnull
diff --git a/jack-tests/src/com/android/jack/test/toolchain/IToolchain.java b/jack-tests/src/com/android/jack/test/toolchain/IToolchain.java
index f35c65f..2495eea 100644
--- a/jack-tests/src/com/android/jack/test/toolchain/IToolchain.java
+++ b/jack-tests/src/com/android/jack/test/toolchain/IToolchain.java
@@ -32,24 +32,22 @@ import javax.annotation.processing.Processor;
*/
public interface IToolchain {
- @Nonnull
void srcToExe(@CheckForNull String classpath, @Nonnull File out, boolean zipFile,
@Nonnull File... sources) throws Exception;
- @Nonnull
void srcToLib(@CheckForNull String classpath, @Nonnull File out, boolean zipFiles,
@Nonnull File... sources) throws Exception;
- @Nonnull
void libToExe(@Nonnull File in, @Nonnull File out, boolean zipFile) throws Exception;
- @Nonnull
+ void libToExe(@Nonnull File[] in, @Nonnull File out, boolean zipFile) throws Exception;
+
+ void libToExe(@Nonnull List<File> in, @Nonnull File out, boolean zipFile) throws Exception;
+
void libToLib(@Nonnull File in, @Nonnull File out, boolean zipFiles) throws Exception;
- @Nonnull
void libToLib(@Nonnull File[] in, @Nonnull File out, boolean zipFiles) throws Exception;
- @Nonnull
void libToLib(@Nonnull List<File> in, @Nonnull File out, boolean zipFiles) throws Exception;
@Nonnull
diff --git a/jack-tests/src/com/android/jack/test/toolchain/JackApiToolchain.java b/jack-tests/src/com/android/jack/test/toolchain/JackApiToolchain.java
index 8aca425..63b557f 100644
--- a/jack-tests/src/com/android/jack/test/toolchain/JackApiToolchain.java
+++ b/jack-tests/src/com/android/jack/test/toolchain/JackApiToolchain.java
@@ -48,24 +48,12 @@ public class JackApiToolchain extends JackBasedToolchain {
}
@Override
- @Nonnull
public void srcToExe(@CheckForNull String classpath, @Nonnull File out, boolean zipFile,
@Nonnull File... sources) throws Exception {
try {
- addProperties(properties, jackOptions);
-
- if (jackOptions.getFlags() != null) {
- jackOptions.applyShrobFlags();
- }
-
- fillEcjArgs(sources);
- for (File res : resImport) {
- jackOptions.addResource(res);
- }
-
- jackOptions.setClasspath(classpath);
+ srcToCommon(classpath, sources);
if (zipFile) {
jackOptions.setOutputZip(out);
@@ -73,17 +61,6 @@ public class JackApiToolchain extends JackBasedToolchain {
jackOptions.setOutputDir(out);
}
- jackOptions.setImportedLibraries(staticLibs);
-
- jackOptions.setJarjarRulesFile(jarjarRules);
-
- if (proguardFlags.size() > 0) {
- jackOptions.setProguardFlagsFile(proguardFlags);
- }
-
- jackOptions.addProperty(Options.EMIT_LOCAL_DEBUG_INFO.getName(),
- Boolean.toString(withDebugInfos));
-
System.setOut(outRedirectStream);
System.setErr(errRedirectStream);
@@ -95,18 +72,12 @@ public class JackApiToolchain extends JackBasedToolchain {
}
@Override
- @Nonnull
public void srcToLib(@CheckForNull String classpath, @Nonnull File out, boolean zipFiles,
@Nonnull File... sources) throws Exception {
try {
- addProperties(properties, jackOptions);
- if (jackOptions.getFlags() != null) {
- jackOptions.applyShrobFlags();
- }
-
- jackOptions.setClasspath(classpath);
+ srcToCommon(classpath, sources);
if (zipFiles) {
jackOptions.setJayceOutputZip(out);
@@ -114,26 +85,6 @@ public class JackApiToolchain extends JackBasedToolchain {
jackOptions.setJayceOutputDir(out);
}
- fillEcjArgs(sources);
-
- for (File res : resImport) {
- jackOptions.addResource(res);
- }
-
- jackOptions.setImportedLibraries(staticLibs);
-
- jackOptions.setJarjarRulesFile(jarjarRules);
-
- if (proguardFlags.size() > 0) {
- jackOptions.setProguardFlagsFile(proguardFlags);
- }
-
- jackOptions.addProperty(Options.EMIT_LOCAL_DEBUG_INFO.getName(),
- Boolean.toString(withDebugInfos));
-
- jackOptions.addProperty(CodeItemBuilder.DEX_OPTIMIZE.getName(),
- Boolean.toString(!withDebugInfos));
-
System.setOut(outRedirectStream);
System.setErr(errRedirectStream);
@@ -144,31 +95,43 @@ public class JackApiToolchain extends JackBasedToolchain {
}
}
- @Override
- @Nonnull
- public void libToExe(@Nonnull File in, @Nonnull File out, boolean zipFile) throws Exception {
+ private void srcToCommon(@CheckForNull String classpath, @Nonnull File... sources) {
+ addProperties(properties, jackOptions);
- try {
- addProperties(properties, jackOptions);
+ if (jackOptions.getFlags() != null) {
+ jackOptions.applyShrobFlags();
+ }
- if (jackOptions.getFlags() != null) {
- jackOptions.applyShrobFlags();
- }
+ jackOptions.setClasspath(classpath);
- jackOptions.setJarjarRulesFile(jarjarRules);
+ fillEcjArgs(sources);
- if (proguardFlags.size() > 0) {
- jackOptions.setProguardFlagsFile(proguardFlags);
- }
+ for (File res : resImport) {
+ jackOptions.addResource(res);
+ }
- List<File> libsToImport = new ArrayList<File>();
- libsToImport.add(in);
- libsToImport.addAll(staticLibs);
- jackOptions.setImportedLibraries(libsToImport);
+ jackOptions.setImportedLibraries(staticLibs);
- for (File res : resImport) {
- jackOptions.addResource(res);
- }
+ jackOptions.setJarjarRulesFile(jarjarRules);
+
+ if (proguardFlags.size() > 0) {
+ jackOptions.setProguardFlagsFile(proguardFlags);
+ }
+
+ jackOptions.addProperty(Options.EMIT_LOCAL_DEBUG_INFO.getName(),
+ Boolean.toString(withDebugInfos));
+
+ jackOptions.addProperty(CodeItemBuilder.DEX_OPTIMIZE.getName(),
+ Boolean.toString(!withDebugInfos));
+
+ }
+
+ @Override
+ public void libToExe(@Nonnull File[] in, @Nonnull File out, boolean zipFile) throws Exception {
+
+ try {
+
+ libToCommon(in);
if (zipFile) {
jackOptions.setOutputZip(out);
@@ -187,32 +150,11 @@ public class JackApiToolchain extends JackBasedToolchain {
}
@Override
- @Nonnull
public void libToLib(@Nonnull File[] in, @Nonnull File out, boolean zipFiles) throws Exception {
try {
- addProperties(properties, jackOptions);
-
- jackOptions.setJarjarRulesFile(jarjarRules);
- if (jackOptions.getFlags() != null) {
- jackOptions.applyShrobFlags();
- }
-
- if (proguardFlags.size() > 0) {
- jackOptions.setProguardFlagsFile(proguardFlags);
- }
-
- for (File res : resImport) {
- jackOptions.addResource(res);
- }
-
- List<File> libsToImport = new ArrayList<File>();
- for (File staticLib : in) {
- libsToImport.add(staticLib);
- }
- libsToImport.addAll(staticLibs);
- jackOptions.setImportedLibraries(libsToImport);
+ libToCommon(in);
if (zipFiles) {
jackOptions.setJayceOutputZip(out);
@@ -230,6 +172,32 @@ public class JackApiToolchain extends JackBasedToolchain {
}
}
+ private void libToCommon(@Nonnull File[] in) {
+ addProperties(properties, jackOptions);
+
+ jackOptions.setJarjarRulesFile(jarjarRules);
+
+ if (jackOptions.getFlags() != null) {
+ jackOptions.applyShrobFlags();
+ }
+
+ if (proguardFlags.size() > 0) {
+ jackOptions.setProguardFlagsFile(proguardFlags);
+ }
+
+ for (File res : resImport) {
+ jackOptions.addResource(res);
+ }
+
+ List<File> libsToImport = new ArrayList<File>();
+ for (File staticLib : in) {
+ libsToImport.add(staticLib);
+ }
+ libsToImport.addAll(staticLibs);
+ jackOptions.setImportedLibraries(libsToImport);
+
+ }
+
@Nonnull
public JackApiToolchain setShrobFlags(@Nonnull Flags shrobFlags) {
jackOptions.setFlags(shrobFlags);
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 9165934..243940f 100644
--- a/jack-tests/src/com/android/jack/test/toolchain/JackCliToolchain.java
+++ b/jack-tests/src/com/android/jack/test/toolchain/JackCliToolchain.java
@@ -56,36 +56,12 @@ public class JackCliToolchain extends JackBasedToolchain {
}
@Override
- @Nonnull
public void srcToExe(@CheckForNull String classpath, @Nonnull File out,
boolean zipFile, @Nonnull File... sources) throws Exception {
List<String> args = new ArrayList<String>();
- args.add("java");
- args.add("-cp");
- args.add(jackPrebuilt.getAbsolutePath());
-
- args.add(com.android.jack.Main.class.getName());
-
- args.add("--verbose");
- args.add(verbosityLevel.name());
-
- if (incrementalFolder != null) {
- args.add("--incremental-folder");
- args.add(incrementalFolder.getAbsolutePath());
- }
-
- addProperties(properties, args);
-
- if (classpath != null) {
- args.add("--classpath");
- args.add(classpath);
- }
- for (File res : resImport) {
- args.add("--import-resource");
- args.add(res.getPath());
- }
+ srcToCommon(args, classpath, sources);
if (zipFile) {
args.add("--output-dex-zip");
@@ -94,21 +70,6 @@ public class JackCliToolchain extends JackBasedToolchain {
}
args.add(out.getAbsolutePath());
- if (jarjarRules != null) {
- args.add("--config-jarjar");
- args.add(jarjarRules.getAbsolutePath());
- }
-
- for (File flags : proguardFlags) {
- args.add("--config-proguard");
- args.add(flags.getAbsolutePath());
- }
-
- for (File staticLib : staticLibs) {
- args.add("--import");
- args.add(staticLib.getAbsolutePath());
- }
-
args.addAll(extraJackArgs);
if (withDebugInfos) {
@@ -141,11 +102,39 @@ public class JackCliToolchain extends JackBasedToolchain {
}
@Override
- @Nonnull
public void srcToLib(@CheckForNull String classpath, @Nonnull File out,
boolean zipFiles, @Nonnull File... sources) throws Exception {
List<String> args = new ArrayList<String>();
+
+ srcToCommon(args, classpath, sources);
+
+ if (zipFiles) {
+ args.add("--output-jack");
+ } else {
+ args.add("--output-jack-dir");
+ }
+ args.add(out.getAbsolutePath());
+
+ for (String ecjArg : extraEcjArgs) {
+ args.add(ecjArg);
+ }
+
+ AbstractTestTools.addFile(args, /* mustExist = */ false, sources);
+
+ ExecuteFile exec = new ExecuteFile(args.toArray(new String[args.size()]));
+ exec.setErr(outRedirectStream);
+ exec.setOut(errRedirectStream);
+ exec.setVerbose(isVerbose);
+
+ if (!exec.run()) {
+ throw new RuntimeException("Jack compiler exited with an error");
+ }
+
+ }
+
+ private void srcToCommon(@Nonnull List<String> args, @CheckForNull String classpath,
+ @Nonnull File... sources) {
args.add("java");
args.add("-cp");
args.add(jackPrebuilt.getAbsolutePath());
@@ -172,13 +161,6 @@ public class JackCliToolchain extends JackBasedToolchain {
args.add(res.getPath());
}
- if (zipFiles) {
- args.add("--output-jack");
- } else {
- args.add("--output-jack-dir");
- }
- args.add(out.getAbsolutePath());
-
args.addAll(extraJackArgs);
if (jarjarRules != null) {
@@ -208,12 +190,21 @@ public class JackCliToolchain extends JackBasedToolchain {
args.add("--import");
args.add(staticLib.getAbsolutePath());
}
+ }
- for (String ecjArg : extraEcjArgs) {
- args.add(ecjArg);
+ @Override
+ public void libToExe(@Nonnull File[] in, @Nonnull File out, boolean zipFile) throws Exception {
+ List<String> args = new ArrayList<String>();
+
+ libToCommon(args, in);
+
+ if (zipFile) {
+ args.add("--output-dex-zip");
+ } else {
+ args.add("--output-dex");
}
- AbstractTestTools.addFile(args, /* mustExist = */ false, sources);
+ args.add(out.getAbsolutePath());
ExecuteFile exec = new ExecuteFile(args.toArray(new String[args.size()]));
exec.setErr(outRedirectStream);
@@ -223,57 +214,19 @@ public class JackCliToolchain extends JackBasedToolchain {
if (!exec.run()) {
throw new RuntimeException("Jack compiler exited with an error");
}
-
}
@Override
- @Nonnull
- public void libToExe(@Nonnull File in, @Nonnull File out, boolean zipFile) throws Exception {
-
+ public void libToLib(@Nonnull File[] in, @Nonnull File out, boolean zipFiles) throws Exception {
List<String> args = new ArrayList<String>();
- args.add("java");
- args.add("-cp");
- args.add(jackPrebuilt.getAbsolutePath());
-
- args.add(com.android.jack.Main.class.getName());
-
- args.add("--verbose");
- args.add(verbosityLevel.name());
-
- if (incrementalFolder != null) {
- args.add("--incremental-folder");
- args.add(incrementalFolder.getAbsolutePath());
- }
- for (File res : resImport) {
- args.add("--import-resource");
- args.add(res.getPath());
- }
-
- if (withDebugInfos) {
- args.add("-D");
- args.add("jack.dex.optimize=false");
- } else {
- args.add("-D");
- args.add("jack.dex.optimize=true");
- }
+ libToCommon(args, in);
- addProperties(properties, args);
-
- args.add("--import");
- args.add(in.getAbsolutePath());
-
- for (File staticLib : staticLibs) {
- args.add("--import");
- args.add(staticLib.getAbsolutePath());
- }
-
- if (zipFile) {
- args.add("--output-dex-zip");
+ if (zipFiles) {
+ args.add("--output-jack");
} else {
- args.add("--output-dex");
+ args.add("--output-jack-dir");
}
-
args.add(out.getAbsolutePath());
ExecuteFile exec = new ExecuteFile(args.toArray(new String[args.size()]));
@@ -284,12 +237,10 @@ public class JackCliToolchain extends JackBasedToolchain {
if (!exec.run()) {
throw new RuntimeException("Jack compiler exited with an error");
}
+
}
- @Override
- @Nonnull
- public void libToLib(@Nonnull File[] in, @Nonnull File out, boolean zipFiles) throws Exception {
- List<String> args = new ArrayList<String>();
+ private void libToCommon(@Nonnull List<String> args, @Nonnull File[] in) {
args.add("java");
args.add("-cp");
args.add(jackPrebuilt.getAbsolutePath());
@@ -330,23 +281,6 @@ public class JackCliToolchain extends JackBasedToolchain {
args.add("--import");
args.add(staticLib.getAbsolutePath());
}
-
- if (zipFiles) {
- args.add("--output-jack");
- } else {
- args.add("--output-jack-dir");
- }
- args.add(out.getAbsolutePath());
-
- ExecuteFile exec = new ExecuteFile(args.toArray(new String[args.size()]));
- exec.setErr(outRedirectStream);
- exec.setOut(errRedirectStream);
- exec.setVerbose(isVerbose);
-
- if (!exec.run()) {
- throw new RuntimeException("Jack compiler exited with an error");
- }
-
}
@Nonnull
diff --git a/jack-tests/src/com/android/jack/test/toolchain/LegacyJillToolchain.java b/jack-tests/src/com/android/jack/test/toolchain/LegacyJillToolchain.java
index 1150830..1e3e37e 100644
--- a/jack-tests/src/com/android/jack/test/toolchain/LegacyJillToolchain.java
+++ b/jack-tests/src/com/android/jack/test/toolchain/LegacyJillToolchain.java
@@ -44,7 +44,6 @@ public class LegacyJillToolchain extends JillBasedToolchain {
}
@Override
- @Nonnull
public void srcToExe(@Nonnull String classpath, @Nonnull File out, boolean zipFile,
@Nonnull File... sources) throws Exception {
try {
@@ -79,7 +78,6 @@ public class LegacyJillToolchain extends JillBasedToolchain {
}
@Override
- @Nonnull
public void srcToLib(@Nonnull String classpath, @Nonnull File out, boolean zipFiles,
@Nonnull File... sources) throws Exception {
@@ -111,7 +109,6 @@ public class LegacyJillToolchain extends JillBasedToolchain {
}
@Override
- @Nonnull
public void libToLib(@Nonnull File[] in, @Nonnull File out, boolean zipFiles) throws Exception {
throw new AssertionError("Not Yet Implemented");
}
diff --git a/jack-tests/src/com/android/jack/test/toolchain/LegacyToolchain.java b/jack-tests/src/com/android/jack/test/toolchain/LegacyToolchain.java
index 289412a..667ce13 100644
--- a/jack-tests/src/com/android/jack/test/toolchain/LegacyToolchain.java
+++ b/jack-tests/src/com/android/jack/test/toolchain/LegacyToolchain.java
@@ -50,7 +50,6 @@ public class LegacyToolchain extends AndroidToolchain {
}
@Override
- @Nonnull
public void srcToExe(@CheckForNull String classpath, @Nonnull File out,
boolean zipFile, @Nonnull File... sources) throws Exception {
@@ -83,7 +82,6 @@ public class LegacyToolchain extends AndroidToolchain {
}
@Override
- @Nonnull
public void srcToLib(@CheckForNull String classpath, @Nonnull File out,
boolean zipFiles, @Nonnull File... sources) throws Exception {
@@ -113,18 +111,21 @@ public class LegacyToolchain extends AndroidToolchain {
}
@Override
- @Nonnull
- public void libToExe(@Nonnull File in, @Nonnull File out, boolean zipFile) throws Exception {
+ public void libToExe(@Nonnull File[] in, @Nonnull File out, boolean zipFile) throws Exception {
try {
- compileWithDx(in, out, zipFile);
+ if (in.length > 1) {
+ throw new AssertionError("Not yet supported");
+ }
+ for (File lib : in) {
+ compileWithDx(in[0], out, zipFile);
+ }
} catch (IOException e) {
throw new RuntimeException("Legacy toolchain exited with an error", e);
}
}
@Override
- @Nonnull
public void libToLib(@Nonnull File[] in, @Nonnull File out, boolean zipFiles) throws Exception {
throw new AssertionError("Not Yet Implemented");
}
diff --git a/jack-tests/src/com/android/jack/test/toolchain/Toolchain.java b/jack-tests/src/com/android/jack/test/toolchain/Toolchain.java
index 4676aef..2b26091 100644
--- a/jack-tests/src/com/android/jack/test/toolchain/Toolchain.java
+++ b/jack-tests/src/com/android/jack/test/toolchain/Toolchain.java
@@ -68,29 +68,31 @@ public abstract class Toolchain implements IToolchain {
Toolchain() {}
@Override
- @Nonnull
public abstract void srcToExe(@CheckForNull String classpath, @Nonnull File out,
boolean zipFile, @Nonnull File... sources) throws Exception;
@Override
- @Nonnull
public abstract void srcToLib(@CheckForNull String classpath, @Nonnull File out,
boolean zipFiles, @Nonnull File... sources) throws Exception;
@Override
- @Nonnull
- public abstract void libToExe(@Nonnull File in, @Nonnull File out, boolean zipFile)
- throws Exception;
+ public void libToExe(@Nonnull File in, @Nonnull File out, boolean zipFile) throws Exception {
+ libToExe(new File[] {in}, out, zipFile);
+ }
+
+ @Override
+ public void libToExe(@Nonnull List<File> in, @Nonnull File out, boolean zipFile)
+ throws Exception {
+ libToExe(in.toArray(new File[in.size()]), out, zipFile);
+ }
@Override
- @Nonnull
public final void libToLib(@Nonnull File in, @Nonnull File out, boolean zipFiles)
throws Exception {
libToLib(new File[] {in}, out, zipFiles);
}
@Override
- @Nonnull
public final void libToLib(@Nonnull List<File> in, @Nonnull File out, boolean zipFiles)
throws Exception {
libToLib(in.toArray(new File[in.size()]), out, zipFiles);