From ab015969e23142f96b815ca3395fee2b6c9d5cb1 Mon Sep 17 00:00:00 2001 From: Yohann Roussel Date: Fri, 20 Feb 2015 19:08:36 +0100 Subject: Do not rename 2 classes with the same name Bug: 19422723 Change-Id: I2b49b3a3f03a7bed622dbb3668e232140691a2d5 --- .../jack/shrob/ObfuscationWithoutMappingTests.java | 93 ++++------------------ .../refsObfuscationWithoutMapping/expected-001.txt | 4 +- 2 files changed, 19 insertions(+), 78 deletions(-) (limited to 'jack-tests') diff --git a/jack-tests/tests/com/android/jack/shrob/ObfuscationWithoutMappingTests.java b/jack-tests/tests/com/android/jack/shrob/ObfuscationWithoutMappingTests.java index 065decfb..77bf6d0e 100644 --- a/jack-tests/tests/com/android/jack/shrob/ObfuscationWithoutMappingTests.java +++ b/jack-tests/tests/com/android/jack/shrob/ObfuscationWithoutMappingTests.java @@ -17,10 +17,10 @@ package com.android.jack.shrob; import com.android.jack.Options; -import com.android.jack.test.category.KnownBugs; 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; @@ -36,12 +36,23 @@ import javax.annotation.Nonnull; public class ObfuscationWithoutMappingTests extends AbstractTest { + + @Override protected void runTest( @Nonnull String testNumber, @Nonnull String flagNumber, @Nonnull String mappingNumber) throws Exception { + runTest(testNumber, flagNumber, mappingNumber, "rot13"); + } + + protected void runTest( + @Nonnull String testNumber, + @Nonnull String flagNumber, + @Nonnull String mappingNumber, + @Nonnull String nameProvider) + throws Exception { String testPackageName = "com.android.jack.shrob.test" + testNumber; File testFolder = AbstractTestTools.getTestRootDir(testPackageName); @@ -52,7 +63,7 @@ public class ObfuscationWithoutMappingTests extends AbstractTest { GrammarActions.parse("proguard.flags" + flagNumber, testFolder.getAbsolutePath(), flags); File refFolder = new File(testFolder, "refsObfuscationWithoutMapping"); - toolchain.addProperty(NameProviderFactory.NAMEPROVIDER.getName(), "rot13"); + toolchain.addProperty(NameProviderFactory.NAMEPROVIDER.getName(), nameProvider); toolchain.addProperty(Options.METHOD_FILTER.getName(), "supported-methods"); File candidateOutputMapping = AbstractTestTools.createTempFile("mapping", ".txt"); @@ -67,53 +78,6 @@ public class ObfuscationWithoutMappingTests extends AbstractTest { env.setReferenceTestTools(new DummyToolchain()); env.runTest(new ComparatorMapping(candidateOutputMapping, refOutputMapping)); - - // // ============================================================== - - /* - * Comment for reviewers: the following code is an attempt to use jack based toolchain. - * It works, but requires to manipulate (copy, write...) shrob flags. - * Here I added a shrob option manually, but ideally to be able to use - * a Flags like object for CLI based toochains, we must be able to dump - * the flags as a file (TBD). Plus, if flags have "-include" directives with relative - * paths, files must be in the same location. - */ - -// -// String testName = "shrob/test" + testNumber; -// File testFolder = TestTools.getJackTestFolder(testName); -// File refFolder = new File(testFolder, "refsObfuscationWithoutMapping"); -// -// JackBasedToolchain jackToolchain = AbstractTestTools.getJackBasedToolchainAsCandidate(); -// -// jackToolchain.addProperty(NameProviderFactory.NAMEPROVIDER.getName(), "rot13"); -// jackToolchain.addProperty(Options.METHOD_FILTER.getName(), "supported-methods"); -// -// File candidateOutputMapping = TestTools.createTempFile("mapping", ".txt"); -// File refOutputMapping = new File(refFolder, "expected-" + flagNumber + ".txt"); -// -// jackToolchain.getCompilationResult().proguardMappingFile = candidateOutputMapping; -// -// // TODO(jmhenaff): having to seems like a no go for JackBasedToolchain (i.e. cli) -// File candidateFlags = new File(testFolder.getAbsolutePath(), "tmp-proguard.flags" + flagNumber); -// candidateFlags.deleteOnExit(); -// appendStringToFileCopy(new File(testFolder.getAbsolutePath(), "proguard.flags" + flagNumber), -// candidateFlags, "-printmapping " + candidateOutputMapping.getAbsolutePath()); -// -// SourceToDexComparisonTestEnv env = new SourceToDexComparisonTestEnv(bootclasspath, classpath, -// TestTools.getJackTestsWithJackFolder(testName)); -// -// env.setProguardFlags(new ProguardFlags[] {new ProguardFlags(candidateFlags)}); -// -// CompilationResult compilationResult = new CompilationResult(); -// compilationResult.proguardMappingFile = refOutputMapping; -// -// env.setCandidateTestTools(jackToolchain); -// env.setReferenceTestTools(new DummyTestTools(compilationResult)); -// -// env.addComparator(env.createMappingComparator()); -// env.compare(); - } @Override @@ -138,33 +102,10 @@ public class ObfuscationWithoutMappingTests extends AbstractTest { } @Test - @Category(KnownBugs.class) public void test43_001() throws Exception { - runTest("043", "001", ""); + /* Use "lower-case" name provider because a rot13 has invalid behavior on sources that would + * allow to reproduce the problem. Using "lower-case" makes it a very fragile test anyway + */ + runTest("043", "001", "", "lower-case"); } - -// private void appendStringToFileCopy(File source, File dest, String appended) throws IOException { -// BufferedReader reader = null; -// BufferedWriter writer = null; -// try { -// reader = new BufferedReader(new FileReader(source)); -// writer = new BufferedWriter(new FileWriter(dest)); -// String line; -// while ((line = reader.readLine()) != null) { -// writer.write(line); -// writer.write("\n"); -// } -// writer.write(appended); -// } finally { -// try { -// reader.close(); -// } catch (IOException e) { -// } -// try { -// writer.close(); -// } catch (IOException e) { -// } -// } -// } - } diff --git a/jack-tests/tests/com/android/jack/shrob/test043/refsObfuscationWithoutMapping/expected-001.txt b/jack-tests/tests/com/android/jack/shrob/test043/refsObfuscationWithoutMapping/expected-001.txt index 8f11a51e..5725166e 100644 --- a/jack-tests/tests/com/android/jack/shrob/test043/refsObfuscationWithoutMapping/expected-001.txt +++ b/jack-tests/tests/com/android/jack/shrob/test043/refsObfuscationWithoutMapping/expected-001.txt @@ -1,4 +1,4 @@ -com.android.jack.shrob.test043.jack.packb.ClassA1 -> com.android.jack.shrob.test043.jack.PynggN1: +com.android.jack.shrob.test043.jack.packa.ClassA1 -> com.android.jack.shrob.test043.jack.a: void () -> -com.android.jack.shrob.test043.jack.packa.ClassA1 -> com.android.jack.shrob.test043.jack.PynggN1: +com.android.jack.shrob.test043.jack.packb.ClassA1 -> com.android.jack.shrob.test043.jack.b: void () -> -- cgit v1.2.3