diff options
author | Jean-Marie Henaff <jmhenaff@google.com> | 2014-12-23 17:42:57 +0100 |
---|---|---|
committer | Jean-Marie Henaff <jmhenaff@google.com> | 2015-01-14 10:13:27 +0100 |
commit | 016b6e5e3c8aa7b6ec4dfbd4ad5046d2ff2f5f70 (patch) | |
tree | d1f48d62c1572e1ec04e1b8152ffb43e66892b19 | |
parent | 09f9bf059547d1123dc53009282acd796dd4219a (diff) | |
download | toolchain_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
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); |