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':