diff options
author | Jean-Marie Henaff <jmhenaff@google.com> | 2014-12-08 16:00:04 +0100 |
---|---|---|
committer | Jean-Marie Henaff <jmhenaff@google.com> | 2014-12-18 09:04:38 +0100 |
commit | 1efb68145bbf5be96583693d958590ecdcdf98d8 (patch) | |
tree | d2a283c4f68186fe2c1e2b181142e56cad11c66b | |
parent | 997d7ed08a905449b770c7d916bff870b12f5153 (diff) | |
download | toolchain_jack-1efb68145bbf5be96583693d958590ecdcdf98d8.zip toolchain_jack-1efb68145bbf5be96583693d958590ecdcdf98d8.tar.gz toolchain_jack-1efb68145bbf5be96583693d958590ecdcdf98d8.tar.bz2 |
Add verbosity control in tests Toolchains
Bug 18603124
Change-Id: Ib42cb5ea8238218f3b40150065b2bcd48ebea9ee
10 files changed, 91 insertions, 29 deletions
diff --git a/jack-tests/run-jack-tests b/jack-tests/run-jack-tests index 7502609..10acc8f 100755 --- a/jack-tests/run-jack-tests +++ b/jack-tests/run-jack-tests @@ -19,7 +19,6 @@ then echo "Usage: $(basename $0) <tests config file path> <test suite>+" exit 1 fi -set -x CURRENT_DIR=$(dirname $0) java -Dtests.config=$1 -cp $CURRENT_DIR/dist/jack-tests.jar:\ $CURRENT_DIR/libs/ddmlib.jar org.junit.runner.JUnitCore $2 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 184682b..f35c65f 100644 --- a/jack-tests/src/com/android/jack/test/toolchain/IToolchain.java +++ b/jack-tests/src/com/android/jack/test/toolchain/IToolchain.java @@ -86,4 +86,7 @@ public interface IToolchain { @Nonnull IToolchain setErrorStream(@Nonnull OutputStream errorStream); + @Nonnull + IToolchain setVerbose(boolean isVerbose); + } 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 99b0ddb..eb6d0cd 100644 --- a/jack-tests/src/com/android/jack/test/toolchain/JackApiToolchain.java +++ b/jack-tests/src/com/android/jack/test/toolchain/JackApiToolchain.java @@ -39,8 +39,9 @@ public class JackApiToolchain extends JackBasedToolchain { JackApiToolchain() {} + @Override @Nonnull - public JackApiToolchain setVerbosityLevel(@Nonnull Options.VerbosityLevel level) { + protected JackApiToolchain setVerbosityLevel(@Nonnull Options.VerbosityLevel level) { jackOptions.setVerbosityLevel(level); return this; } 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 e5a57ac..697adf8 100644 --- a/jack-tests/src/com/android/jack/test/toolchain/JackBasedToolchain.java +++ b/jack-tests/src/com/android/jack/test/toolchain/JackBasedToolchain.java @@ -16,6 +16,8 @@ package com.android.jack.test.toolchain; +import com.android.jack.Options; +import com.android.jack.Options.VerbosityLevel; import com.android.jack.backend.dex.DexFileWriter; import com.android.jack.backend.dex.MultiDexLegacy; import com.android.jack.backend.dex.rop.CodeItemBuilder; @@ -124,6 +126,21 @@ public abstract class JackBasedToolchain extends AndroidToolchain { @Override @Nonnull + public JackBasedToolchain setVerbose(boolean isVerbose) { + super.setVerbose(isVerbose); + if (isVerbose) { + setVerbosityLevel(VerbosityLevel.DEBUG); + } else { + setVerbosityLevel(VerbosityLevel.WARNING); + } + return this; + } + + @Nonnull + protected abstract JackBasedToolchain setVerbosityLevel(@Nonnull Options.VerbosityLevel level); + + @Override + @Nonnull public JackBasedToolchain enableDxOptimizations() { addProperty(CodeItemBuilder.DEX_OPTIMIZE.getName(), "true"); return this; 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 485d066..4cf3a7c 100644 --- a/jack-tests/src/com/android/jack/test/toolchain/JackCliToolchain.java +++ b/jack-tests/src/com/android/jack/test/toolchain/JackCliToolchain.java @@ -16,6 +16,8 @@ package com.android.jack.test.toolchain; +import com.android.jack.Options; +import com.android.jack.Options.VerbosityLevel; import com.android.jack.util.ExecuteFile; import java.io.File; @@ -39,6 +41,8 @@ public class JackCliToolchain extends JackBasedToolchain { private List<String> extraJackArgs = new ArrayList<String>(0); @CheckForNull private File incrementalFolder; + @Nonnull + private Options.VerbosityLevel verbosityLevel = VerbosityLevel.WARNING; JackCliToolchain(@Nonnull File prebuilt) { this.jackPrebuilt = prebuilt; @@ -46,6 +50,13 @@ public class JackCliToolchain extends JackBasedToolchain { @Override @Nonnull + protected JackCliToolchain setVerbosityLevel(@Nonnull Options.VerbosityLevel level) { + verbosityLevel = level; + return this; + } + + @Override + @Nonnull public void srcToExe(@CheckForNull String classpath, @Nonnull File out, boolean zipFile, @Nonnull File... sources) throws Exception { @@ -54,6 +65,9 @@ public class JackCliToolchain extends JackBasedToolchain { args.add("-cp"); args.add(jackPrebuilt.getAbsolutePath()); + args.add("--verbose"); + args.add(verbosityLevel.name()); + if (incrementalFolder != null) { args.add("--incremental-folder"); args.add(incrementalFolder.getAbsolutePath()); @@ -118,7 +132,7 @@ public class JackCliToolchain extends JackBasedToolchain { ExecuteFile exec = new ExecuteFile(args.toArray(new String[args.size()])); exec.setErr(outRedirectStream); exec.setOut(errRedirectStream); - exec.setVerbose(true); + exec.setVerbose(isVerbose); if (!exec.run()) { throw new RuntimeException("Jack compiler exited with an error"); @@ -136,6 +150,9 @@ public class JackCliToolchain extends JackBasedToolchain { args.add("-cp"); args.add(jackPrebuilt.getAbsolutePath()); + args.add("--verbose"); + args.add(verbosityLevel.name()); + if (incrementalFolder != null) { args.add("--incremental-folder"); args.add(incrementalFolder.getAbsolutePath()); @@ -194,7 +211,7 @@ public class JackCliToolchain extends JackBasedToolchain { ExecuteFile exec = new ExecuteFile(args.toArray(new String[args.size()])); exec.setErr(outRedirectStream); exec.setOut(errRedirectStream); - exec.setVerbose(true); + exec.setVerbose(isVerbose); if (!exec.run()) { throw new RuntimeException("Jack compiler exited with an error"); @@ -211,6 +228,9 @@ public class JackCliToolchain extends JackBasedToolchain { args.add("-cp"); args.add(jackPrebuilt.getAbsolutePath()); + args.add("--verbose"); + args.add(verbosityLevel.name()); + if (incrementalFolder != null) { args.add("--incremental-folder"); args.add(incrementalFolder.getAbsolutePath()); @@ -251,7 +271,7 @@ public class JackCliToolchain extends JackBasedToolchain { ExecuteFile exec = new ExecuteFile(args.toArray(new String[args.size()])); exec.setErr(outRedirectStream); exec.setOut(errRedirectStream); - exec.setVerbose(true); + exec.setVerbose(isVerbose); if (!exec.run()) { throw new RuntimeException("Jack compiler exited with an error"); @@ -266,6 +286,9 @@ public class JackCliToolchain extends JackBasedToolchain { args.add("-cp"); args.add(jackPrebuilt.getAbsolutePath()); + args.add("--verbose"); + args.add(verbosityLevel.name()); + if (incrementalFolder != null) { args.add("--incremental-folder"); args.add(incrementalFolder.getAbsolutePath()); @@ -309,7 +332,7 @@ public class JackCliToolchain extends JackBasedToolchain { ExecuteFile exec = new ExecuteFile(args.toArray(new String[args.size()])); exec.setErr(outRedirectStream); exec.setOut(errRedirectStream); - exec.setVerbose(true); + exec.setVerbose(isVerbose); if (!exec.run()) { throw new RuntimeException("Jack compiler exited with an error"); diff --git a/jack-tests/src/com/android/jack/test/toolchain/JillBasedToolchain.java b/jack-tests/src/com/android/jack/test/toolchain/JillBasedToolchain.java index dbcc528..cc79239 100644 --- a/jack-tests/src/com/android/jack/test/toolchain/JillBasedToolchain.java +++ b/jack-tests/src/com/android/jack/test/toolchain/JillBasedToolchain.java @@ -44,6 +44,8 @@ public abstract class JillBasedToolchain extends JackCliToolchain { args.add("java"); args.add("-jar"); args.add(jillPrebuilt.getAbsolutePath()); + args.add("--verbose"); + args.add(String.valueOf(isVerbose)); if (zipFiles) { args.add("--container"); args.add("zip"); @@ -55,7 +57,7 @@ public abstract class JillBasedToolchain extends JackCliToolchain { ExecuteFile execFile = new ExecuteFile(args.toArray(new String[args.size()])); execFile.setOut(outRedirectStream); execFile.setErr(errRedirectStream); - execFile.setVerbose(true); + execFile.setVerbose(isVerbose); try { if (execFile.run() != 0) { 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 7ebd63a..2c4f1d5 100644 --- a/jack-tests/src/com/android/jack/test/toolchain/LegacyJillToolchain.java +++ b/jack-tests/src/com/android/jack/test/toolchain/LegacyJillToolchain.java @@ -134,6 +134,9 @@ public class LegacyJillToolchain extends JillBasedToolchain { arguments.add(refCompilerPath.trim()); + arguments.add("-verbose"); + arguments.add(String.valueOf(isVerbose)); + addSourceLevel(sourceLevel, arguments); if (annotationProcessorClass != null) { @@ -154,7 +157,7 @@ public class LegacyJillToolchain extends JillBasedToolchain { ExecuteFile execFile = new ExecuteFile(arguments.toArray(new String[arguments.size()])); execFile.setErr(outRedirectStream); execFile.setOut(errRedirectStream); - execFile.setVerbose(true); + execFile.setVerbose(isVerbose); try { if (execFile.run() != 0) { throw new RuntimeException("Reference compiler exited with an error"); @@ -166,14 +169,14 @@ public class LegacyJillToolchain extends JillBasedToolchain { private void processWithJarJar(@Nonnull File jarjarRules, @Nonnull File inJar, @Nonnull File outJar) { - String[] args = new String[]{"java", "-jar", jarjarPrebuilt.getAbsolutePath(), - "process", jarjarRules.getAbsolutePath(), + String[] args = new String[]{"java", "-Dverbose=" + String.valueOf(isVerbose), "-jar", + jarjarPrebuilt.getAbsolutePath(), "process", jarjarRules.getAbsolutePath(), inJar.getAbsolutePath(), outJar.getAbsolutePath()}; ExecuteFile execFile = new ExecuteFile(args); execFile.setOut(outRedirectStream); execFile.setErr(errRedirectStream); - execFile.setVerbose(true); + execFile.setVerbose(isVerbose); try { if (execFile.run() != 0) { @@ -197,9 +200,9 @@ public class LegacyJillToolchain extends JillBasedToolchain { args.add(outJar.getAbsolutePath()); args.add("-libraryjars"); args.add(bootclasspathStr); - args.add("-verbose"); - args.add("-forceprocessing"); - args.add("-dontoptimize"); + if (isVerbose) { + args.add("-verbose"); + } for (File flags : proguardFlags) { args.add("-include"); args.add(flags.getAbsolutePath()); @@ -208,7 +211,7 @@ public class LegacyJillToolchain extends JillBasedToolchain { ExecuteFile execFile = new ExecuteFile(args.toArray(new String[args.size()])); execFile.setOut(outRedirectStream); execFile.setErr(errRedirectStream); - execFile.setVerbose(true); + execFile.setVerbose(isVerbose); try { if (execFile.run() != 0) { 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 8a60624..fe2e535 100644 --- a/jack-tests/src/com/android/jack/test/toolchain/LegacyToolchain.java +++ b/jack-tests/src/com/android/jack/test/toolchain/LegacyToolchain.java @@ -140,14 +140,14 @@ public class LegacyToolchain extends AndroidToolchain { private void processWithJarJar(@Nonnull File jarjarRules, @Nonnull File inJar, @Nonnull File outJar) { - String[] args = new String[]{"java", "-jar", jarjarPrebuilt.getAbsolutePath(), - "process", jarjarRules.getAbsolutePath(), + String[] args = new String[]{"java", "-Dverbose=" + String.valueOf(isVerbose), "-jar", + jarjarPrebuilt.getAbsolutePath(), "process", jarjarRules.getAbsolutePath(), inJar.getAbsolutePath(), outJar.getAbsolutePath()}; ExecuteFile execFile = new ExecuteFile(args); execFile.setOut(outRedirectStream); execFile.setErr(errRedirectStream); - execFile.setVerbose(true); + execFile.setVerbose(isVerbose); try { if (execFile.run() != 0) { @@ -173,9 +173,9 @@ public class LegacyToolchain extends AndroidToolchain { args.add("-libraryjars"); args.add(bootclasspathStr); } - args.add("-verbose"); - args.add("-forceprocessing"); - args.add("-dontoptimize"); + if (isVerbose) { + args.add("-verbose"); + } for (File flags : proguardFlags) { args.add("-include"); args.add(flags.getAbsolutePath()); @@ -184,7 +184,7 @@ public class LegacyToolchain extends AndroidToolchain { ExecuteFile execFile = new ExecuteFile(args.toArray(new String[args.size()])); execFile.setOut(outRedirectStream); execFile.setErr(errRedirectStream); - execFile.setVerbose(true); + execFile.setVerbose(isVerbose); try { if (execFile.run() != 0) { @@ -202,6 +202,9 @@ public class LegacyToolchain extends AndroidToolchain { args.add("-classpath"); args.add(classpath); } + if (isVerbose) { + args.add("-verbose"); + } addSourceLevel(sourceLevel, args); args.add("-noExit"); args.add("-preserveAllLocals"); @@ -248,6 +251,10 @@ public class LegacyToolchain extends AndroidToolchain { arguments.add(legacyCompilerPrebuilt.getAbsolutePath()); + if (isVerbose) { + arguments.add("-verbose"); + } + addSourceLevel(sourceLevel, arguments); if (annotationProcessorClass != null) { @@ -268,7 +275,7 @@ public class LegacyToolchain extends AndroidToolchain { ExecuteFile execFile = new ExecuteFile(arguments.toArray(new String[arguments.size()])); execFile.setErr(outRedirectStream); execFile.setOut(errRedirectStream); - execFile.setVerbose(true); + execFile.setVerbose(isVerbose); try { if (execFile.run() != 0) { throw new RuntimeException("Reference compiler exited with an error"); @@ -292,6 +299,7 @@ public class LegacyToolchain extends AndroidToolchain { arguments.optimize = !withDebugInfos && useDxOptimization; // this only means we deactivate the check that no core classes are included arguments.coreLibrary = true; + arguments.verbose = isVerbose; arguments.parse(new String[] {in.getAbsolutePath()}); int retValue = com.android.dx.command.dexer.Main.run(arguments); 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 6954f27..4676aef 100644 --- a/jack-tests/src/com/android/jack/test/toolchain/Toolchain.java +++ b/jack-tests/src/com/android/jack/test/toolchain/Toolchain.java @@ -63,6 +63,8 @@ public abstract class Toolchain implements IToolchain { @Nonnull protected PrintStream errRedirectStream = System.err; + protected boolean isVerbose = false; + Toolchain() {} @Override @@ -156,4 +158,11 @@ public abstract class Toolchain implements IToolchain { errRedirectStream = new PrintStream(errorStream); return this; } + + @Override + @Nonnull + public Toolchain setVerbose(boolean isVerbose) { + this.isVerbose = isVerbose; + return this; + } } diff --git a/jack-tests/tests/com/android/jack/error/JackFormatErrorTest.java b/jack-tests/tests/com/android/jack/error/JackFormatErrorTest.java index c518e9f..3d72821 100644 --- a/jack-tests/tests/com/android/jack/error/JackFormatErrorTest.java +++ b/jack-tests/tests/com/android/jack/error/JackFormatErrorTest.java @@ -18,8 +18,6 @@ package com.android.jack.error; import com.android.jack.JackAbortException; import com.android.jack.Main; -import com.android.jack.Options.VerbosityLevel; -import com.android.jack.jayce.JayceFormatException; import com.android.jack.jayce.JayceProperties; import com.android.jack.library.FileType; import com.android.jack.library.JackLibrary; @@ -27,7 +25,6 @@ import com.android.jack.library.JackLibraryFactory; import com.android.jack.library.LibraryFormatException; import com.android.jack.library.LibraryReadingException; import com.android.jack.library.v0001.Version; -import com.android.jack.load.JackLoadingException; import com.android.jack.test.helper.ErrorTestHelper; import com.android.jack.test.toolchain.AbstractTestTools; import com.android.jack.test.toolchain.JackApiToolchain; @@ -75,7 +72,7 @@ public class JackFormatErrorTest { JackApiToolchain toolchain = AbstractTestTools.getCandidateToolchain(JackApiToolchain.class); - toolchain.setVerbosityLevel(VerbosityLevel.DEBUG); + toolchain.setVerbose(true); ByteArrayOutputStream errOut = new ByteArrayOutputStream(); toolchain.setErrorStream(errOut); @@ -121,7 +118,7 @@ public class JackFormatErrorTest { JackApiToolchain toolchain = AbstractTestTools.getCandidateToolchain(JackApiToolchain.class); - toolchain.setVerbosityLevel(VerbosityLevel.DEBUG); + toolchain.setVerbose(true); ByteArrayOutputStream errOut = new ByteArrayOutputStream(); toolchain.setErrorStream(errOut); @@ -166,7 +163,7 @@ public class JackFormatErrorTest { JackApiToolchain toolchain = AbstractTestTools.getCandidateToolchain(JackApiToolchain.class); - toolchain.setVerbosityLevel(VerbosityLevel.DEBUG); + toolchain.setVerbose(true); ByteArrayOutputStream errOut = new ByteArrayOutputStream(); toolchain.setErrorStream(errOut); |