Remove ProGuard 5 and ProGuard 6 + tests
Change-Id: I37d11893dd7ff6e8c2dcdd22f6d3e71600527864
diff --git a/d8_r8/commonBuildSrc/src/main/kotlin/DependenciesPlugin.kt b/d8_r8/commonBuildSrc/src/main/kotlin/DependenciesPlugin.kt
index eab8ce4..cc9d447 100644
--- a/d8_r8/commonBuildSrc/src/main/kotlin/DependenciesPlugin.kt
+++ b/d8_r8/commonBuildSrc/src/main/kotlin/DependenciesPlugin.kt
@@ -1075,20 +1075,13 @@
}
fun getThirdPartyProguards(): List<ThirdPartyDependency> {
- return listOf(
- "proguard5.2.1",
- "proguard6.0.1",
- "proguard-7.0.0",
- "proguard-7.3.2",
- "proguard-7.4.1",
+ return listOf("proguard-7.0.0", "proguard-7.3.2", "proguard-7.4.1").map {
+ ThirdPartyDependency(
+ it,
+ Paths.get("third_party", "proguard", it).toFile(),
+ Paths.get("third_party", "proguard", "${it}.tar.gz.sha1").toFile(),
)
- .map {
- ThirdPartyDependency(
- it,
- Paths.get("third_party", "proguard", it).toFile(),
- Paths.get("third_party", "proguard", "${it}.tar.gz.sha1").toFile(),
- )
- }
+ }
}
fun getThirdPartyKotlinCompilers(): List<ThirdPartyDependency> {
diff --git a/src/test/java/com/android/tools/r8/compatproguard/ifrules/ConditionalOnInlinedTest.java b/src/test/java/com/android/tools/r8/compatproguard/ifrules/ConditionalOnInlinedTest.java
index 4a9e493..fa16d54 100644
--- a/src/test/java/com/android/tools/r8/compatproguard/ifrules/ConditionalOnInlinedTest.java
+++ b/src/test/java/com/android/tools/r8/compatproguard/ifrules/ConditionalOnInlinedTest.java
@@ -6,7 +6,6 @@
import static org.junit.Assume.assumeFalse;
import static org.junit.Assume.assumeTrue;
-import com.android.tools.r8.ProguardVersion;
import com.android.tools.r8.TestBase;
import com.android.tools.r8.TestParameters;
import com.android.tools.r8.TestRunResult;
@@ -77,7 +76,7 @@
private TestShrinkerBuilder<?, ?, ?, ?, ?> buildShrinker(Shrinker shrinker) {
TestShrinkerBuilder<?, ?, ?, ?, ?> builder;
if (shrinker == Shrinker.Proguard) {
- builder = testForProguard(ProguardVersion.V6_0_1).addDontWarn(ConditionalOnInlinedTest.class);
+ builder = testForProguard().addDontWarn(ConditionalOnInlinedTest.class);
} else if (shrinker == Shrinker.R8Compat) {
builder = testForR8Compat(parameters.getBackend());
} else {
@@ -112,23 +111,16 @@
public void testConditionalOnClassAndMethod() throws Exception {
assumeTrue(optionalShrinker.isPresent());
Shrinker shrinker = optionalShrinker.get();
- TestRunResult<?> result =
- buildShrinker(shrinker)
- .addKeepRules(
- "-if class "
- + A.class.getTypeName()
- + " { void method(java.lang.String); }"
- + " -keep class "
- + B.class.getTypeName()
- + " { void <init>(); void method(); }")
- .compile()
- .run(parameters.getRuntime(), MAIN_CLASS, B.class.getTypeName());
- if (shrinker == Shrinker.Proguard) {
- // In this case PG appears to not actually keep the consequent, but it does remain renamed
- // in the output.
- result.assertFailureWithErrorThatThrows(ClassNotFoundException.class);
- } else {
- result.assertSuccessWithOutput(EXPECTED);
- }
+ buildShrinker(shrinker)
+ .addKeepRules(
+ "-if class "
+ + A.class.getTypeName()
+ + " { void method(java.lang.String); }"
+ + " -keep class "
+ + B.class.getTypeName()
+ + " { void <init>(); void method(); }")
+ .compile()
+ .run(parameters.getRuntime(), MAIN_CLASS, B.class.getTypeName())
+ .assertSuccessWithOutput(EXPECTED);
}
}
diff --git a/src/test/java/com/android/tools/r8/naming/AdaptResourceFileContentsTest.java b/src/test/java/com/android/tools/r8/naming/AdaptResourceFileContentsTest.java
index 2d73302..0475479 100644
--- a/src/test/java/com/android/tools/r8/naming/AdaptResourceFileContentsTest.java
+++ b/src/test/java/com/android/tools/r8/naming/AdaptResourceFileContentsTest.java
@@ -163,64 +163,6 @@
}
@Test
- public void testProguardBehavior() throws Exception {
- Path proguardedJar =
- File.createTempFile("proguarded", FileUtils.JAR_EXTENSION, temp.getRoot()).toPath();
- runProguard6Raw(
- proguardedJar,
- ImmutableList.of(
- AdaptResourceFileContentsTestClass.class,
- AdaptResourceFileContentsTestClass.A.class,
- AdaptResourceFileContentsTestClass.B.class),
- getProguardConfig(true, null),
- null,
- getDataResources().stream()
- .filter(x -> !StringUtils.toLowerCase(x.getName()).endsWith(FileUtils.CLASS_EXTENSION))
- .collect(Collectors.toList()));
-
- // Visit each of the resources in the jar and check that their contents are as expected.
- Set<String> filenames = new HashSet<>();
- ArchiveResourceProvider.fromArchive(proguardedJar, true)
- .accept(
- new Visitor() {
- @Override
- public void visit(DataDirectoryResource directory) {}
-
- @Override
- public void visit(DataEntryResource file) {
- try {
- byte[] bytes = ByteStreams.toByteArray(file.getByteStream());
- List<String> lines =
- Arrays.asList(
- new String(bytes, Charset.defaultCharset())
- .split(System.lineSeparator()));
- if (file.getName().endsWith("resource-all-changed.md")) {
- checkAllAreChanged(lines, originalAllChangedResource);
- } else if (file.getName().endsWith("resource-all-changed.txt")) {
- checkAllAreChanged(lines, originalAllChangedResource);
- } else if (file.getName().endsWith("resource-all-present.txt")) {
- checkAllArePresent(lines, new CodeInspector(readJar(proguardedJar)));
- } else if (file.getName().endsWith("resource-all-unchanged.txt")) {
- checkAllAreUnchanged(lines, originalAllUnchangedResource);
- }
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
-
- // Record that the jar contains a resource with this name.
- filenames.add(file.getName());
- }
- });
-
- // Check that the jar contains the four expected resources, and nothing else.
- assertEquals(4, filenames.size());
- assertTrue(filenames.stream().anyMatch(x -> x.endsWith("resource-all-changed.md")));
- assertTrue(filenames.stream().anyMatch(x -> x.endsWith("resource-all-changed.txt")));
- assertTrue(filenames.stream().anyMatch(x -> x.endsWith("resource-all-present.txt")));
- assertTrue(filenames.stream().anyMatch(x -> x.endsWith("resource-all-unchanged.txt")));
- }
-
- @Test
public void testEnabledWithFilter() throws Exception {
DataResourceConsumerForTesting dataResourceConsumer = new DataResourceConsumerForTesting();
compileWithR8(getProguardConfigWithNeverInline(true, "*.md"), dataResourceConsumer);
diff --git a/src/test/java/com/android/tools/r8/naming/AdaptResourceFileNamesTest.java b/src/test/java/com/android/tools/r8/naming/AdaptResourceFileNamesTest.java
index 9abbb74..8256e47 100644
--- a/src/test/java/com/android/tools/r8/naming/AdaptResourceFileNamesTest.java
+++ b/src/test/java/com/android/tools/r8/naming/AdaptResourceFileNamesTest.java
@@ -183,71 +183,6 @@
assertEquals(getOriginalDataResources().size(), dataResourceConsumer.size());
}
- @Test
- public void testProguardBehavior() throws Exception {
- Path inputJar = addDataResourcesToExistingJar(TEST_JAR, getOriginalDataResources());
- Path proguardedJar =
- File.createTempFile("proguarded", FileUtils.JAR_EXTENSION, temp.getRoot()).toPath();
- Path proguardMapFile = File.createTempFile("mapping", ".txt", temp.getRoot()).toPath();
- runProguard6Raw(proguardedJar, inputJar, getProguardConfig(true, null), proguardMapFile);
- // Extract the names of the generated resources.
- Set<String> filenames = new HashSet<>();
- ArchiveResourceProvider.fromArchive(proguardedJar, true)
- .accept(
- new Visitor() {
- @Override
- public void visit(DataDirectoryResource directory) {}
-
- @Override
- public void visit(DataEntryResource file) {
- filenames.add(file.getName());
- }
- });
- // Check that the generated resources have the expected names.
- ClassNameMapper mapper = ClassNameMapper.mapperFromFile(proguardMapFile);
- for (DataEntryResource dataResource : getOriginalDataResources()) {
- String expectedName = getExpectedRenamingFor(dataResource.getName(), mapper);
- assertTrue(
- "Resource not renamed to '" + expectedName + "' as expected: " + dataResource.getName(),
- filenames.contains(expectedName));
- }
- }
-
- @Test
- public void testProguardCollisionBehavior() throws Exception {
- List<DataEntryResource> originalDataResources = getOriginalDataResources();
- Path inputJar =
- addDataResourcesToExistingJar(
- TEST_JAR,
- ImmutableList.<DataEntryResource>builder()
- .addAll(originalDataResources)
- .add(
- DataEntryResource.fromBytes(
- new byte[0], "adaptresourcefilenames/b.txt", Origin.unknown()))
- .build());
- Path proguardedJar =
- File.createTempFile("proguarded", FileUtils.JAR_EXTENSION, temp.getRoot()).toPath();
- runProguard6Raw(
- proguardedJar,
- inputJar,
- getProguardConfig(true, null),
- null,
- processResult -> {
- assertEquals(0, processResult.exitCode);
- assertThat(
- processResult.stderr,
- containsString(
- "Warning: can't write resource [adaptresourcefilenames/b.txt] "
- + "(Duplicate jar entry [adaptresourcefilenames/b.txt])"));
- });
- assertEquals(
- originalDataResources.size(),
- getDataResources(ArchiveResourceProvider.fromArchive(proguardedJar, true))
- .stream()
- .filter(dataResource -> !dataResource.getName().equals("META-INF/MANIFEST.MF"))
- .count());
- }
-
private void compileWithR8(
String proguardConfig,
DataResourceConsumer dataResourceConsumer,
diff --git a/src/test/java/com/android/tools/r8/naming/KeepPackageNamesTest.java b/src/test/java/com/android/tools/r8/naming/KeepPackageNamesTest.java
index 5eb7783..7c8fdae 100644
--- a/src/test/java/com/android/tools/r8/naming/KeepPackageNamesTest.java
+++ b/src/test/java/com/android/tools/r8/naming/KeepPackageNamesTest.java
@@ -10,7 +10,6 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
-import com.android.tools.r8.ProguardVersion;
import com.android.tools.r8.TestBase;
import com.android.tools.r8.errors.Unreachable;
import com.android.tools.r8.naming.keeppackagenames.Top;
@@ -82,7 +81,7 @@
@Test
public void testProguard() throws Exception {
- testForProguard(ProguardVersion.V6_0_1)
+ testForProguard()
.addProgramClasses(CLASSES)
.addKeepAllClassesRuleWithAllowObfuscation()
.addKeepRules(config.getKeepRule())
diff --git a/src/test/java/com/android/tools/r8/naming/LambdaRenamingTestRunner.java b/src/test/java/com/android/tools/r8/naming/LambdaRenamingTestRunner.java
index ec8cd72..7f09c2e 100644
--- a/src/test/java/com/android/tools/r8/naming/LambdaRenamingTestRunner.java
+++ b/src/test/java/com/android/tools/r8/naming/LambdaRenamingTestRunner.java
@@ -62,12 +62,6 @@
}
@Test
- public void testProguard() throws Exception {
- assumeTrue(parameters.isCfRuntime());
- buildAndRunProguard("pg.jar");
- }
-
- @Test
public void testR8() throws Exception {
testForR8(parameters.getBackend())
.addProgramFiles(inputJar)
@@ -90,38 +84,4 @@
compileResult ->
compileResult.runDex2Oat(parameters.getRuntime()).assertNoVerificationErrors());
}
-
- private void buildAndRunProguard(String outName) throws Exception {
- Path pgConfig = writeProguardRules();
- Path outPg = temp.getRoot().toPath().resolve(outName);
- ProcessResult proguardResult =
- ToolHelper.runProguard6Raw(
- inputJar, outPg, ToolHelper.getJava8RuntimeJar(), pgConfig, null);
- System.out.println(proguardResult.stdout);
- if (proguardResult.exitCode != 0) {
- System.out.println(proguardResult.stderr);
- }
- assertEquals(0, proguardResult.exitCode);
- ProcessResult runPg = ToolHelper.runJava(outPg, CLASS.getCanonicalName());
- // Proguard renames IntegerInterface.inexactMethod() and ObjectInterface.inexactMethod()
- // to different names, which causes AbstractMethodError.
- assertNotEquals(-1, runPg.stderr.indexOf("AbstractMethodError"));
- assertNotEquals(0, runPg.exitCode);
- }
-
- private Path writeProguardRules() throws IOException {
- Path pgConfig = temp.getRoot().toPath().resolve("keep.txt");
- FileUtils.writeTextFile(
- pgConfig,
- "-keep public class " + CLASS.getCanonicalName() + " {",
- " public static void main(...);",
- "}",
- "-keep interface " + CLASS.getCanonicalName() + "$ReservedNameObjectInterface1 {",
- " public java.lang.Object reservedMethod1();",
- "}",
- "-keep interface " + CLASS.getCanonicalName() + "$ReservedNameIntegerInterface2 {",
- " public java.lang.Integer reservedMethod2();",
- "}");
- return pgConfig;
- }
}
diff --git a/src/test/java/com/android/tools/r8/naming/adaptclassstrings/AdaptClassStringContextClassTest.java b/src/test/java/com/android/tools/r8/naming/adaptclassstrings/AdaptClassStringContextClassTest.java
index 4add73d..b2471aa 100644
--- a/src/test/java/com/android/tools/r8/naming/adaptclassstrings/AdaptClassStringContextClassTest.java
+++ b/src/test/java/com/android/tools/r8/naming/adaptclassstrings/AdaptClassStringContextClassTest.java
@@ -50,11 +50,7 @@
.apply(this::setUpTest)
.run(parameters.getRuntime(), Main.class)
.assertSuccessWithOutputLines(
- "com.android.tools.r8.naming.adaptclassstrings.a",
- // PG 5 replaces in both contexts despite the filter.
- proguardVersion == ProguardVersion.V5_2_1
- ? "com.android.tools.r8.naming.adaptclassstrings.a"
- : typeName(Foo.class))
+ "com.android.tools.r8.naming.adaptclassstrings.a", typeName(Foo.class))
.inspect(inspector -> assertThat(inspector.clazz(Foo.class), isPresentAndRenamed()));
}
diff --git a/src/test/java/com/android/tools/r8/naming/b123068484/FieldRenamingTest.java b/src/test/java/com/android/tools/r8/naming/b123068484/FieldRenamingTest.java
index dae9881..65176e9 100644
--- a/src/test/java/com/android/tools/r8/naming/b123068484/FieldRenamingTest.java
+++ b/src/test/java/com/android/tools/r8/naming/b123068484/FieldRenamingTest.java
@@ -59,7 +59,7 @@
parameters.assumeCfRuntime();
Path inJar = temp.newFile("input.jar").toPath().toAbsolutePath();
writeClassFilesToJar(inJar, CLASSES);
- testForProguard(ProguardVersion.V6_0_1)
+ testForProguard(ProguardVersion.V7_0_0)
.addProgramFiles(inJar)
.addKeepMainRule(MAIN)
.run(parameters.getRuntime(), MAIN)
diff --git a/src/test/java/com/android/tools/r8/naming/b72391662/B72391662.java b/src/test/java/com/android/tools/r8/naming/b72391662/B72391662.java
index 8db8492..27debc9 100644
--- a/src/test/java/com/android/tools/r8/naming/b72391662/B72391662.java
+++ b/src/test/java/com/android/tools/r8/naming/b72391662/B72391662.java
@@ -58,7 +58,6 @@
new Shrinker[] {
Shrinker.R8,
Shrinker.R8_COMPAT,
- Shrinker.PROGUARD6_THEN_D8,
Shrinker.R8_CF,
Shrinker.R8_COMPAT_CF
}) {
@@ -72,9 +71,6 @@
case R8_COMPAT:
repackagePrefix = "rc";
break;
- case PROGUARD6_THEN_D8:
- repackagePrefix = "pg";
- break;
case R8_CF:
repackagePrefix = "r8cf";
break;
@@ -156,12 +152,7 @@
staticMethod = testClass.uniqueMethodWithOriginalName("staticMethod");
assertThat(staticMethod, isPresent());
assertEquals(minify, staticMethod.isRenamed());
- boolean publicizeCondition =
- isForceAccessModifyingPackagePrivateAndProtectedMethods()
- || (shrinker.isProguard()
- && minify
- && repackagePrefix != null
- && allowAccessModification);
+ boolean publicizeCondition = isForceAccessModifyingPackagePrivateAndProtectedMethods();
assertEquals(publicizeCondition, staticMethod.getMethod().isPublic());
}
@@ -220,12 +211,7 @@
staticMethod = testClass.uniqueMethodWithOriginalName("staticMethod");
assertThat(staticMethod, isPresent());
assertEquals(minify, staticMethod.isRenamed());
- boolean publicizeCondition =
- isForceAccessModifyingPackagePrivateAndProtectedMethods()
- || (shrinker.isProguard()
- && minify
- && repackagePrefix != null
- && allowAccessModification);
+ boolean publicizeCondition = isForceAccessModifyingPackagePrivateAndProtectedMethods();
assertEquals(publicizeCondition, staticMethod.getMethod().isPublic());
}
@@ -287,11 +273,7 @@
boolean publicizeCondition =
(shrinker.isCompatR8() && allowAccessModification)
|| (shrinker.isFullModeR8()
- && (shrinker.isR8Dex() || allowAccessModification || minify))
- || (shrinker.isProguard()
- && minify
- && repackagePrefix != null
- && allowAccessModification);
+ && (shrinker.isR8Dex() || allowAccessModification || minify));
assertEquals(publicizeCondition, staticMethod.getMethod().accessFlags.isPublic());
}
}
diff --git a/src/test/java/com/android/tools/r8/naming/retraceproguard/CatchAllRangeWithNoLineNumberTest.java b/src/test/java/com/android/tools/r8/naming/retraceproguard/CatchAllRangeWithNoLineNumberTest.java
index a0ce500..65b9a20 100644
--- a/src/test/java/com/android/tools/r8/naming/retraceproguard/CatchAllRangeWithNoLineNumberTest.java
+++ b/src/test/java/com/android/tools/r8/naming/retraceproguard/CatchAllRangeWithNoLineNumberTest.java
@@ -57,22 +57,6 @@
"foo.bar.Quux -> c:",
" void foo():33:33 -> a");
- private final String retraced5_2_1 =
- StringUtils.lines(
- "foo.bar.Baz.a(Baz.java)",
- "foo.bar.Qux.a(Qux.java)",
- "foo.bar.Quux.a(Quux.java)",
- "foo.bar.Baz.foo(Baz.java:33)",
- "foo.bar.Baz.a(Baz.java:0)");
-
- private final String retraced6_0_1 =
- StringUtils.lines(
- "foo.bar.Baz.a(Baz.java)",
- "foo.bar.Qux.a(Qux.java)",
- "foo.bar.Quux.a(Quux.java)",
- "foo.bar.Baz.foo(Baz.java:33)",
- "foo.bar.Baz.a(Baz.java:0)");
-
private final String retraced7_0_0 =
StringUtils.lines(
"foo.bar.Baz.foo(Baz.java)",
@@ -114,13 +98,6 @@
}
private String getExpected() {
- switch (proguardVersion) {
- case V5_2_1:
- return retraced5_2_1;
- case V6_0_1:
- return retraced6_0_1;
- default:
- return retraced7_0_0;
- }
+ return retraced7_0_0;
}
}
diff --git a/src/test/java/com/android/tools/r8/proguard/configuration/InheritanceClauseWithDisjunctionTest.java b/src/test/java/com/android/tools/r8/proguard/configuration/InheritanceClauseWithDisjunctionTest.java
index 0a3058a..1f701b4 100644
--- a/src/test/java/com/android/tools/r8/proguard/configuration/InheritanceClauseWithDisjunctionTest.java
+++ b/src/test/java/com/android/tools/r8/proguard/configuration/InheritanceClauseWithDisjunctionTest.java
@@ -5,12 +5,9 @@
package com.android.tools.r8.proguard.configuration;
import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.fail;
-import com.android.tools.r8.CompilationFailedException;
import com.android.tools.r8.TestBase;
import com.android.tools.r8.TestShrinkerBuilder;
import com.android.tools.r8.utils.ThrowingConsumer;
@@ -162,17 +159,10 @@
@Test
public void testImplementsClauseWithProguard() throws Exception {
- try {
- runTest(
- testForProguard(),
- getKeepRulesForImplementsClauseTests(),
- InheritanceClauseWithDisjunctionTest::inspectImplementsClauseTests);
- fail();
- } catch (CompilationFailedException e) {
- // Strangely, nothing matches implements I or J (not even InheritanceClauseWithDisjunction-
- // TestClassIJSub, which implements both I and J!).
- assertThat(e.getMessage(), containsString("The output jar is empty"));
- }
+ runTest(
+ testForProguard(),
+ getKeepRulesForImplementsClauseTests(),
+ InheritanceClauseWithDisjunctionTest::inspectImplementsClauseTests);
}
private static List<String> getKeepRulesForImplementsClauseTests() {
@@ -186,9 +176,7 @@
}
private static void inspectImplementsClauseTests(CodeInspector inspector) {
- // Strangely, nothing matches implements I or J (not even InheritanceClauseWithDisjunctionTest-
- // ClassIJSub, which implements both I and J!).
- assertEquals(0, inspector.allClasses().size());
+ assertEquals(3, inspector.allClasses().size());
}
@Ignore("b/128503974")
diff --git a/src/test/java/com/android/tools/r8/shaking/AsterisksTest.java b/src/test/java/com/android/tools/r8/shaking/AsterisksTest.java
index aa2df28..638fb0d 100644
--- a/src/test/java/com/android/tools/r8/shaking/AsterisksTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/AsterisksTest.java
@@ -63,7 +63,7 @@
@Parameters(name = "shrinker: {0}")
public static Collection<Object> data() {
- return ImmutableList.of(Shrinker.PROGUARD6, Shrinker.R8, Shrinker.R8_CF);
+ return ImmutableList.of(Shrinker.R8, Shrinker.R8_CF);
}
@Test
@@ -79,10 +79,6 @@
FieldSubject fieldSubject = classSubject.field(B111974287.class.getTypeName(), "self");
assertThat(fieldSubject, isPresentAndNotRenamed());
fieldSubject = classSubject.field(B111974287.class.getTypeName() + "[]", "clones");
- // TODO(b/111974287): Proguard6 kept and renamed the field with array type.
- if (shrinker == Shrinker.PROGUARD6) {
- return;
- }
assertThat(fieldSubject, not(isPresent()));
}
diff --git a/src/test/java/com/android/tools/r8/shaking/InstantiatedLambdasTestRunner.java b/src/test/java/com/android/tools/r8/shaking/InstantiatedLambdasTestRunner.java
index ed80366..834649c 100644
--- a/src/test/java/com/android/tools/r8/shaking/InstantiatedLambdasTestRunner.java
+++ b/src/test/java/com/android/tools/r8/shaking/InstantiatedLambdasTestRunner.java
@@ -58,12 +58,6 @@
}
@Test
- public void testProguard() throws Exception {
- assumeTrue(parameters.isCfRuntime());
- buildAndRunProguard("pg.jar", false);
- }
-
- @Test
public void testR8() throws Exception {
testForR8(parameters.getBackend())
.addProgramFiles(inputJar)
@@ -79,30 +73,4 @@
compileResult ->
compileResult.runDex2Oat(parameters.getRuntime()).assertNoVerificationErrors());
}
-
- private void buildAndRunProguard(String outName, boolean aggressive) throws Exception {
- Path pgConfig = writeProguardRules(aggressive);
- Path outPg = temp.getRoot().toPath().resolve(outName);
- ProcessResult proguardResult =
- ToolHelper.runProguard6Raw(
- inputJar, outPg, ToolHelper.getJava8RuntimeJar(), pgConfig, null);
- System.out.println(proguardResult.stdout);
- if (proguardResult.exitCode != 0) {
- System.out.println(proguardResult.stderr);
- }
- assertEquals(0, proguardResult.exitCode);
- ProcessResult runPg = ToolHelper.runJava(outPg, CLASS.getCanonicalName());
- assertEquals(0, runPg.exitCode);
- }
-
- private Path writeProguardRules(boolean aggressive) throws IOException {
- Path pgConfig = temp.getRoot().toPath().resolve("keep.txt");
- FileUtils.writeTextFile(
- pgConfig,
- "-keep public class " + CLASS.getCanonicalName() + " {",
- " public static void main(...);",
- "}",
- aggressive ? "-overloadaggressively" : "# Not overloading aggressively");
- return pgConfig;
- }
}
diff --git a/src/test/java/com/android/tools/r8/shaking/ProguardConfigurationParserTest.java b/src/test/java/com/android/tools/r8/shaking/ProguardConfigurationParserTest.java
index ad664d3..92097d3 100644
--- a/src/test/java/com/android/tools/r8/shaking/ProguardConfigurationParserTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/ProguardConfigurationParserTest.java
@@ -1848,8 +1848,6 @@
ProguardWildcard backReference = it2.next();
assertTrue(backReference.isBackReference());
assertSame(secondWildcardInIf.asPattern(), backReference.asBackReference().reference);
-
- verifyWithProguard6(proguardConfig);
}
@Test
@@ -1873,8 +1871,6 @@
assertEquals(1, if0.subsequentRule.getMemberRules().size());
ProguardMemberRule fieldRule = if0.subsequentRule.getMemberRules().get(0);
assertEquals("<1>.F<2>", fieldRule.getType().toString());
-
- verifyWithProguard6(proguardConfig);
}
@Test
@@ -1898,8 +1894,6 @@
assertEquals(1, if0.subsequentRule.getMemberRules().size());
ProguardMemberRule fieldRule = if0.subsequentRule.getMemberRules().get(0);
assertEquals("fld<2>", fieldRule.getName().toString());
-
- verifyWithProguard6(proguardConfig);
}
@Test
@@ -1923,8 +1917,6 @@
assertEquals(1, if0.subsequentRule.getMemberRules().size());
ProguardMemberRule methodRule = if0.subsequentRule.getMemberRules().get(0);
assertEquals("<1>.M<2>", methodRule.getType().toString());
-
- verifyWithProguard6(proguardConfig);
}
@Test
@@ -1944,8 +1936,6 @@
checkDiagnostics(
handler.errors, proguardConfig, 5, 3, "Unexpected character", "method name");
}
-
- verifyFailWithProguard6(proguardConfig, "Expecting type and name instead of just '<3>'");
}
@Test
@@ -1971,8 +1961,6 @@
assertEquals(1, if0.subsequentRule.getMemberRules().size());
ProguardMemberRule methodRule = if0.subsequentRule.getMemberRules().get(0);
assertEquals("<3>_delegate", methodRule.getName().toString());
-
- verifyWithProguard6(proguardConfig);
}
@Test
@@ -1999,8 +1987,6 @@
ProguardMemberRule methodRule = if0.subsequentRule.getMemberRules().get(0);
assertEquals("<3>", methodRule.getType().toString());
assertEquals("<4>", methodRule.getName().toString());
-
- verifyWithProguard6(proguardConfig);
}
@Test
@@ -2018,7 +2004,6 @@
checkDiagnostics(handler.errors, proguardConfig, 2, 13,
"Use of generics not allowed for java type");
}
- verifyFailWithProguard6(proguardConfig, "Use of generics not allowed for java type");
}
@Test
@@ -2036,7 +2021,6 @@
checkDiagnostics(handler.errors, proguardConfig, 2, 13,
"Use of generics not allowed for java type");
}
- verifyFailWithProguard6(proguardConfig, "Use of generics not allowed for java type");
}
@Test
@@ -2051,8 +2035,6 @@
new ProguardConfigurationParser(new DexItemFactory(), reporter);
parser.parse(proguardConfig);
verifyParserEndsCleanly();
-
- verifyWithProguard6(proguardConfig);
}
@Test
@@ -2067,8 +2049,6 @@
new ProguardConfigurationParser(new DexItemFactory(), reporter);
parser.parse(proguardConfig);
checkDiagnostics(handler.warnings, proguardConfig, 3, 7, "The field name \"id<<*>>\" is");
-
- verifyWithProguard6(proguardConfig);
}
@Test
@@ -2088,7 +2068,6 @@
checkDiagnostics(handler.errors, proguardConfig, 4, 2,
"Wildcard", "<4>", "invalid");
}
- verifyFailWithProguard6(proguardConfig, "Invalid reference to wildcard (4,");
}
@Test
@@ -2106,7 +2085,6 @@
checkDiagnostics(handler.errors, proguardConfig, 2, 13,
"Wildcard", "<0>", "invalid");
}
- verifyFailWithProguard6(proguardConfig, "Invalid reference to wildcard (0,");
}
@Test
@@ -2124,7 +2102,6 @@
checkDiagnostics(handler.errors, proguardConfig, 3, 1,
"Wildcard", "<4>", "invalid");
}
- verifyFailWithProguard6(proguardConfig, "Invalid reference to wildcard (4,");
}
@Test
@@ -2142,7 +2119,6 @@
checkDiagnostics(handler.errors, proguardConfig, 3, 1,
"Wildcard", "<2>", "invalid");
}
- verifyFailWithProguard6(proguardConfig, "Invalid reference to wildcard (2,");
}
@Test
@@ -2164,7 +2140,6 @@
checkDiagnostics(handler.errors, proguardConfig, 6, 2,
"Wildcard", "<3>", "invalid");
}
- verifyFailWithProguard6(proguardConfig, "Invalid reference to wildcard (3,");
}
@Test
@@ -2184,8 +2159,6 @@
checkDiagnostics(handler.errors, proguardConfig, 5, 1,
"Wildcard", "<3>", "invalid");
}
- verifyFailWithProguard6(
- proguardConfig, "Use of generics not allowed for java type at '<1>.<3><2>'");
}
@Test
@@ -2203,7 +2176,6 @@
checkDiagnostics(handler.errors, proguardConfig, 1, 1,
"Expecting", "'-keep'", "after", "'-if'");
}
- verifyFailWithProguard6(proguardConfig, "Expecting '-keep' option after '-if' option");
}
@Test
@@ -2220,7 +2192,6 @@
checkDiagnostics(handler.errors, proguardConfig, 1, 1,
"Expecting", "'-keep'", "after", "'-if'");
}
- verifyFailWithProguard6(proguardConfig, "Expecting '-keep' option after '-if' option");
}
@Test
@@ -2358,7 +2329,6 @@
new ProguardConfigurationParser(new DexItemFactory(), reporter);
parser.parse(proguardConfig);
checkDiagnostics(handler.warnings, proguardConfig, 2, 5, "The field name \"<fields>\" is");
- verifyWithProguard(proguardConfig);
}
@Test
@@ -2375,8 +2345,6 @@
assertEquals(1, config.getRules().size());
ProguardKeepRule rule = (ProguardKeepRule) config.getRules().get(0);
assertEquals(ProguardClassType.ANNOTATION_INTERFACE, rule.getClassType());
-
- verifyWithProguard(proguardConfig);
}
@Test
@@ -2395,8 +2363,6 @@
checkDiagnostics(handler.warnings, 1, proguardConfig, 2, 11, "The field name \"methods>\" is");
checkDiagnostics(handler.warnings, 2, proguardConfig, 3, 3, "The type \"<public\" is");
checkDiagnostics(handler.warnings, 3, proguardConfig, 3, 11, "The field name \"fields>\" is");
-
- verifyWithProguard(proguardConfig);
}
private void checkRulesSourceSnippet(List<String> sourceRules) {
@@ -2739,67 +2705,6 @@
assertEquals(0, handler.errors.size());
}
- private void verifyWithProguard(Path proguardConfig) throws Exception {
- if (isRunProguard()) {
- // Add a keep rule for the test class as Proguard will fail if the resulting output jar is
- // empty
- Class classToKeepForTest = EmptyMainClassForProguardTests.class;
- Path additionalProguardConfig = writeTextToTempFile(
- "-keep class " + classToKeepForTest.getCanonicalName() + " {",
- " public static void main(java.lang.String[]);",
- "}"
- );
- Path proguardedJar =
- File.createTempFile("proguarded", FileUtils.JAR_EXTENSION, temp.getRoot()).toPath();
- ProcessResult result = ToolHelper.runProguardRaw(
- jarTestClasses(ImmutableList.of(classToKeepForTest)),
- proguardedJar,
- ImmutableList.of(proguardConfig, additionalProguardConfig),
- null);
- assertEquals(0, result.exitCode);
- CodeInspector proguardInspector = new CodeInspector(readJar(proguardedJar));
- assertEquals(1, proguardInspector.allClasses().size());
- }
- }
-
- private void verifyWithProguard6(Path proguardConfig) throws Exception {
- if (isRunProguard()) {
- // Add a keep rule for the test class as Proguard will fail if the resulting output jar is
- // empty
- Class classToKeepForTest = EmptyMainClassForProguardTests.class;
- Path additionalProguardConfig = writeTextToTempFile(
- "-keep class " + classToKeepForTest.getCanonicalName() + " {",
- " public static void main(java.lang.String[]);",
- "}"
- );
- Path proguardedJar =
- File.createTempFile("proguarded", FileUtils.JAR_EXTENSION, temp.getRoot()).toPath();
- ProcessResult result = ToolHelper.runProguard6Raw(
- jarTestClasses(ImmutableList.of(classToKeepForTest)),
- proguardedJar,
- ImmutableList.of(proguardConfig, additionalProguardConfig),
- null);
- assertEquals(0, result.exitCode);
- CodeInspector proguardInspector = new CodeInspector(readJar(proguardedJar));
- assertEquals(1, proguardInspector.allClasses().size());
- }
- }
-
- private void verifyFailWithProguard6(Path proguardConfig, String expectedMessage)
- throws Exception{
- if (isRunProguard()) {
- // No need for a keep rule for this class, as we are expecting Proguard to fail with the
- // specified message.
- Class classForTest = EmptyMainClassForProguardTests.class;
- Path proguardedJar =
- File.createTempFile("proguarded", FileUtils.JAR_EXTENSION, temp.getRoot()).toPath();
- ProcessResult result = ToolHelper.runProguard6Raw(
- jarTestClasses(ImmutableList.of(classForTest)), proguardedJar, proguardConfig, null);
- assertNotEquals(0, result.exitCode);
- assertThat(result.stderr, containsString(expectedMessage));
- }
- }
-
@Test
public void b124181032() {
// Test spaces and quotes in class name list.
@@ -2932,8 +2837,6 @@
|| initName.contains("void")) {
continue;
}
- verifyFailWithProguard6(
- proguardConfig, "Expecting type and name instead of just '" + initName + "'");
}
}
diff --git a/src/test/java/com/android/tools/r8/shaking/allowshrinking/Shrinker.java b/src/test/java/com/android/tools/r8/shaking/allowshrinking/Shrinker.java
index 112fd05..977e64b 100644
--- a/src/test/java/com/android/tools/r8/shaking/allowshrinking/Shrinker.java
+++ b/src/test/java/com/android/tools/r8/shaking/allowshrinking/Shrinker.java
@@ -9,9 +9,6 @@
public static final Shrinker R8 = new Shrinker(null);
public static final Shrinker PG = new Shrinker(ProguardVersion.getLatest());
- public static final Shrinker PG5 = new Shrinker(ProguardVersion.V5_2_1);
- public static final Shrinker PG6 = new Shrinker(ProguardVersion.V6_0_1);
- public static final Shrinker PG7 = new Shrinker(ProguardVersion.V7_0_0);
private final ProguardVersion proguardVersion;
diff --git a/src/test/java/com/android/tools/r8/shaking/constructor/InitMatchingTest.java b/src/test/java/com/android/tools/r8/shaking/constructor/InitMatchingTest.java
index 1590adf..17e8795 100644
--- a/src/test/java/com/android/tools/r8/shaking/constructor/InitMatchingTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/constructor/InitMatchingTest.java
@@ -12,7 +12,6 @@
import com.android.tools.r8.CompilationFailedException;
import com.android.tools.r8.ProguardTestCompileResult;
-import com.android.tools.r8.ProguardVersion;
import com.android.tools.r8.R8TestCompileResult;
import com.android.tools.r8.TestBase;
import com.android.tools.r8.TestParameters;
@@ -89,7 +88,7 @@
ProguardTestCompileResult result;
try {
result =
- testForProguard(ProguardVersion.V6_0_1)
+ testForProguard()
.addProgramClasses(InitMatchingTestClass.class)
.addKeepRules(createKeepRule())
.compile();
diff --git a/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ForceProguardCompatibilityTest.java b/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ForceProguardCompatibilityTest.java
index f41bf57..380a49f 100644
--- a/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ForceProguardCompatibilityTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ForceProguardCompatibilityTest.java
@@ -31,7 +31,6 @@
import com.android.tools.r8.shaking.forceproguardcompatibility.keepattributes.TestKeepAttributes;
import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.BooleanUtils;
-import com.android.tools.r8.utils.FileUtils;
import com.android.tools.r8.utils.codeinspector.ClassSubject;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.android.tools.r8.utils.codeinspector.FieldSubject;
@@ -39,8 +38,6 @@
import com.android.tools.r8.utils.graphinspector.GraphInspector;
import com.android.tools.r8.utils.graphinspector.GraphInspector.QueryNode;
import com.google.common.collect.ImmutableList;
-import java.io.File;
-import java.nio.file.Path;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Consumer;
@@ -178,15 +175,6 @@
initNode.assertAbsent();
}
}
-
- if (isRunProguard()) {
- Path proguardedJar = File.createTempFile("proguarded", ".jar", temp.getRoot()).toPath();
- Path proguardConfigFile = File.createTempFile("proguard", ".config", temp.getRoot()).toPath();
- Path proguardMapFile = File.createTempFile("proguard", ".map", temp.getRoot()).toPath();
- FileUtils.writeTextFile(proguardConfigFile, proguardConfig);
- ToolHelper.runProguard(jarTestClasses(testClass),
- proguardedJar, proguardConfigFile, proguardMapFile);
- }
}
@Test
@@ -218,18 +206,6 @@
if (clazz.isPresent()) {
assertEquals(forceProguardCompatibility && containsCheckCast, !clazz.isAbstract());
}
-
- if (isRunProguard()) {
- Path proguardedJar = File.createTempFile("proguarded", ".jar", temp.getRoot()).toPath();
- Path proguardConfigFile = File.createTempFile("proguard", ".config", temp.getRoot()).toPath();
- FileUtils.writeTextFile(proguardConfigFile, proguardConfig);
- ToolHelper.runProguard(jarTestClasses(ImmutableList.of(mainClass, instantiatedClass)),
- proguardedJar, proguardConfigFile, null);
- CodeInspector proguardInspector = new CodeInspector(readJar(proguardedJar));
- assertTrue(proguardInspector.clazz(mainClass).isPresent());
- assertEquals(
- containsCheckCast, proguardInspector.clazz(instantiatedClass).isPresent());
- }
}
@Test
@@ -272,23 +248,6 @@
assertTrue(subject.isPresent());
assertEquals(allowObfuscation, subject.isRenamed());
});
-
- if (isRunProguard()) {
- Path proguardedJar = File.createTempFile("proguarded", ".jar", temp.getRoot()).toPath();
- Path proguardConfigFile = File.createTempFile("proguard", ".config", temp.getRoot()).toPath();
- Path proguardMapFile = File.createTempFile("proguard", ".map", temp.getRoot()).toPath();
- FileUtils.writeTextFile(proguardConfigFile, proguardConfig);
- ToolHelper.runProguard(jarTestClasses(
- ImmutableList.of(mainClass, forNameClass1, forNameClass2)),
- proguardedJar, proguardConfigFile, proguardMapFile);
- CodeInspector proguardedInspector = new CodeInspector(readJar(proguardedJar), proguardMapFile);
- assertEquals(3, proguardedInspector.allClasses().size());
- assertTrue(proguardedInspector.clazz(mainClass).isPresent());
- for (Class<?> clazz : ImmutableList.of(forNameClass1, forNameClass2)) {
- assertTrue(proguardedInspector.clazz(clazz).isPresent());
- assertEquals(allowObfuscation, proguardedInspector.clazz(clazz).isRenamed());
- }
- }
}
@Test
@@ -332,28 +291,6 @@
classSubject.method("java.lang.String", "bar", ImmutableList.of("java.lang.String"));
assertTrue(bar.isPresent());
assertEquals(allowObfuscation, bar.isRenamed());
-
- if (isRunProguard()) {
- Path proguardedJar = File.createTempFile("proguarded", ".jar", temp.getRoot()).toPath();
- Path proguardConfigFile = File.createTempFile("proguard", ".config", temp.getRoot()).toPath();
- Path proguardMapFile = File.createTempFile("proguard", ".map", temp.getRoot()).toPath();
- FileUtils.writeTextFile(proguardConfigFile, proguardConfig);
- ToolHelper.runProguard(jarTestClasses(
- ImmutableList.of(mainClass, withMemberClass)),
- proguardedJar, proguardConfigFile, proguardMapFile);
- CodeInspector proguardedInspector = new CodeInspector(readJar(proguardedJar), proguardMapFile);
- assertEquals(2, proguardedInspector.allClasses().size());
- assertTrue(proguardedInspector.clazz(mainClass).isPresent());
- classSubject = proguardedInspector.clazz(withMemberClass);
- assertTrue(classSubject.isPresent());
- assertEquals(allowObfuscation, classSubject.isRenamed());
- foo = classSubject.field("java.lang.String", "foo");
- assertTrue(foo.isPresent());
- assertEquals(allowObfuscation, foo.isRenamed());
- bar = classSubject.method("java.lang.String", "bar", ImmutableList.of("java.lang.String"));
- assertTrue(bar.isPresent());
- assertEquals(allowObfuscation, bar.isRenamed());
- }
}
@Test
@@ -399,31 +336,6 @@
f = classSubject.field("java.lang.Object", "objField");
assertTrue(f.isPresent());
assertEquals(allowObfuscation, f.isRenamed());
-
- if (isRunProguard()) {
- Path proguardedJar = File.createTempFile("proguarded", ".jar", temp.getRoot()).toPath();
- Path proguardConfigFile = File.createTempFile("proguard", ".config", temp.getRoot()).toPath();
- Path proguardMapFile = File.createTempFile("proguard", ".map", temp.getRoot()).toPath();
- FileUtils.writeTextFile(proguardConfigFile, proguardConfig);
- ToolHelper.runProguard(jarTestClasses(
- ImmutableList.of(mainClass, withVolatileFields)),
- proguardedJar, proguardConfigFile, proguardMapFile);
- CodeInspector proguardedInspector = new CodeInspector(readJar(proguardedJar), proguardMapFile);
- assertEquals(2, proguardedInspector.allClasses().size());
- assertTrue(proguardedInspector.clazz(mainClass).isPresent());
- classSubject = proguardedInspector.clazz(withVolatileFields);
- assertTrue(classSubject.isPresent());
- assertEquals(allowObfuscation, classSubject.isRenamed());
- f = classSubject.field("int", "intField");
- assertTrue(f.isPresent());
- assertEquals(allowObfuscation, f.isRenamed());
- f = classSubject.field("long", "longField");
- assertTrue(f.isPresent());
- assertEquals(allowObfuscation, f.isRenamed());
- f = classSubject.field("java.lang.Object", "objField");
- assertTrue(f.isPresent());
- assertEquals(allowObfuscation, f.isRenamed());
- }
}
@Test
diff --git a/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ProguardCompatibilityTestBase.java b/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ProguardCompatibilityTestBase.java
index 820cc29..47a465f 100644
--- a/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ProguardCompatibilityTestBase.java
+++ b/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ProguardCompatibilityTestBase.java
@@ -6,21 +6,16 @@
import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
import static org.hamcrest.CoreMatchers.not;
import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.Assert.fail;
import com.android.tools.r8.ClassFileConsumer;
import com.android.tools.r8.CompatProguardCommandBuilder;
-import com.android.tools.r8.DataResource;
import com.android.tools.r8.DexIndexedConsumer;
import com.android.tools.r8.R8Command;
import com.android.tools.r8.StringConsumer;
import com.android.tools.r8.TestBase;
import com.android.tools.r8.ToolHelper;
-import com.android.tools.r8.ToolHelper.ProcessResult;
import com.android.tools.r8.origin.Origin;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.FileUtils;
import com.android.tools.r8.utils.InternalOptions;
import com.android.tools.r8.utils.codeinspector.ClassSubject;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
@@ -35,9 +30,6 @@
protected Path proguardMap;
public enum Shrinker {
- PROGUARD5,
- PROGUARD6,
- PROGUARD6_THEN_D8,
R8_COMPAT,
R8_COMPAT_CF,
R8,
@@ -58,26 +50,17 @@
return this == R8_COMPAT || this == R8;
}
- public boolean isProguard() {
- return this == PROGUARD5 || this == PROGUARD6 || this == PROGUARD6_THEN_D8;
- }
-
public boolean isFullModeR8() {
return this == R8
|| this == R8_CF;
}
public boolean generatesDex() {
- return this == PROGUARD6_THEN_D8
- || this == R8_COMPAT
- || this == R8;
+ return this == R8_COMPAT || this == R8;
}
public boolean generatesCf() {
- return this == PROGUARD5
- || this == PROGUARD6
- || this == R8_COMPAT_CF
- || this == R8_CF;
+ return this == R8_COMPAT_CF || this == R8_CF;
}
public Backend toBackend() {
@@ -114,12 +97,6 @@
throws Exception {
proguardMap = File.createTempFile("proguard", ".map", temp.getRoot()).toPath();
switch (mode) {
- case PROGUARD5:
- return runProguard5(programClasses, proguardConfig, proguardMap);
- case PROGUARD6:
- return runProguard6(programClasses, proguardConfig, proguardMap);
- case PROGUARD6_THEN_D8:
- return runProguard6AndD8(programClasses, proguardConfig, proguardMap, configure);
case R8_COMPAT:
return runR8Compat(programClasses, proguardConfig, proguardMap, configure, Backend.DEX);
case R8_COMPAT_CF:
@@ -154,12 +131,6 @@
Consumer<InternalOptions> configure)
throws Exception {
switch (mode) {
- case PROGUARD5:
- return inspectProguard5Result(programClasses, proguardConfig);
- case PROGUARD6:
- return inspectProguard6Result(programClasses, proguardConfig);
- case PROGUARD6_THEN_D8:
- return inspectProguard6AndD8Result(programClasses, proguardConfig, configure);
case R8_COMPAT:
return inspectR8CompatResult(programClasses, proguardConfig, configure, Backend.DEX);
case R8_COMPAT_CF:
@@ -236,130 +207,6 @@
return new CodeInspector(runR8Compat(programClasses, proguardConfig, null, configure, backend));
}
- protected AndroidApp runProguard5(
- List<Class<?>> programClasses, String proguardConfig, Path proguardMap) throws Exception {
- Path proguardedJar =
- File.createTempFile("proguarded", FileUtils.JAR_EXTENSION, temp.getRoot()).toPath();
- Path proguardConfigFile = File.createTempFile("proguard", ".config", temp.getRoot()).toPath();
- FileUtils.writeTextFile(proguardConfigFile, proguardConfig);
- ProcessResult result = ToolHelper.runProguardRaw(
- jarTestClasses(programClasses),
- proguardedJar,
- ToolHelper.getAndroidJar(AndroidApiLevel.N),
- proguardConfigFile,
- proguardMap);
- if (result.exitCode != 0) {
- fail("Proguard failed, exit code " + result.exitCode + ", stderr:\n" + result.stderr);
- }
- return readJar(proguardedJar);
- }
-
- protected CodeInspector inspectProguard5Result(
- List<Class<?>> programClasses, String proguardConfig) throws Exception {
- proguardMap = File.createTempFile("proguard", ".map", temp.getRoot()).toPath();
- return new CodeInspector(
- runProguard5(programClasses, proguardConfig, proguardMap), proguardMap);
- }
-
- protected ProcessResult runProguard6Raw(
- Path destination,
- List<Class<?>> programClasses,
- String proguardConfig,
- Path proguardMap,
- List<DataResource> dataResources)
- throws Exception {
- return runProguard6Raw(
- destination,
- jarTestClasses(programClasses, dataResources),
- proguardConfig,
- proguardMap,
- null);
- }
-
- protected ProcessResult runProguard6Raw(
- Path destination, Path jar, String proguardConfig, Path proguardMap) throws Exception {
- return runProguard6Raw(destination, jar, proguardConfig, proguardMap, null);
- }
-
- protected ProcessResult runProguard6Raw(
- Path destination,
- Path jar,
- String proguardConfig,
- Path proguardMap,
- Consumer<ProcessResult> processResultConsumer)
- throws Exception {
- Path proguardConfigFile = File.createTempFile("proguard", ".config", temp.getRoot()).toPath();
- FileUtils.writeTextFile(proguardConfigFile, proguardConfig);
- ProcessResult result =
- ToolHelper.runProguard6Raw(
- jar,
- destination,
- ToolHelper.getAndroidJar(AndroidApiLevel.N),
- proguardConfigFile,
- proguardMap);
- if (result.exitCode != 0) {
- fail("Proguard failed, exit code " + result.exitCode + ", stderr:\n" + result.stderr);
- }
- if (processResultConsumer != null) {
- processResultConsumer.accept(result);
- }
- return result;
- }
-
- protected AndroidApp runProguard6(
- List<Class<?>> programClasses, String proguardConfig, Path proguardMap) throws Exception {
- return runProguard6(programClasses, proguardConfig, proguardMap, null);
- }
-
- protected AndroidApp runProguard6(
- List<Class<?>> programClasses,
- String proguardConfig,
- Path proguardMap,
- List<DataResource> dataResources)
- throws Exception {
- Path proguardedJar =
- File.createTempFile("proguarded", FileUtils.JAR_EXTENSION, temp.getRoot()).toPath();
- runProguard6Raw(proguardedJar, programClasses, proguardConfig, proguardMap, dataResources);
- return readJar(proguardedJar);
- }
-
- protected CodeInspector inspectProguard6Result(
- List<Class<?>> programClasses, String proguardConfig) throws Exception {
- proguardMap = File.createTempFile("proguard", ".map", temp.getRoot()).toPath();
- return new CodeInspector(
- runProguard6(programClasses, proguardConfig, proguardMap), proguardMap);
- }
-
- protected AndroidApp runProguard6AndD8(
- List<Class<?>> programClasses,
- String proguardConfig,
- Path proguardMap,
- Consumer<InternalOptions> configure)
- throws Exception {
- Path proguardedJar =
- File.createTempFile("proguarded", FileUtils.JAR_EXTENSION, temp.getRoot()).toPath();
- Path proguardConfigFile = File.createTempFile("proguard", ".config", temp.getRoot()).toPath();
- FileUtils.writeTextFile(proguardConfigFile, proguardConfig);
- ProcessResult result = ToolHelper.runProguard6Raw(
- jarTestClasses(programClasses),
- proguardedJar,
- ToolHelper.getAndroidJar(AndroidApiLevel.N),
- proguardConfigFile,
- proguardMap);
- if (result.exitCode != 0) {
- fail("Proguard failed, exit code " + result.exitCode + ", stderr:\n" + result.stderr);
- }
- return ToolHelper.runD8(readJar(proguardedJar), configure);
- }
-
- protected CodeInspector inspectProguard6AndD8Result(
- List<Class<?>> programClasses, String proguardConfig, Consumer<InternalOptions> configure)
- throws Exception {
- proguardMap = File.createTempFile("proguard", ".map", temp.getRoot()).toPath();
- return new CodeInspector(
- runProguard6AndD8(programClasses, proguardConfig, proguardMap, configure), proguardMap);
- }
-
protected void verifyClassesPresent(
CodeInspector codeInspector, Class<?>... classesOfInterest) {
for (Class klass : classesOfInterest) {
diff --git a/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/defaultctor/ExternalizableTest.java b/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/defaultctor/ExternalizableTest.java
index 468ae54..477c205 100644
--- a/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/defaultctor/ExternalizableTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/defaultctor/ExternalizableTest.java
@@ -263,7 +263,6 @@
@Parameterized.Parameters(name = "Shrinker: {0}")
public static Collection<Object> data() {
return ImmutableList.of(
- Shrinker.PROGUARD6_THEN_D8, Shrinker.PROGUARD6,
Shrinker.R8_COMPAT, Shrinker.R8_COMPAT_CF,
Shrinker.R8, Shrinker.R8_CF);
}
diff --git a/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/defaultctor/ImplicitlyKeptDefaultConstructorTest.java b/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/defaultctor/ImplicitlyKeptDefaultConstructorTest.java
index 1d62f64..114796c 100644
--- a/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/defaultctor/ImplicitlyKeptDefaultConstructorTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/defaultctor/ImplicitlyKeptDefaultConstructorTest.java
@@ -148,28 +148,11 @@
Class<?> mainClass,
List<Class<?>> programClasses,
String proguardConfiguration,
- TriConsumer<Class, List<Class<?>>, CodeInspector> r8Checker,
- TriConsumer<Class, List<Class<?>>, CodeInspector> proguardChecker)
+ TriConsumer<Class, List<Class<?>>, CodeInspector> r8Checker)
throws Exception {
CodeInspector inspector =
inspectR8CompatResult(programClasses, proguardConfiguration, null, parameters.getBackend());
r8Checker.accept(mainClass, programClasses, inspector);
-
- if (isRunProguard()) {
- inspector = inspectProguard6Result(programClasses, proguardConfiguration);
- proguardChecker.accept(mainClass, programClasses, inspector);
- inspector = inspectProguard6AndD8Result(programClasses, proguardConfiguration, null);
- proguardChecker.accept(mainClass, programClasses, inspector);
- }
- }
-
- private void runTest(
- Class<?> mainClass,
- List<Class<?>> programClasses,
- String proguardConfiguration,
- TriConsumer<Class, List<Class<?>>, CodeInspector> checker)
- throws Exception {
- runTest(mainClass, programClasses, proguardConfiguration, checker, checker);
}
@Test
@@ -293,7 +276,6 @@
mainClass,
ImmutableList.of(mainClass, StaticFieldNotInitialized.class),
keepMainProguardConfiguration(mainClass),
- this::checkOnlyMainPresent,
this::checkOnlyMainPresent);
}
diff --git a/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnAccessModifierTest.java b/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnAccessModifierTest.java
index 7af5d20..1820202 100644
--- a/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnAccessModifierTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnAccessModifierTest.java
@@ -9,7 +9,6 @@
import static org.hamcrest.CoreMatchers.not;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.Assert.assertTrue;
-import static org.junit.Assume.assumeFalse;
import com.android.tools.r8.TestParameters;
import com.android.tools.r8.TestShrinkerBuilder;
@@ -42,8 +41,7 @@
@Parameters(name = "{0}, shrinker: {1}")
public static Collection<Object[]> data() {
return buildParameters(
- getTestParameters().withAllRuntimesAndApiLevels().build(),
- ImmutableList.of(Shrinker.PROGUARD6, Shrinker.R8));
+ getTestParameters().withAllRuntimesAndApiLevels().build(), ImmutableList.of(Shrinker.R8));
}
private TestShrinkerBuilder<?, ?, ?, ?, ?> getTestBuilder() {
@@ -52,9 +50,6 @@
private TestShrinkerBuilder<?, ?, ?, ?, ?> getTestBuilder(boolean allowDiagnosticInfoMessages) {
switch (shrinker) {
- case PROGUARD6:
- assertTrue(parameters.isCfRuntime());
- return testForProguard().addInliningAnnotations().addNeverClassInliningAnnotations();
case R8:
return testForR8(parameters.getBackend())
.allowUnusedProguardConfigurationRules(allowDiagnosticInfoMessages)
@@ -67,8 +62,6 @@
@Test
public void ifOnPublic_noPublicClassForIfRule() throws Exception {
- assumeFalse(shrinker.isProguard() && parameters.isDexRuntime());
-
getTestBuilder(shrinker.isR8())
.addProgramClasses(CLASSES)
.addKeepRules(
@@ -101,8 +94,6 @@
@Test
public void ifOnNonPublic_keepOnPublic() throws Exception {
- assumeFalse(shrinker.isProguard() && parameters.isDexRuntime());
-
getTestBuilder()
.addProgramClasses(CLASSES)
.addKeepRules(
@@ -141,8 +132,6 @@
@Test
public void ifOnNonPublic_keepOnNonPublic() throws Exception {
- assumeFalse(shrinker.isProguard() && parameters.isDexRuntime());
-
getTestBuilder()
.addProgramClasses(CLASSES)
.addKeepRules(
@@ -186,8 +175,6 @@
@Test
public void ifOnPublic_keepOnPublic() throws Exception {
- assumeFalse(shrinker.isProguard() && parameters.isDexRuntime());
-
getTestBuilder()
.addProgramClasses(CLASSES)
.addKeepRules(
@@ -225,8 +212,6 @@
@Test
public void ifOnPublic_keepOnNonPublic() throws Exception {
- assumeFalse(shrinker.isProguard() && parameters.isDexRuntime());
-
getTestBuilder()
.addProgramClasses(CLASSES)
.addKeepRules(
diff --git a/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnAnnotationTest.java b/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnAnnotationTest.java
index dfe70d5..dae9af6 100644
--- a/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnAnnotationTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnAnnotationTest.java
@@ -29,7 +29,7 @@
@Parameters(name = "shrinker: {0}")
public static Collection<Object> data() {
- return ImmutableList.of(Shrinker.PROGUARD6, Shrinker.R8, Shrinker.R8_CF);
+ return ImmutableList.of(Shrinker.R8, Shrinker.R8_CF);
}
@Test
diff --git a/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnClassTest.java b/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnClassTest.java
index 39ec9a9..a646cc9 100644
--- a/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnClassTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnClassTest.java
@@ -48,8 +48,6 @@
@Parameters(name = "shrinker: {0} precondition: {1}")
public static Collection<Object[]> data() {
return ImmutableList.of(
- new Object[] {Shrinker.PROGUARD6, true},
- new Object[] {Shrinker.PROGUARD6, false},
new Object[] {Shrinker.R8, true},
new Object[] {Shrinker.R8, false},
new Object[] {Shrinker.R8_CF, true},
@@ -78,18 +76,6 @@
programClasses, adaptConfiguration(proguardConfig), configure, backend);
}
- @Override
- protected CodeInspector inspectProguard5Result(
- List<Class<?>> programClasses, String proguardConfig) throws Exception {
- return super.inspectProguard5Result(programClasses, adaptConfiguration(proguardConfig));
- }
-
- @Override
- protected CodeInspector inspectProguard6Result(
- List<Class<?>> programClasses, String proguardConfig) throws Exception {
- return super.inspectProguard6Result(programClasses, adaptConfiguration(proguardConfig));
- }
-
@Test
public void ifThenKeep_withoutNthWildcard() throws Exception {
List<String> config = ImmutableList.of(
@@ -101,10 +87,6 @@
CodeInspector codeInspector = inspectAfterShrinking(shrinker, CLASSES, config);
if (!keepPrecondition) {
- // TODO(b/73708139): Proguard6 kept Dependent (w/o any members), which is not necessary.
- if (shrinker == Shrinker.PROGUARD6) {
- return;
- }
assertEquals(1, codeInspector.allClasses().size());
return;
}
@@ -138,10 +120,6 @@
CodeInspector codeInspector = inspectAfterShrinking(shrinker, CLASSES, config);
if (!keepPrecondition) {
- // TODO(b/73708139): Proguard6 kept Dependent (w/o any members), which is not necessary.
- if (shrinker == Shrinker.PROGUARD6) {
- return;
- }
assertEquals(1, codeInspector.allClasses().size());
return;
}
@@ -214,10 +192,6 @@
CodeInspector codeInspector = inspectAfterShrinking(shrinker, CLASSES, config);
if (!keepPrecondition) {
- // TODO(b/73708139): Proguard6 kept DependentUser (w/o any members), which is not necessary.
- if (shrinker == Shrinker.PROGUARD6) {
- return;
- }
assertEquals(1, codeInspector.allClasses().size());
return;
}
@@ -263,10 +237,6 @@
CodeInspector codeInspector = inspectAfterShrinking(shrinker, CLASSES, config);
if (!keepPrecondition) {
- // TODO(b/73708139): Proguard6 kept DependentUser (w/o any members), which is not necessary.
- if (shrinker == Shrinker.PROGUARD6) {
- return;
- }
assertEquals(1, codeInspector.allClasses().size());
return;
}
diff --git a/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnFieldTest.java b/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnFieldTest.java
index 6665646..afb1807 100644
--- a/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnFieldTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnFieldTest.java
@@ -43,7 +43,7 @@
@Parameters(name = "shrinker: {0}")
public static Collection<Object> data() {
- return ImmutableList.of(Shrinker.PROGUARD6, Shrinker.R8, Shrinker.R8_CF);
+ return ImmutableList.of(Shrinker.R8, Shrinker.R8_CF);
}
private String adaptConfiguration(String proguardConfig) {
@@ -64,12 +64,6 @@
programClasses, adaptConfiguration(proguardConfig), config, backend);
}
- @Override
- protected CodeInspector inspectProguard6Result(
- List<Class<?>> programClasses, String proguardConfig) throws Exception {
- return super.inspectProguard6Result(programClasses, adaptConfiguration(proguardConfig));
- }
-
@Test
public void ifOnField_withoutNthWildcard() throws Exception {
List<String> config = ImmutableList.of(
diff --git a/src/test/java/com/android/tools/r8/shaking/keepclassmembers/KeepClassMembersTest.java b/src/test/java/com/android/tools/r8/shaking/keepclassmembers/KeepClassMembersTest.java
index ba6034d..90f2212 100644
--- a/src/test/java/com/android/tools/r8/shaking/keepclassmembers/KeepClassMembersTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/keepclassmembers/KeepClassMembersTest.java
@@ -39,8 +39,7 @@
CodeInspector inspector,
Class<?> mainClass,
Class<?> staticClass,
- boolean forceProguardCompatibility,
- boolean fromProguard) {
+ boolean forceProguardCompatibility) {
assertTrue(inspector.clazz(mainClass).isPresent());
ClassSubject staticClassSubject = inspector.clazz(staticClass);
assertThat(staticClassSubject, isPresent());
@@ -55,18 +54,11 @@
MethodSubject getIMethod = staticClassSubject.method("int", "getI", ImmutableList.of());
FieldSubject iField = staticClassSubject.field("int", "i");
if (forceProguardCompatibility) {
- if (fromProguard) {
- // Proguard keeps the instance method and it code even though the class does not have a
- // constructor, and therefore cannot be instantiated.
- assertThat(getIMethod, isPresent());
- assertThat(iField, isPresent());
- } else {
- // Force Proguard compatibility keeps the instance method, even though the class does
- // not have a constructor.
- assertThat(getIMethod, not(isAbstract()));
- // As the method is abstract the referenced field is not present.
- assertThat(iField, not(isPresent()));
- }
+ // Force Proguard compatibility keeps the instance method, even though the class does
+ // not have a constructor.
+ assertThat(getIMethod, not(isAbstract()));
+ // As the method is abstract the referenced field is not present.
+ assertThat(iField, not(isPresent()));
} else {
assertThat(getIMethod, not(isPresent()));
assertThat(iField, not(isPresent()));
@@ -77,8 +69,6 @@
private void runTest(Class<?> mainClass, Class<?> staticClass, boolean forceProguardCompatibility)
throws Exception {
- String proguardConfig = String.join("\n", ImmutableList.of(
- ));
CodeInspector inspector;
inspector =
testForR8Compat(parameters.getBackend(), forceProguardCompatibility)
@@ -94,12 +84,7 @@
.setMinApi(parameters)
.compile()
.inspector();
- check(inspector, mainClass, staticClass, forceProguardCompatibility, false);
-
- if (isRunProguard()) {
- inspector = inspectProguard6Result(ImmutableList.of(mainClass, staticClass), proguardConfig);
- check(inspector, mainClass, staticClass, true, true);
- }
+ check(inspector, mainClass, staticClass, forceProguardCompatibility);
}
@Test
diff --git a/src/test/java/com/android/tools/r8/shaking/keepclassmembers/b115867670/B115867670.java b/src/test/java/com/android/tools/r8/shaking/keepclassmembers/b115867670/B115867670.java
index 45c7a00..0ba674b 100644
--- a/src/test/java/com/android/tools/r8/shaking/keepclassmembers/b115867670/B115867670.java
+++ b/src/test/java/com/android/tools/r8/shaking/keepclassmembers/b115867670/B115867670.java
@@ -71,8 +71,7 @@
@Parameters(name = "shrinker: {0}")
public static Collection<Object> data() {
- return ImmutableList.of(
- Shrinker.PROGUARD6, Shrinker.R8_COMPAT, Shrinker.R8_COMPAT_CF, Shrinker.R8, Shrinker.R8_CF);
+ return ImmutableList.of(Shrinker.R8_COMPAT, Shrinker.R8_COMPAT_CF, Shrinker.R8, Shrinker.R8_CF);
}
public B115867670(Shrinker shrinker) {
diff --git a/src/test/testbase/java/com/android/tools/r8/ProguardVersion.java b/src/test/testbase/java/com/android/tools/r8/ProguardVersion.java
index 28f0cf6..5d75149 100644
--- a/src/test/testbase/java/com/android/tools/r8/ProguardVersion.java
+++ b/src/test/testbase/java/com/android/tools/r8/ProguardVersion.java
@@ -10,8 +10,6 @@
import java.nio.file.Paths;
public enum ProguardVersion {
- V5_2_1("5.2.1"),
- V6_0_1("6.0.1"),
V7_0_0("7.0.0"),
V7_3_2("7.3.2"),
V7_4_1("7.4.1");
diff --git a/src/test/testbase/java/com/android/tools/r8/TestBase.java b/src/test/testbase/java/com/android/tools/r8/TestBase.java
index ae4cdc9..b9bb920 100644
--- a/src/test/testbase/java/com/android/tools/r8/TestBase.java
+++ b/src/test/testbase/java/com/android/tools/r8/TestBase.java
@@ -408,7 +408,7 @@
/** @deprecated use {@link #testForProguard(ProguardVersion)} instead. */
@Deprecated
public ProguardTestBuilder testForProguard() {
- return testForProguard(ProguardVersion.V6_0_1);
+ return testForProguard(ProguardVersion.V7_0_0);
}
public ProguardTestBuilder testForProguard(ProguardVersion version) {
diff --git a/src/test/testbase/java/com/android/tools/r8/ToolHelper.java b/src/test/testbase/java/com/android/tools/r8/ToolHelper.java
index 5aae024..654fc9a 100644
--- a/src/test/testbase/java/com/android/tools/r8/ToolHelper.java
+++ b/src/test/testbase/java/com/android/tools/r8/ToolHelper.java
@@ -242,11 +242,6 @@
public static final String JDK_11_TESTS_DIR = OPEN_JDK_DIR + "jdk-11-test/";
public static final String JDK_11_TIME_TESTS_DIR = JDK_11_TESTS_DIR + "java/time/";
- private static final String PROGUARD5_2_1 =
- THIRD_PARTY_DIR + "proguard/proguard5.2.1/bin/proguard";
- private static final String PROGUARD6_0_1 =
- THIRD_PARTY_DIR + "proguard/proguard6.0.1/bin/proguard";
- private static final String PROGUARD = PROGUARD5_2_1;
public static final Path JACOCO_ROOT = Paths.get(THIRD_PARTY_DIR, "jacoco", "0.8.6");
public static final Path JACOCO_AGENT = JACOCO_ROOT.resolve(Paths.get("lib", "jacocoagent.jar"));
public static final Path JACOCO_CLI = JACOCO_ROOT.resolve(Paths.get("lib", "jacococli.jar"));
@@ -1174,20 +1169,6 @@
return ""; //never here
}
- public static String getProguard5Script() {
- if (isWindows()) {
- return PROGUARD + ".bat";
- }
- return PROGUARD + ".sh";
- }
-
- public static String getProguard6Script() {
- if (isWindows()) {
- return PROGUARD6_0_1 + ".bat";
- }
- return PROGUARD6_0_1 + ".sh";
- }
-
public static Backend[] getBackends() {
if (getDexVm() == DexVm.ART_DEFAULT) {
return Backend.values();
@@ -2561,41 +2542,6 @@
return result.stdout;
}
- public static ProcessResult runProguardRaw(
- Path inJar, Path outJar, Path lib, Path config, Path map) throws IOException {
- return runProguardRaw(getProguard5Script(), inJar, outJar, lib, ImmutableList.of(config), map);
- }
-
- public static ProcessResult runProguardRaw(Path inJar, Path outJar, List<Path> config, Path map)
- throws IOException {
- return runProguardRaw(getProguard5Script(), inJar, outJar, config, map);
- }
-
- public static String runProguard(Path inJar, Path outJar, Path config, Path map)
- throws IOException {
- return runProguard(inJar, outJar, ImmutableList.of(config), map);
- }
-
- public static String runProguard(Path inJar, Path outJar, List<Path> config, Path map)
- throws IOException {
- return runProguard(getProguard5Script(), inJar, outJar, config, map);
- }
-
- public static ProcessResult runProguard6Raw(Path inJar, Path outJar, Path config, Path map)
- throws IOException {
- return runProguardRaw(getProguard6Script(), inJar, outJar, ImmutableList.of(config), map);
- }
-
- public static ProcessResult runProguard6Raw(
- Path inJar, Path outJar, List<Path> config, Path map) throws IOException {
- return runProguardRaw(getProguard6Script(), inJar, outJar, config, map);
- }
-
- public static ProcessResult runProguard6Raw(
- Path inJar, Path outJar, Path lib, Path config, Path map) throws IOException {
- return runProguardRaw(getProguard6Script(), inJar, outJar, lib, ImmutableList.of(config), map);
- }
-
public static ProcessResult runRetraceRaw(Path retracePath, Path map, Path stackTrace)
throws IOException {
List<String> command = new ArrayList<>();
diff --git a/third_party/proguard/README.google b/third_party/proguard/README.google
index 4449832..4501b28 100644
--- a/third_party/proguard/README.google
+++ b/third_party/proguard/README.google
@@ -1,11 +1,9 @@
-URL: https://sourceforge.net/projects/proguard/files/proguard/5.2/
-URL: https://sourceforge.net/projects/proguard/files/proguard/6.0/
URL: https://github.com/Guardsquare/proguard/releases/download/v7.0.0/proguard-7.0.0.tar.gz
URL: https://github.com/Guardsquare/proguard/releases/download/v7.3.2/proguard-7.3.2.tar.gz
URL: https://github.com/Guardsquare/proguard/releases/download/v7.4.1/proguard-7.4.1.tar.gz
-Version: 5.2.1, 6.0.1, 7.0.0, 7.3.2, 7.4.1
+Version: 7.0.0, 7.3.2, 7.4.1
License: GPL
-License File: proguard5.2.1/docs/license.html, proguard6.0.1/docs/license.html, proguard-7.0.0/docs/license.md, proguard-7.3.2/LICENSE, proguard-7.4.1/LICENSE
+License File: proguard-7.0.0/docs/license.md, proguard-7.3.2/LICENSE, proguard-7.4.1/LICENSE
Description:
ProGuard Java Optimizer and Obfuscator
diff --git a/third_party/proguard/proguard5.2.1.tar.gz.sha1 b/third_party/proguard/proguard5.2.1.tar.gz.sha1
deleted file mode 100644
index 6a14533..0000000
--- a/third_party/proguard/proguard5.2.1.tar.gz.sha1
+++ /dev/null
@@ -1 +0,0 @@
-aeed6fcb9b2979da03679448d701e9310227aa01
\ No newline at end of file
diff --git a/third_party/proguard/proguard6.0.1.tar.gz.sha1 b/third_party/proguard/proguard6.0.1.tar.gz.sha1
deleted file mode 100644
index e5e8e3c..0000000
--- a/third_party/proguard/proguard6.0.1.tar.gz.sha1
+++ /dev/null
@@ -1 +0,0 @@
-ef075c414299327dae5f96cce539422dc9088946
\ No newline at end of file
diff --git a/tools/proguard.py b/tools/proguard.py
index 312533e..2b45fb0 100755
--- a/tools/proguard.py
+++ b/tools/proguard.py
@@ -15,13 +15,9 @@
# Internal constants, these should not be used outside this script.
# Use the friendly utility methods below.
PG_DIR = os.path.join(utils.THIRD_PARTY, 'proguard')
-DEFAULT = 'pg6'
+DEFAULT = 'pg7'
DEFAULT_ALIAS = 'pg'
VERSIONS = {
- 'pg5':
- os.path.join(PG_DIR, 'proguard5.2.1', 'lib', 'proguard.jar'),
- 'pg6':
- os.path.join(PG_DIR, 'proguard6.0.1', 'lib', 'proguard.jar'),
'pg7':
os.path.join(PG_DIR, 'proguard-7.0.0', 'lib', 'proguard.jar'),
'pg_internal':