Merge "Fix incorrect/flaky settings in lambda-related access relaxation tests."
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 9a9ca34..ec27895 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
@@ -21,8 +21,8 @@
 import com.android.tools.r8.utils.DexInspector.ClassSubject;
 import com.android.tools.r8.utils.DexInspector.MethodSubject;
 import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Iterables;
 import java.util.List;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -46,7 +46,7 @@
         allowAccessModification ? "-allowaccessmodification" : "",
         !minify ? "-dontobfuscate" : "",
         "-keep class " + mainClass.getCanonicalName() + " {",
-        "  public void main(java.lang.String[]);",
+        "  public static void main(java.lang.String[]);",
         "}",
         keep + " class " + TestClass.class.getCanonicalName() + " {",
         "  *;",
@@ -97,7 +97,6 @@
     doTest_keepAll(Shrinker.R8, null, false, false);
   }
 
-  @Ignore("b/92236970")
   @Test
   @IgnoreIfVmOlderThan(Version.V7_0_0)
   public void test_keepAll_R8Compat() throws Exception {
@@ -137,7 +136,7 @@
         allowAccessModification ? "-allowaccessmodification" : "",
         !minify ? "-dontobfuscate" : "",
         "-keep class " + mainClass.getCanonicalName() + " {",
-        "  public void main(java.lang.String[]);",
+        "  public static void main(java.lang.String[]);",
         "}",
         keep + " class " + TestClass.class.getCanonicalName() + " {",
         "  !public <methods>;",
@@ -188,7 +187,6 @@
     doTest_keepNonPublic(Shrinker.R8, null, false, false);
   }
 
-  @Ignore("b/92236970")
   @Test
   @IgnoreIfVmOlderThan(Version.V7_0_0)
   public void test_keepNonPublic_R8Compat() throws Exception {
@@ -222,13 +220,13 @@
       boolean minify) throws Exception {
     Class mainClass = TestMain.class;
     String keep = !minify ? "-keep" : "-keep,allowobfuscation";
-    List<String> config = ImmutableList.of(
+    Iterable<String> config = ImmutableList.of(
         "-printmapping",
         repackagePrefix != null ? "-repackageclasses '" + repackagePrefix + "'" : "",
         allowAccessModification ? "-allowaccessmodification" : "",
         !minify ? "-dontobfuscate" : "",
         "-keep class " + mainClass.getCanonicalName() + " {",
-        "  public void main(java.lang.String[]);",
+        "  public static void main(java.lang.String[]);",
         "}",
         keep + " class " + TestClass.class.getCanonicalName() + " {",
         "  public <methods>;",
@@ -238,6 +236,13 @@
         "}",
         "-dontwarn java.lang.invoke.*"
     );
+    if (isR8(shrinker)) {
+      config = Iterables.concat(config, ImmutableList.of(
+          "-neverinline class " + TestClass.class.getCanonicalName() + " {",
+          "  * staticMethod();",
+          "}"
+      ));
+    }
 
     AndroidApp app = runShrinkerRaw(shrinker, CLASSES, config);
     assertEquals("123451234567\nABC\n", runOnArt(app, mainClass.getCanonicalName()));
@@ -253,15 +258,11 @@
 
     // Test an indirectly referred method.
     staticMethod = testClass.method("java.lang.String", "staticMethod", ImmutableList.of());
-    if (isR8(shrinker)) {
-      // Inlined.
-      assertThat(staticMethod, not(isPresent()));
-    } else {
-      assertThat(staticMethod, isPresent());
-      assertEquals(minify, staticMethod.isRenamed());
-      boolean publicizeCondition = minify && repackagePrefix != null && allowAccessModification;
-      assertEquals(publicizeCondition, staticMethod.getMethod().accessFlags.isPublic());
-    }
+    assertThat(staticMethod, isPresent());
+    assertEquals(minify, staticMethod.isRenamed());
+    boolean publicizeCondition = isR8(shrinker) ? allowAccessModification
+        : minify && repackagePrefix != null && allowAccessModification;
+    assertEquals(publicizeCondition, staticMethod.getMethod().accessFlags.isPublic());
   }
 
   @Test
@@ -277,7 +278,6 @@
     doTest_keepPublic(Shrinker.R8, null, false, false);
   }
 
-  @Ignore("b/92236970")
   @Test
   @IgnoreIfVmOlderThan(Version.V7_0_0)
   public void test_keepPublic_R8Compat() throws Exception {
diff --git a/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ProguardCompatabilityTestBase.java b/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ProguardCompatabilityTestBase.java
index 693f02d..e3bffc6 100644
--- a/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ProguardCompatabilityTestBase.java
+++ b/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ProguardCompatabilityTestBase.java
@@ -44,7 +44,7 @@
   }
 
   protected AndroidApp runShrinkerRaw(
-      Shrinker mode, List<Class> programClasses, List<String> proguadConfigs) throws Exception {
+      Shrinker mode, List<Class> programClasses, Iterable<String> proguadConfigs) throws Exception {
     return runShrinkerRaw(
         mode, programClasses, String.join(System.lineSeparator(), proguadConfigs));
   }
@@ -111,10 +111,11 @@
   protected AndroidApp runR8CompatRaw(
       List<Class> programClasses, String proguardConfig) throws Exception {
     CompatProguardCommandBuilder builder = new CompatProguardCommandBuilder(true);
+    ToolHelper.allowTestProguardOptions(builder);
     builder.addProguardConfiguration(ImmutableList.of(proguardConfig), Origin.unknown());
     programClasses.forEach(
         clazz -> builder.addProgramFiles(ToolHelper.getClassFileForTestClass(clazz)));
-    builder.addLibraryFiles(ToolHelper.getDefaultAndroidJar());
+    builder.addLibraryFiles(ToolHelper.getAndroidJar(ToolHelper.getMinApiLevelForDexVm()));
     builder.setProgramConsumer(DexIndexedConsumer.emptyConsumer());
     return ToolHelper.runR8(builder.build());
   }