summaryrefslogtreecommitdiffstats
path: root/jack-tests/tests/com/android
diff options
context:
space:
mode:
authorJean-Marie Henaff <jmhenaff@google.com>2015-03-10 07:45:25 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2015-03-10 07:45:26 +0000
commit1f078f91f1fc7e05a7f6c47b8df97311ac8e1acc (patch)
tree40db6acb752d2a648f2d9830da37a0acf5661cf3 /jack-tests/tests/com/android
parent08b7794ee7fc339548676fd9c92e0b07f4eb1bb6 (diff)
parentbfa575d8e0e1a2270205c59a01c2965c4087cec4 (diff)
downloadtoolchain_jack-1f078f91f1fc7e05a7f6c47b8df97311ac8e1acc.tar.gz
toolchain_jack-1f078f91f1fc7e05a7f6c47b8df97311ac8e1acc.tar.bz2
toolchain_jack-1f078f91f1fc7e05a7f6c47b8df97311ac8e1acc.zip
Merge "Adapt shrob tests to get rid of setShrobFlags" into ub-jack
Diffstat (limited to 'jack-tests/tests/com/android')
-rw-r--r--jack-tests/tests/com/android/jack/shrob/AbstractTest.java19
-rw-r--r--jack-tests/tests/com/android/jack/shrob/FlattenPackageTests.java27
-rw-r--r--jack-tests/tests/com/android/jack/shrob/ObfuscationWithMappingTests.java24
-rw-r--r--jack-tests/tests/com/android/jack/shrob/ObfuscationWithoutMappingTests.java20
-rw-r--r--jack-tests/tests/com/android/jack/shrob/RepackagingTest.java22
-rw-r--r--jack-tests/tests/com/android/jack/shrob/SeedTests.java21
6 files changed, 75 insertions, 58 deletions
diff --git a/jack-tests/tests/com/android/jack/shrob/AbstractTest.java b/jack-tests/tests/com/android/jack/shrob/AbstractTest.java
index a6b0db32..a2af566d 100644
--- a/jack-tests/tests/com/android/jack/shrob/AbstractTest.java
+++ b/jack-tests/tests/com/android/jack/shrob/AbstractTest.java
@@ -16,6 +16,8 @@
package com.android.jack.shrob;
+import com.google.common.io.Files;
+
import com.android.jack.Main;
import com.android.jack.ProguardFlags;
import com.android.jack.test.category.KnownBugs;
@@ -30,6 +32,7 @@ import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
+import java.nio.charset.Charset;
import javax.annotation.Nonnull;
@@ -38,6 +41,9 @@ import javax.annotation.Nonnull;
*/
public abstract class AbstractTest {
+ @Nonnull
+ private static final Charset charSet = Charset.forName("UTF-8");
+
@BeforeClass
public static void setUpClass() {
Main.class.getClassLoader().setDefaultAssertionStatus(true);
@@ -67,6 +73,19 @@ public abstract class AbstractTest {
return new ProguardFlags(injarFlags);
}
+ @Nonnull
+ protected File addOptionsToFlagsFile(@Nonnull File flagsFile, @Nonnull File baseDirectory,
+ @Nonnull String options) throws IOException {
+
+ File result = AbstractTestTools.createTempFile("proguard", ".flags");
+
+ Files.write("-basedirectory " + baseDirectory.getAbsolutePath() + " ", result, charSet);
+ Files.append(Files.toString(flagsFile, charSet), result, charSet);
+ Files.append(options, result, charSet);
+
+ return result;
+ }
+
@Test
public void test1_001() throws Exception {
runTest("001", "001", "");
diff --git a/jack-tests/tests/com/android/jack/shrob/FlattenPackageTests.java b/jack-tests/tests/com/android/jack/shrob/FlattenPackageTests.java
index 3cb631d5..20566d93 100644
--- a/jack-tests/tests/com/android/jack/shrob/FlattenPackageTests.java
+++ b/jack-tests/tests/com/android/jack/shrob/FlattenPackageTests.java
@@ -18,14 +18,12 @@ package com.android.jack.shrob;
import com.android.jack.Options;
import com.android.jack.shrob.obfuscation.NameProviderFactory;
-import com.android.jack.shrob.proguard.GrammarActions;
-import com.android.jack.shrob.spec.Flags;
import com.android.jack.test.category.SlowTests;
import com.android.jack.test.comparator.ComparatorMapping;
import com.android.jack.test.helper.SourceToDexComparisonTestHelper;
import com.android.jack.test.toolchain.AbstractTestTools;
import com.android.jack.test.toolchain.DummyToolchain;
-import com.android.jack.test.toolchain.JackApiToolchainBase;
+import com.android.jack.test.toolchain.JackBasedToolchain;
import org.junit.experimental.categories.Category;
@@ -43,22 +41,25 @@ public class FlattenPackageTests extends AbstractTest {
@Nonnull String mappingNumber)
throws Exception {
File testFolder = AbstractTestTools.getTestRootDir("com.android.jack.shrob.test" + testNumber);
- JackApiToolchainBase toolchain =
- AbstractTestTools.getCandidateToolchain(JackApiToolchainBase.class);
- Flags flags = new Flags();
- toolchain.setShrobFlags(flags);
- GrammarActions.parse("proguard.flags" + flagNumber, testFolder.getAbsolutePath(), flags);
- GrammarActions.parse("keepPackageName.flags",
- AbstractTestTools.getTestRootDir("com.android.jack.shrob").getAbsolutePath(), flags);
- flags.setPackageForFlatHierarchy("flatpackage");
+ JackBasedToolchain toolchain =
+ AbstractTestTools.getCandidateToolchain(JackBasedToolchain.class);
File candidateOutputMapping = AbstractTestTools.createTempFile("mapping", ".txt");
File refFolder = new File(testFolder, "refsFlattenPackage");
File refOutputMapping = new File(refFolder, "expected-" + flagNumber + ".txt");
- flags.setOutputMapping(candidateOutputMapping);
- flags.setPrintMapping(true);
toolchain.addProperty(NameProviderFactory.NAMEPROVIDER.getName(), "rot13");
toolchain.addProperty(Options.METHOD_FILTER.getName(), "supported-methods");
+ File proguardFlagsFile1 = new File(testFolder, "proguard.flags" + flagNumber);
+ File proguardFlagsFile2 = addOptionsToFlagsFile(
+ new File(
+ AbstractTestTools.getTestRootDir("com.android.jack.shrob"), "keepPackageName.flags"),
+ testFolder,
+ " -printmapping " + candidateOutputMapping.getAbsolutePath()
+ + " -flattenpackagehierarchy 'flatpackage'");
+
+ toolchain.addProguardFlags(proguardFlagsFile1);
+ toolchain.addProguardFlags(proguardFlagsFile2);
+
SourceToDexComparisonTestHelper env =
new SourceToDexComparisonTestHelper(new File(testFolder, "jack"));
diff --git a/jack-tests/tests/com/android/jack/shrob/ObfuscationWithMappingTests.java b/jack-tests/tests/com/android/jack/shrob/ObfuscationWithMappingTests.java
index 7b35e501..6104b609 100644
--- a/jack-tests/tests/com/android/jack/shrob/ObfuscationWithMappingTests.java
+++ b/jack-tests/tests/com/android/jack/shrob/ObfuscationWithMappingTests.java
@@ -16,13 +16,11 @@
package com.android.jack.shrob;
-import com.android.jack.shrob.proguard.GrammarActions;
-import com.android.jack.shrob.spec.Flags;
import com.android.jack.test.comparator.ComparatorMapping;
import com.android.jack.test.helper.SourceToDexComparisonTestHelper;
import com.android.jack.test.toolchain.AbstractTestTools;
import com.android.jack.test.toolchain.DummyToolchain;
-import com.android.jack.test.toolchain.JackApiToolchainBase;
+import com.android.jack.test.toolchain.JackBasedToolchain;
import org.junit.Test;
@@ -40,22 +38,26 @@ public class ObfuscationWithMappingTests extends AbstractTest {
throws Exception {
File testFolder = AbstractTestTools.getTestRootDir("com.android.jack.shrob.test" + testNumber);
- JackApiToolchainBase toolchain =
- AbstractTestTools.getCandidateToolchain(JackApiToolchainBase.class);
- Flags flags = new Flags();
- toolchain.setShrobFlags(flags);
- GrammarActions.parse("proguard.flags" + flagNumber, testFolder.getAbsolutePath(), flags);
+ JackBasedToolchain toolchain =
+ AbstractTestTools.getCandidateToolchain(JackBasedToolchain.class);
File candidateOutputMapping = AbstractTestTools.createTempFile("mapping", ".txt");
File refFolder = new File(testFolder, "refsObfuscationWithMapping");
File refOutputMapping = new File(refFolder, "expected-" + flagNumber + ".txt");
- flags.setOutputMapping(candidateOutputMapping);
- flags.setPrintMapping(true);
File inputMapping =
new File(testFolder, "proguard.flags" + flagNumber + ".mapping" + mappingNumber);
+
+ String extraOptions = " -printmapping " + candidateOutputMapping.getAbsolutePath();
if (inputMapping.exists()) {
- flags.setObfuscationMapping(inputMapping);
+ extraOptions += " -applymapping " + inputMapping.getAbsolutePath();
}
+ File proguardFlagsFile = addOptionsToFlagsFile(
+ new File(testFolder, "proguard.flags" + flagNumber),
+ testFolder,
+ extraOptions);
+
+ toolchain.addProguardFlags(proguardFlagsFile);
+
SourceToDexComparisonTestHelper env =
new SourceToDexComparisonTestHelper(new File(testFolder, "jack"));
diff --git a/jack-tests/tests/com/android/jack/shrob/ObfuscationWithoutMappingTests.java b/jack-tests/tests/com/android/jack/shrob/ObfuscationWithoutMappingTests.java
index 546b5a56..6a782202 100644
--- a/jack-tests/tests/com/android/jack/shrob/ObfuscationWithoutMappingTests.java
+++ b/jack-tests/tests/com/android/jack/shrob/ObfuscationWithoutMappingTests.java
@@ -18,14 +18,12 @@ package com.android.jack.shrob;
import com.android.jack.Options;
import com.android.jack.shrob.obfuscation.NameProviderFactory;
-import com.android.jack.shrob.proguard.GrammarActions;
-import com.android.jack.shrob.spec.Flags;
import com.android.jack.test.category.KnownBugs;
import com.android.jack.test.comparator.ComparatorMapping;
import com.android.jack.test.helper.SourceToDexComparisonTestHelper;
import com.android.jack.test.toolchain.AbstractTestTools;
import com.android.jack.test.toolchain.DummyToolchain;
-import com.android.jack.test.toolchain.JackApiToolchainBase;
+import com.android.jack.test.toolchain.JackBasedToolchain;
import org.junit.Test;
import org.junit.experimental.categories.Category;
@@ -48,11 +46,8 @@ public class ObfuscationWithoutMappingTests extends AbstractTest {
String testPackageName = "com.android.jack.shrob.test" + testNumber;
File testFolder = AbstractTestTools.getTestRootDir(testPackageName);
- JackApiToolchainBase toolchain =
- AbstractTestTools.getCandidateToolchain(JackApiToolchainBase.class);
- Flags flags = new Flags();
- toolchain.setShrobFlags(flags);
- GrammarActions.parse("proguard.flags" + flagNumber, testFolder.getAbsolutePath(), flags);
+ JackBasedToolchain toolchain =
+ AbstractTestTools.getCandidateToolchain(JackBasedToolchain.class);
File refFolder = new File(testFolder, "refsObfuscationWithoutMapping");
toolchain.addProperty(NameProviderFactory.NAMEPROVIDER.getName(), "rot13");
@@ -60,8 +55,13 @@ public class ObfuscationWithoutMappingTests extends AbstractTest {
File candidateOutputMapping = AbstractTestTools.createTempFile("mapping", ".txt");
File refOutputMapping = new File(refFolder, "expected-" + flagNumber + ".txt");
- flags.setOutputMapping(candidateOutputMapping);
- flags.setPrintMapping(true);
+
+ File proguardFlagsFile = addOptionsToFlagsFile(
+ new File(testFolder, "proguard.flags" + flagNumber),
+ testFolder,
+ " -printmapping " + candidateOutputMapping.getAbsolutePath());
+
+ toolchain.addProguardFlags(proguardFlagsFile);
SourceToDexComparisonTestHelper env =
new SourceToDexComparisonTestHelper(new File(testFolder, "jack"));
diff --git a/jack-tests/tests/com/android/jack/shrob/RepackagingTest.java b/jack-tests/tests/com/android/jack/shrob/RepackagingTest.java
index 042a5a42..0592546a 100644
--- a/jack-tests/tests/com/android/jack/shrob/RepackagingTest.java
+++ b/jack-tests/tests/com/android/jack/shrob/RepackagingTest.java
@@ -18,13 +18,11 @@ package com.android.jack.shrob;
import com.android.jack.Options;
import com.android.jack.shrob.obfuscation.NameProviderFactory;
-import com.android.jack.shrob.proguard.GrammarActions;
-import com.android.jack.shrob.spec.Flags;
import com.android.jack.test.comparator.ComparatorMapping;
import com.android.jack.test.helper.SourceToDexComparisonTestHelper;
import com.android.jack.test.toolchain.AbstractTestTools;
import com.android.jack.test.toolchain.DummyToolchain;
-import com.android.jack.test.toolchain.JackApiToolchainBase;
+import com.android.jack.test.toolchain.JackApiV01Toolchain;
import java.io.File;
@@ -39,22 +37,22 @@ public class RepackagingTest extends AbstractTest {
@Nonnull String mappingNumber)
throws Exception {
File testFolder = AbstractTestTools.getTestRootDir("com.android.jack.shrob.test" + testNumber);
- Flags flags = new Flags();
-
- GrammarActions.parse("proguard.flags" + flagNumber, testFolder.getAbsolutePath(), flags);
- flags.setPackageForRenamedClasses("");
File candidateOutputMapping = AbstractTestTools.createTempFile("mapping", ".txt");
File refFolder = new File(testFolder, "refsRepackageClasses");
File refOutputMapping = new File(refFolder, "expected-" + flagNumber + ".txt");
- flags.setOutputMapping(candidateOutputMapping);
- flags.setPrintMapping(true);
- JackApiToolchainBase toolchain =
- AbstractTestTools.getCandidateToolchain(JackApiToolchainBase.class);
- toolchain.setShrobFlags(flags);
+ JackApiV01Toolchain toolchain =
+ AbstractTestTools.getCandidateToolchain(JackApiV01Toolchain.class);
toolchain.addProperty(NameProviderFactory.NAMEPROVIDER.getName(), "rot13");
toolchain.addProperty(Options.METHOD_FILTER.getName(), "supported-methods");
+ File proguardFile = addOptionsToFlagsFile(
+ new File(testFolder, "proguard.flags" + flagNumber),
+ testFolder,
+ " -repackageclasses '' -printmapping " + candidateOutputMapping.getAbsolutePath());
+
+ toolchain.addProguardFlags(proguardFile);
+
SourceToDexComparisonTestHelper env =
new SourceToDexComparisonTestHelper(new File(testFolder, "jack"));
diff --git a/jack-tests/tests/com/android/jack/shrob/SeedTests.java b/jack-tests/tests/com/android/jack/shrob/SeedTests.java
index dbc4c173..8dcbe6b5 100644
--- a/jack-tests/tests/com/android/jack/shrob/SeedTests.java
+++ b/jack-tests/tests/com/android/jack/shrob/SeedTests.java
@@ -16,14 +16,12 @@
package com.android.jack.shrob;
-import com.android.jack.shrob.proguard.GrammarActions;
-import com.android.jack.shrob.spec.Flags;
import com.android.jack.test.category.SlowTests;
import com.android.jack.test.comparator.ComparatorSeeds;
import com.android.jack.test.helper.SourceToDexComparisonTestHelper;
import com.android.jack.test.toolchain.AbstractTestTools;
import com.android.jack.test.toolchain.DummyToolchain;
-import com.android.jack.test.toolchain.JackApiToolchainBase;
+import com.android.jack.test.toolchain.JackBasedToolchain;
import org.junit.Test;
import org.junit.experimental.categories.Category;
@@ -43,19 +41,18 @@ public class SeedTests extends AbstractTest {
throws Exception {
File testFolder = AbstractTestTools.getTestRootDir("com.android.jack.shrob.test" + testNumber);
- Flags flags = new Flags();
- flags.setShrink(false);
- flags.setObfuscate(false);
- GrammarActions.parse("proguard.flags" + flagNumber, testFolder.getAbsolutePath(), flags);
File refFolder = new File(testFolder, "refsSeed");
File candidateOutputSeeds = AbstractTestTools.createTempFile("seeds", ".txt");
File refOutputSeeds = new File(refFolder, "expected-" + flagNumber + ".txt");
- flags.setSeedsFile(candidateOutputSeeds);
- flags.setPrintSeeds(true);
- JackApiToolchainBase toolchain =
- AbstractTestTools.getCandidateToolchain(JackApiToolchainBase.class);
- toolchain.setShrobFlags(flags);
+ JackBasedToolchain toolchain = AbstractTestTools.getCandidateToolchain(JackBasedToolchain.class);
+
+ File seedsFile = addOptionsToFlagsFile(
+ new File(testFolder, "proguard.flags" + flagNumber),
+ testFolder,
+ " -dontshrink -dontobfuscate -printseeds " + candidateOutputSeeds.getAbsolutePath());
+
+ toolchain.addProguardFlags(seedsFile);
SourceToDexComparisonTestHelper env =
new SourceToDexComparisonTestHelper(new File(testFolder, "jack"));