diff options
author | Jean-Marie Henaff <jmhenaff@google.com> | 2015-03-09 14:01:04 +0100 |
---|---|---|
committer | Jean-Marie Henaff <jmhenaff@google.com> | 2015-03-09 18:39:07 +0100 |
commit | bfa575d8e0e1a2270205c59a01c2965c4087cec4 (patch) | |
tree | 71020ae7402c58c732778cf3f746c3b6aeabd72a /jack-tests/tests/com | |
parent | 6346674768a5f96da38e676e810fca14ea043c18 (diff) | |
download | toolchain_jack-bfa575d8e0e1a2270205c59a01c2965c4087cec4.zip toolchain_jack-bfa575d8e0e1a2270205c59a01c2965c4087cec4.tar.gz toolchain_jack-bfa575d8e0e1a2270205c59a01c2965c4087cec4.tar.bz2 |
Adapt shrob tests to get rid of setShrobFlags
Thus, it works both with new api and cli
Change-Id: Ifc9fc48b6a99df92345d6cfcc1e6466b6026c2df
Diffstat (limited to 'jack-tests/tests/com')
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 a6b0db3..a2af566 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 3cb631d..20566d9 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 7b35e50..6104b60 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 546b5a5..6a78220 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 042a5a4..0592546 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 dbc4c17..8dcbe6b 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")); |