diff options
author | Jean-Marie Henaff <jmhenaff@google.com> | 2015-05-11 17:54:05 +0200 |
---|---|---|
committer | Jean-Marie Henaff <jmhenaff@google.com> | 2015-05-12 11:14:06 +0200 |
commit | a18689e31b6c26e62a457f9976de4d72a6ba197c (patch) | |
tree | 97787e2872913c2abea656d12c33a3b6d4b8f03f /jack-tests | |
parent | dc6de5d3bbbc226aba567add67781fc10befb333 (diff) | |
download | toolchain_jack-a18689e31b6c26e62a457f9976de4d72a6ba197c.tar.gz toolchain_jack-a18689e31b6c26e62a457f9976de4d72a6ba197c.tar.bz2 toolchain_jack-a18689e31b6c26e62a457f9976de4d72a6ba197c.zip |
Modify Api01Config and Jack to support multiple Jarjar config files
Bug: 20913411
(cherry picked from commit 517dec6fa299a3755f38681b3fcea387c84873f0)
Change-Id: If9c1e8f827e8ed3fd68c4999a8700608a95ce7c9
Diffstat (limited to 'jack-tests')
11 files changed, 36 insertions, 24 deletions
diff --git a/jack-tests/src/com/android/jack/test/helper/RuntimeTestHelper.java b/jack-tests/src/com/android/jack/test/helper/RuntimeTestHelper.java index 8cdc1dbc..38e74c48 100644 --- a/jack-tests/src/com/android/jack/test/helper/RuntimeTestHelper.java +++ b/jack-tests/src/com/android/jack/test/helper/RuntimeTestHelper.java @@ -194,7 +194,7 @@ public class RuntimeTestHelper { new File(testBinaryDir, helper.getCandidateDex().getName())); } else { if (jarjarRules != null) { - candidateTestTools.setJarjarRules(jarjarRules); + candidateTestTools.setJarjarRules(Collections.singletonList(jarjarRules)); } candidateTestTools.addProguardFlags(proguargFlags.toArray(new File [proguargFlags.size()])); candidateTestTools.addToClasspath(candidateClassPath) @@ -220,7 +220,9 @@ public class RuntimeTestHelper { if (getLinkSrc().length != 0) { File linkBinaryDir = AbstractTestTools.createTempDir(); linkBinary = new File(linkBinaryDir, candidateTestTools.getBinaryFileName()); - candidateTestTools.setJarjarRules(jarjarRules); + if (jarjarRules != null) { + candidateTestTools.setJarjarRules(Collections.singletonList(jarjarRules)); + } candidateTestTools.addProguardFlags(proguargFlags.toArray(new File [proguargFlags.size()])); candidateTestTools.addToClasspath(candidateBootClasspath) .srcToExe(linkBinaryDir, /* zipFile = */ false, getLinkSrc()); diff --git a/jack-tests/src/com/android/jack/test/helper/SourceToDexComparisonTestHelper.java b/jack-tests/src/com/android/jack/test/helper/SourceToDexComparisonTestHelper.java index 15dc16aa..e8d7f7e8 100644 --- a/jack-tests/src/com/android/jack/test/helper/SourceToDexComparisonTestHelper.java +++ b/jack-tests/src/com/android/jack/test/helper/SourceToDexComparisonTestHelper.java @@ -22,6 +22,7 @@ import com.android.jack.test.toolchain.AndroidToolchain; import com.android.jack.test.toolchain.Toolchain.SourceLevel; import java.io.File; +import java.util.Collections; import javax.annotation.CheckForNull; import javax.annotation.Nonnull; @@ -170,7 +171,7 @@ public class SourceToDexComparisonTestHelper extends GenericComparisonTestHelper @Nonnull protected void executeCandidateToolchain() throws Exception { if (jarjarRulesFile != null) { - candidateTestTools.setJarjarRules(jarjarRulesFile); + candidateTestTools.setJarjarRules(Collections.singletonList(jarjarRulesFile)); } candidateTestTools.setWithDebugInfos(withDebugInfos); candidateTestTools.setSourceLevel(sourceLevel); @@ -184,7 +185,7 @@ public class SourceToDexComparisonTestHelper extends GenericComparisonTestHelper @Nonnull protected void executeReferenceToolchain() throws Exception { if (jarjarRulesFile != null) { - referenceTestTools.setJarjarRules(jarjarRulesFile); + referenceTestTools.setJarjarRules(Collections.singletonList(jarjarRulesFile)); } referenceTestTools.setWithDebugInfos(withDebugInfos); referenceTestTools.setSourceLevel(sourceLevel); 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 fb97ef6c..5ad998e5 100644 --- a/jack-tests/src/com/android/jack/test/toolchain/IToolchain.java +++ b/jack-tests/src/com/android/jack/test/toolchain/IToolchain.java @@ -78,7 +78,7 @@ public interface IToolchain { IToolchain addProguardFlags(@Nonnull File... proguardFlags); @Nonnull - IToolchain setJarjarRules(@Nonnull File jarjarRules); + IToolchain setJarjarRules(@Nonnull List<File> jarjarRules); @Nonnull IToolchain setOutputStream(@Nonnull OutputStream outputStream); 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 133ff819..5593472a 100644 --- a/jack-tests/src/com/android/jack/test/toolchain/JackApiV01Toolchain.java +++ b/jack-tests/src/com/android/jack/test/toolchain/JackApiV01Toolchain.java @@ -185,8 +185,8 @@ public class JackApiV01Toolchain extends JackApiToolchainBase { apiV01Config.setSourceEntries(Lists.newArrayList(sources)); apiV01Config.setResourceDirs(resImport); apiV01Config.setProguardConfigFiles(proguardFlags); - if (jarjarRules != null) { - apiV01Config.setJarJarConfigFile(jarjarRules); + if (!jarjarRules.isEmpty()) { + apiV01Config.setJarJarConfigFiles(jarjarRules); } apiV01Config.setProcessorOptions(annotationProcessorOptions); @@ -212,7 +212,7 @@ public class JackApiV01Toolchain extends JackApiToolchainBase { apiV01Config.setResourceDirs(resImport); apiV01Config.setProguardConfigFiles(proguardFlags); if (jarjarRules != null) { - apiV01Config.setJarJarConfigFile(jarjarRules); + apiV01Config.setJarJarConfigFiles(jarjarRules); } } 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 b8d565b1..fdcfedcb 100644 --- a/jack-tests/src/com/android/jack/test/toolchain/JackCliToolchain.java +++ b/jack-tests/src/com/android/jack/test/toolchain/JackCliToolchain.java @@ -165,9 +165,9 @@ public class JackCliToolchain extends JackBasedToolchain { args.addAll(extraJackArgs); - if (jarjarRules != null) { + for (File jarjarFile : jarjarRules) { args.add("--config-jarjar"); - args.add(jarjarRules.getAbsolutePath()); + args.add(jarjarFile.getAbsolutePath()); } for (File flags : proguardFlags) { @@ -273,9 +273,9 @@ public class JackCliToolchain extends JackBasedToolchain { args.add(classpath); } - if (jarjarRules != null) { + for (File jarjarFile : jarjarRules) { args.add("--config-jarjar"); - args.add(jarjarRules.getAbsolutePath()); + args.add(jarjarFile.getAbsolutePath()); } for (File flags : proguardFlags) { 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 6684769b..8592ee68 100644 --- a/jack-tests/src/com/android/jack/test/toolchain/LegacyJillToolchain.java +++ b/jack-tests/src/com/android/jack/test/toolchain/LegacyJillToolchain.java @@ -129,8 +129,11 @@ public class LegacyJillToolchain extends JillBasedToolchain { AbstractTestTools.createjar(jarFile, classesDir); - if (jarjarRules != null) { - processWithJarJar(jarjarRules, jarFile, jarFileJarjar); + if (jarjarRules.size() > 0) { + if (jarjarRules.size() > 1) { + throw new AssertionError("Not yet supported"); + } + processWithJarJar(jarjarRules.get(0), jarFile, jarFileJarjar); } else { jarFileJarjar = jarFile; } 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 512dae6d..5bcf2266 100644 --- a/jack-tests/src/com/android/jack/test/toolchain/LegacyToolchain.java +++ b/jack-tests/src/com/android/jack/test/toolchain/LegacyToolchain.java @@ -65,8 +65,11 @@ public class LegacyToolchain extends AndroidToolchain { srcToLib(jarFile, true /* zipFiles = */, sources); - if (jarjarRules != null) { - processWithJarJar(jarjarRules, jarFile, jarFileJarjar); + if (jarjarRules.size() > 0) { + if (jarjarRules.size() > 1) { + throw new AssertionError("Not yet supported"); + } + processWithJarJar(jarjarRules.get(0), jarFile, jarFileJarjar); } else { jarFileJarjar = jarFile; } 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 131b055d..9fd3cfdd 100644 --- a/jack-tests/src/com/android/jack/test/toolchain/Toolchain.java +++ b/jack-tests/src/com/android/jack/test/toolchain/Toolchain.java @@ -55,8 +55,8 @@ public abstract class Toolchain implements IToolchain { protected List<File> staticLibs = Collections.emptyList(); @Nonnull protected List<File> proguardFlags = Collections.emptyList(); - @CheckForNull - protected File jarjarRules; + @Nonnull + protected List<File> jarjarRules = Collections.emptyList(); @Nonnull protected PrintStream stdOut = System.out; @@ -149,7 +149,7 @@ public abstract class Toolchain implements IToolchain { @Override @Nonnull - public final Toolchain setJarjarRules(@Nonnull File jarjarRules) { + public final Toolchain setJarjarRules(@Nonnull List<File> jarjarRules) { this.jarjarRules = jarjarRules; return this; } diff --git a/jack-tests/tests/com/android/jack/jarjar/JarjarTests.java b/jack-tests/tests/com/android/jack/jarjar/JarjarTests.java index a5cc2160..ed58f658 100644 --- a/jack-tests/tests/com/android/jack/jarjar/JarjarTests.java +++ b/jack-tests/tests/com/android/jack/jarjar/JarjarTests.java @@ -67,7 +67,8 @@ public class JarjarTests { @Test public void jarjar003_1() throws Exception { IToolchain toolchain = AbstractTestTools.getCandidateToolchain(); - toolchain.setJarjarRules(new File(JARJAR003.directory, "jarjar-rules.txt")); + toolchain.setJarjarRules( + Collections.singletonList(new File(JARJAR003.directory, "jarjar-rules.txt"))); File lib = AbstractTestTools.createTempFile("jarjarTest003Jack", toolchain.getLibraryExtension()); toolchain.addToClasspath(toolchain.getDefaultBootClasspath()) .srcToLib( diff --git a/jack-tests/tests/com/android/jack/noclasspath/NoClasspathTest.java b/jack-tests/tests/com/android/jack/noclasspath/NoClasspathTest.java index 4fa7fe36..1e3c6393 100644 --- a/jack-tests/tests/com/android/jack/noclasspath/NoClasspathTest.java +++ b/jack-tests/tests/com/android/jack/noclasspath/NoClasspathTest.java @@ -32,6 +32,7 @@ import org.junit.Test; import org.junit.experimental.categories.Category; import java.io.File; +import java.util.Collections; @Ignore("Tree") @Category(SlowTests.class) @@ -124,7 +125,7 @@ public class NoClasspathTest { File conscyptRules = new JarJarRules(TestTools.getFromAndroidTree("external/conscrypt/jarjar-rules.txt")); toolchain = AbstractTestTools.getCandidateToolchain(JackBasedToolchain.class); - toolchain.setJarjarRules(conscyptRules); + toolchain.setJarjarRules(Collections.singletonList(conscyptRules)); toolchain.libToLib(conscryptJack, conscryptRenamedJack, /* zipFiles = */ true); File okhttpJack = AbstractTestTools.createTempFile("okkttp", ".jack"); @@ -137,7 +138,7 @@ public class NoClasspathTest { File okhttpRules = new JarJarRules(TestTools.getFromAndroidTree("external/okhttp/jarjar-rules.txt")); toolchain = AbstractTestTools.getCandidateToolchain(JackBasedToolchain.class); - toolchain.setJarjarRules(okhttpRules); + toolchain.setJarjarRules(Collections.singletonList(okhttpRules)); toolchain.libToLib(okhttpJack, okhttpRenamedJack, /* zipFiles = */ true); File extJack = AbstractTestTools.createTempFile("ext", ".jack"); @@ -159,7 +160,7 @@ public class NoClasspathTest { File jarjarRules = new JarJarRules(TestTools.getFromAndroidTree("external/bouncycastle/jarjar-rules.txt")); toolchain = AbstractTestTools.getCandidateToolchain(JackBasedToolchain.class); - toolchain.setJarjarRules(jarjarRules); + toolchain.setJarjarRules(Collections.singletonList(jarjarRules)); toolchain.libToLib(bouncyCastleJack, bouncyCastleRenamedJack, /* zipFiles = */ true); File[] classpath = new File[] {coreOut, diff --git a/jack-tests/tests/com/android/jack/toolchain/ToolchainTest.java b/jack-tests/tests/com/android/jack/toolchain/ToolchainTest.java index c4ce4dfc..5fd70fb0 100644 --- a/jack-tests/tests/com/android/jack/toolchain/ToolchainTest.java +++ b/jack-tests/tests/com/android/jack/toolchain/ToolchainTest.java @@ -29,6 +29,7 @@ import org.junit.Test; import java.io.File; import java.util.ArrayList; +import java.util.Collections; import java.util.List; /** @@ -154,7 +155,7 @@ public class ToolchainTest { File jarjarTestRenamedOut = AbstractTestTools.createTempFile("jarjartestrenamed", ".jack"); File jarjarRules = new File(testFolder, "jarjar-rules.txt"); toolchain = AbstractTestTools.getCandidateToolchain(AndroidToolchain.class); - toolchain.setJarjarRules(jarjarRules); + toolchain.setJarjarRules(Collections.singletonList(jarjarRules)); toolchain.libToLib(jarjarTestJackOut, jarjarTestRenamedOut, /* zipFiles = */ true); File jarjarTestDexOutFolder = AbstractTestTools.createTempDir(); |