Extend keep anno tests to R8 partial
Bug: b/392828287
Change-Id: Ied8e3743b664315950ed236d94780e6f93ec61e8
diff --git a/src/main/java/com/android/tools/r8/R8.java b/src/main/java/com/android/tools/r8/R8.java
index 1359ad8..57d8c43 100644
--- a/src/main/java/com/android/tools/r8/R8.java
+++ b/src/main/java/com/android/tools/r8/R8.java
@@ -298,7 +298,10 @@
timing.begin("Read app");
ApplicationReader applicationReader = new ApplicationReader(inputApp, options, timing);
LazyLoadedDexApplication lazyLoaded = applicationReader.read(executorService);
- keepDeclarations = lazyLoaded.getKeepDeclarations();
+ keepDeclarations =
+ options.partialSubCompilationConfiguration != null
+ ? options.partialSubCompilationConfiguration.asR8().getAndClearKeepDeclarations()
+ : lazyLoaded.getKeepDeclarations();
timing.begin("To direct app");
DirectMappedDexApplication application = lazyLoaded.toDirect();
timing.end();
diff --git a/src/main/java/com/android/tools/r8/R8Partial.java b/src/main/java/com/android/tools/r8/R8Partial.java
index 02c612c..4c34715 100644
--- a/src/main/java/com/android/tools/r8/R8Partial.java
+++ b/src/main/java/com/android/tools/r8/R8Partial.java
@@ -8,6 +8,8 @@
import com.android.tools.r8.errors.Unreachable;
import com.android.tools.r8.features.FeatureSplitConfiguration;
import com.android.tools.r8.graph.DirectMappedDexApplication;
+import com.android.tools.r8.graph.LazyLoadedDexApplication;
+import com.android.tools.r8.keepanno.ast.KeepDeclaration;
import com.android.tools.r8.partial.R8PartialD8Result;
import com.android.tools.r8.partial.R8PartialInput;
import com.android.tools.r8.partial.R8PartialProgramPartioning;
@@ -85,14 +87,17 @@
private R8PartialInput runProcessInputStep(AndroidApp androidApp, ExecutorService executor)
throws IOException {
- DirectMappedDexApplication app =
- new ApplicationReader(androidApp, options, timing).read(executor).toDirect();
+ LazyLoadedDexApplication lazyApp =
+ new ApplicationReader(androidApp, options, timing).read(executor);
+ List<KeepDeclaration> keepDeclarations = lazyApp.getKeepDeclarations();
+ DirectMappedDexApplication app = lazyApp.toDirect();
R8PartialProgramPartioning partioning = R8PartialProgramPartioning.create(app);
return new R8PartialInput(
partioning.getD8Classes(),
partioning.getR8Classes(),
app.classpathClasses(),
- app.libraryClasses());
+ app.libraryClasses(),
+ keepDeclarations);
}
private R8PartialD8Result runD8Step(R8PartialInput input, ExecutorService executor)
@@ -193,12 +198,16 @@
d8Result.getArtProfiles(),
d8Result.getClassToFeatureSplitMap(),
d8Result.getDexedClasses(),
+ input.getKeepDeclarations(),
d8Result.getStartupProfile(),
timing);
r8Options.setArtProfileOptions(
new ArtProfileOptions(r8Options, options.getArtProfileOptions()));
r8Options.setFeatureSplitConfiguration(options.getFeatureSplitConfiguration());
r8Options.setStartupOptions(new StartupOptions(r8Options, options.getStartupOptions()));
+ r8Options.setKeepSpecificationSources(options.getKeepSpecifications());
+ r8Options.getTestingOptions().enableEmbeddedKeepAnnotations =
+ options.getTestingOptions().enableEmbeddedKeepAnnotations;
r8Options.mapConsumer = options.mapConsumer;
if (options.androidResourceProvider != null) {
r8Options.androidResourceProvider = options.androidResourceProvider;
diff --git a/src/main/java/com/android/tools/r8/partial/R8PartialInput.java b/src/main/java/com/android/tools/r8/partial/R8PartialInput.java
index ba75e6b..07b713c 100644
--- a/src/main/java/com/android/tools/r8/partial/R8PartialInput.java
+++ b/src/main/java/com/android/tools/r8/partial/R8PartialInput.java
@@ -11,6 +11,7 @@
import com.android.tools.r8.graph.DexLibraryClass;
import com.android.tools.r8.graph.DexProgramClass;
import com.android.tools.r8.graph.DexType;
+import com.android.tools.r8.keepanno.ast.KeepDeclaration;
import com.android.tools.r8.utils.InternalClasspathOrLibraryClassProvider;
import com.android.tools.r8.utils.InternalProgramClassProvider;
import com.android.tools.r8.utils.MapUtils;
@@ -18,6 +19,7 @@
import java.io.IOException;
import java.util.Collection;
import java.util.IdentityHashMap;
+import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -27,18 +29,21 @@
private final Collection<DexProgramClass> r8Classes;
private final Map<DexType, DexClasspathClass> classpathClasses;
private final Map<DexType, DexLibraryClass> libraryClasses;
+ private final List<KeepDeclaration> keepDeclarations;
public R8PartialInput(
Collection<DexProgramClass> d8Classes,
Collection<DexProgramClass> r8Classes,
Collection<DexClasspathClass> classpathClasses,
- Collection<DexLibraryClass> libraryClasses) {
+ Collection<DexLibraryClass> libraryClasses,
+ List<KeepDeclaration> keepDeclarations) {
this.d8Classes = d8Classes;
this.r8Classes = r8Classes;
this.classpathClasses =
MapUtils.transform(classpathClasses, IdentityHashMap::new, DexClass::getType);
this.libraryClasses =
MapUtils.transform(libraryClasses, IdentityHashMap::new, DexClass::getType);
+ this.keepDeclarations = keepDeclarations;
}
public void configure(D8Command.Builder commandBuilder) throws IOException {
@@ -73,4 +78,8 @@
// the classes to the D8 compilation.
return SetUtils.mapIdentityHashSet(r8Classes, DexClass::getType);
}
+
+ public List<KeepDeclaration> getKeepDeclarations() {
+ return keepDeclarations;
+ }
}
diff --git a/src/main/java/com/android/tools/r8/partial/R8PartialSubCompilationConfiguration.java b/src/main/java/com/android/tools/r8/partial/R8PartialSubCompilationConfiguration.java
index cc39bf2..2e1582d 100644
--- a/src/main/java/com/android/tools/r8/partial/R8PartialSubCompilationConfiguration.java
+++ b/src/main/java/com/android/tools/r8/partial/R8PartialSubCompilationConfiguration.java
@@ -16,6 +16,7 @@
import com.android.tools.r8.graph.ProgramDefinition;
import com.android.tools.r8.ir.conversion.MethodConversionOptions;
import com.android.tools.r8.ir.conversion.MethodConversionOptions.Target;
+import com.android.tools.r8.keepanno.ast.KeepDeclaration;
import com.android.tools.r8.profile.art.ArtProfile;
import com.android.tools.r8.profile.art.ArtProfileCollection;
import com.android.tools.r8.profile.art.ArtProfileMethodRule;
@@ -156,12 +157,14 @@
private ArtProfileCollection artProfiles;
private ClassToFeatureSplitMap classToFeatureSplitMap;
private Map<DexType, DexProgramClass> dexingOutputClasses;
+ private List<KeepDeclaration> keepDeclarations;
private StartupProfile startupProfile;
public R8PartialR8SubCompilationConfiguration(
ArtProfileCollection artProfiles,
ClassToFeatureSplitMap classToFeatureSplitMap,
Collection<DexProgramClass> dexingOutputClasses,
+ List<KeepDeclaration> keepDeclarations,
StartupProfile startupProfile,
Timing timing) {
super(timing);
@@ -169,6 +172,7 @@
this.classToFeatureSplitMap = classToFeatureSplitMap;
this.dexingOutputClasses =
MapUtils.transform(dexingOutputClasses, IdentityHashMap::new, DexClass::getType);
+ this.keepDeclarations = keepDeclarations;
this.startupProfile = startupProfile;
}
@@ -185,6 +189,13 @@
return dexingOutputClasses.values();
}
+ public List<KeepDeclaration> getAndClearKeepDeclarations() {
+ List<KeepDeclaration> result = keepDeclarations;
+ assert result != null;
+ keepDeclarations = null;
+ return result;
+ }
+
public StartupProfile getStartupProfile() {
assert startupProfile != null;
return startupProfile;
diff --git a/src/test/java/com/android/tools/r8/keepanno/AnnotationPatternAnyRetentionTest.java b/src/test/java/com/android/tools/r8/keepanno/AnnotationPatternAnyRetentionTest.java
index 31de01d..dea3f0a 100644
--- a/src/test/java/com/android/tools/r8/keepanno/AnnotationPatternAnyRetentionTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/AnnotationPatternAnyRetentionTest.java
@@ -13,7 +13,6 @@
import com.android.tools.r8.keepanno.annotations.KeepTarget;
import com.android.tools.r8.keepanno.annotations.UsedByReflection;
import com.android.tools.r8.keepanno.annotations.UsesReflection;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.ClassSubject;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
@@ -38,7 +37,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/AnnotationPatternClassRetentionTest.java b/src/test/java/com/android/tools/r8/keepanno/AnnotationPatternClassRetentionTest.java
index df1bee8..860f1bb 100644
--- a/src/test/java/com/android/tools/r8/keepanno/AnnotationPatternClassRetentionTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/AnnotationPatternClassRetentionTest.java
@@ -14,7 +14,6 @@
import com.android.tools.r8.keepanno.annotations.KeepTarget;
import com.android.tools.r8.keepanno.annotations.UsedByReflection;
import com.android.tools.r8.keepanno.annotations.UsesReflection;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.ClassSubject;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
@@ -39,7 +38,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/AnnotationPatternMultipleTest.java b/src/test/java/com/android/tools/r8/keepanno/AnnotationPatternMultipleTest.java
index feafc7f..bc8a3a7 100644
--- a/src/test/java/com/android/tools/r8/keepanno/AnnotationPatternMultipleTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/AnnotationPatternMultipleTest.java
@@ -15,7 +15,6 @@
import com.android.tools.r8.keepanno.annotations.KeepTarget;
import com.android.tools.r8.keepanno.annotations.UsedByReflection;
import com.android.tools.r8.keepanno.annotations.UsesReflection;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.ClassSubject;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
@@ -40,7 +39,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/ArrayPatternsTest.java b/src/test/java/com/android/tools/r8/keepanno/ArrayPatternsTest.java
index 2f1f572..d37eb76 100644
--- a/src/test/java/com/android/tools/r8/keepanno/ArrayPatternsTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/ArrayPatternsTest.java
@@ -13,7 +13,6 @@
import com.android.tools.r8.keepanno.annotations.TypePattern;
import com.android.tools.r8.keepanno.annotations.UsedByReflection;
import com.android.tools.r8.keepanno.annotations.UsesReflection;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.google.common.collect.ImmutableList;
@@ -35,7 +34,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/CheckOptimizedOutAnnotationTest.java b/src/test/java/com/android/tools/r8/keepanno/CheckOptimizedOutAnnotationTest.java
index f44c479..8382ce5 100644
--- a/src/test/java/com/android/tools/r8/keepanno/CheckOptimizedOutAnnotationTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/CheckOptimizedOutAnnotationTest.java
@@ -4,6 +4,7 @@
package com.android.tools.r8.keepanno;
import static com.android.tools.r8.DiagnosticsMatcher.diagnosticMessage;
+import static com.android.tools.r8.utils.codeinspector.AssertUtils.assertThrowsIf;
import static com.android.tools.r8.utils.codeinspector.Matchers.isAbsent;
import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
import static org.hamcrest.CoreMatchers.allOf;
@@ -19,7 +20,6 @@
import com.android.tools.r8.DiagnosticsMatcher;
import com.android.tools.r8.errors.CheckDiscardDiagnostic;
import com.android.tools.r8.keepanno.annotations.CheckOptimizedOut;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.google.common.collect.ImmutableList;
@@ -39,7 +39,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
@@ -58,34 +58,45 @@
@Test
public void testCurrentR8() throws Throwable {
assumeTrue(parameters.isR8() && parameters.isCurrentR8());
- testForKeepAnno(parameters)
- .enableNativeInterpretation()
- .addProgramClasses(getInputClasses())
- .addKeepMainRule(TestClass.class)
- .applyIfR8Current(
- b ->
- b.allowDiagnosticWarningMessages()
- .setDiagnosticsLevelModifier(
- (level, diagnostic) ->
- level == DiagnosticsLevel.ERROR ? DiagnosticsLevel.WARNING : level)
- .compileWithExpectedDiagnostics(
- diagnostics -> {
- diagnostics
- .assertOnlyWarnings()
- .assertWarningsMatch(
- DiagnosticsMatcher.diagnosticType(CheckDiscardDiagnostic.class));
- CheckDiscardDiagnostic discard =
- (CheckDiscardDiagnostic) diagnostics.getWarnings().get(0);
- // The discard error should report one error for A.toString.
- assertEquals(
- discard.getDiagnosticMessage(), 1, discard.getNumberOfFailures());
- assertThat(
- discard,
- diagnosticMessage(containsString("A.toString() was not discarded")));
- })
- .run(parameters.getRuntime(), TestClass.class)
- .assertSuccessWithOutput(EXPECTED)
- .inspect(this::checkOutput));
+ // TODO(b/392828287): Investigate R8 partial.
+ assertThrowsIf(
+ parameters.isR8Partial(),
+ RuntimeException.class,
+ () ->
+ testForKeepAnno(parameters)
+ .enableNativeInterpretation()
+ .addProgramClasses(getInputClasses())
+ .addKeepMainRule(TestClass.class)
+ .applyIfR8Current(
+ b ->
+ b.allowDiagnosticWarningMessages()
+ .setDiagnosticsLevelModifier(
+ (level, diagnostic) ->
+ level == DiagnosticsLevel.ERROR
+ ? DiagnosticsLevel.WARNING
+ : level)
+ .compileWithExpectedDiagnostics(
+ diagnostics -> {
+ diagnostics
+ .assertOnlyWarnings()
+ .assertWarningsMatch(
+ DiagnosticsMatcher.diagnosticType(
+ CheckDiscardDiagnostic.class));
+ CheckDiscardDiagnostic discard =
+ (CheckDiscardDiagnostic) diagnostics.getWarnings().get(0);
+ // The discard error should report one error for A.toString.
+ assertEquals(
+ discard.getDiagnosticMessage(),
+ 1,
+ discard.getNumberOfFailures());
+ assertThat(
+ discard,
+ diagnosticMessage(
+ containsString("A.toString() was not discarded")));
+ })
+ .run(parameters.getRuntime(), TestClass.class)
+ .assertSuccessWithOutput(EXPECTED)
+ .inspect(this::checkOutput)));
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/CheckRemovedAnnotationTest.java b/src/test/java/com/android/tools/r8/keepanno/CheckRemovedAnnotationTest.java
index 2d13454..c3ad87d 100644
--- a/src/test/java/com/android/tools/r8/keepanno/CheckRemovedAnnotationTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/CheckRemovedAnnotationTest.java
@@ -4,6 +4,7 @@
package com.android.tools.r8.keepanno;
import static com.android.tools.r8.DiagnosticsMatcher.diagnosticMessage;
+import static com.android.tools.r8.utils.codeinspector.AssertUtils.assertThrowsIf;
import static com.android.tools.r8.utils.codeinspector.Matchers.isAbsent;
import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
import static org.hamcrest.CoreMatchers.allOf;
@@ -19,7 +20,6 @@
import com.android.tools.r8.DiagnosticsMatcher;
import com.android.tools.r8.errors.CheckDiscardDiagnostic;
import com.android.tools.r8.keepanno.annotations.CheckRemoved;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.google.common.collect.ImmutableList;
@@ -39,7 +39,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
@@ -57,38 +57,49 @@
@Test
public void testCurrentR8() throws Exception {
assumeTrue(parameters.isR8() && parameters.isCurrentR8());
- testForKeepAnno(parameters)
- .enableNativeInterpretation()
- .addProgramClasses(getInputClasses())
- .addKeepMainRule(TestClass.class)
- .applyIfR8Current(
- b ->
- b.allowDiagnosticWarningMessages()
- .setDiagnosticsLevelModifier(
- (level, diagnostic) ->
- level == DiagnosticsLevel.ERROR ? DiagnosticsLevel.WARNING : level)
- .compileWithExpectedDiagnostics(
- diagnostics -> {
- diagnostics
- .assertOnlyWarnings()
- .assertWarningsMatch(
- DiagnosticsMatcher.diagnosticType(CheckDiscardDiagnostic.class));
- CheckDiscardDiagnostic discard =
- (CheckDiscardDiagnostic) diagnostics.getWarnings().get(0);
- // The discard error should report for both the method A.foo and the class
- // B.
- assertEquals(
- discard.getDiagnosticMessage(), 2, discard.getNumberOfFailures());
- assertThat(
- discard,
- diagnosticMessage(
- allOf(
- containsString("A.foo() was not discarded"),
- containsString("B was not discarded"))));
- })
- .run(parameters.getRuntime(), TestClass.class)
- .assertSuccessWithOutput(EXPECTED)
- .inspect(this::checkOutput));
+ // TODO(b/392828287): Investigate R8 partial.
+ assertThrowsIf(
+ parameters.isR8Partial(),
+ RuntimeException.class,
+ () ->
+ testForKeepAnno(parameters)
+ .enableNativeInterpretation()
+ .addProgramClasses(getInputClasses())
+ .addKeepMainRule(TestClass.class)
+ .applyIfR8Current(
+ b ->
+ b.allowDiagnosticWarningMessages()
+ .setDiagnosticsLevelModifier(
+ (level, diagnostic) ->
+ level == DiagnosticsLevel.ERROR
+ ? DiagnosticsLevel.WARNING
+ : level)
+ .compileWithExpectedDiagnostics(
+ diagnostics -> {
+ diagnostics
+ .assertOnlyWarnings()
+ .assertWarningsMatch(
+ DiagnosticsMatcher.diagnosticType(
+ CheckDiscardDiagnostic.class));
+ CheckDiscardDiagnostic discard =
+ (CheckDiscardDiagnostic) diagnostics.getWarnings().get(0);
+ // The discard error should report for both the method A.foo and
+ // the class
+ // B.
+ assertEquals(
+ discard.getDiagnosticMessage(),
+ 2,
+ discard.getNumberOfFailures());
+ assertThat(
+ discard,
+ diagnosticMessage(
+ allOf(
+ containsString("A.foo() was not discarded"),
+ containsString("B was not discarded"))));
+ })
+ .run(parameters.getRuntime(), TestClass.class)
+ .assertSuccessWithOutput(EXPECTED)
+ .inspect(this::checkOutput)));
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/ClassAnnotatedByAnyAnnoConstraintPatternTest.java b/src/test/java/com/android/tools/r8/keepanno/ClassAnnotatedByAnyAnnoConstraintPatternTest.java
index 7d56b7a..c1db6c8 100644
--- a/src/test/java/com/android/tools/r8/keepanno/ClassAnnotatedByAnyAnnoConstraintPatternTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/ClassAnnotatedByAnyAnnoConstraintPatternTest.java
@@ -15,7 +15,6 @@
import com.android.tools.r8.keepanno.annotations.KeepTarget;
import com.android.tools.r8.keepanno.annotations.UsedByReflection;
import com.android.tools.r8.keepanno.annotations.UsesReflection;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.google.common.collect.ImmutableList;
@@ -39,7 +38,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/ClassAnnotatedByAnyAnnoPatternTest.java b/src/test/java/com/android/tools/r8/keepanno/ClassAnnotatedByAnyAnnoPatternTest.java
index 7f3840f..79566db 100644
--- a/src/test/java/com/android/tools/r8/keepanno/ClassAnnotatedByAnyAnnoPatternTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/ClassAnnotatedByAnyAnnoPatternTest.java
@@ -14,7 +14,6 @@
import com.android.tools.r8.keepanno.annotations.KeepTarget;
import com.android.tools.r8.keepanno.annotations.UsedByReflection;
import com.android.tools.r8.keepanno.annotations.UsesReflection;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.google.common.collect.ImmutableList;
@@ -38,7 +37,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/ClassAnnotatedByPatternsTest.java b/src/test/java/com/android/tools/r8/keepanno/ClassAnnotatedByPatternsTest.java
index 6d0f966..67fbdae 100644
--- a/src/test/java/com/android/tools/r8/keepanno/ClassAnnotatedByPatternsTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/ClassAnnotatedByPatternsTest.java
@@ -14,7 +14,6 @@
import com.android.tools.r8.keepanno.annotations.KeepTarget;
import com.android.tools.r8.keepanno.annotations.UsedByReflection;
import com.android.tools.r8.keepanno.annotations.UsesReflection;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.google.common.collect.ImmutableList;
@@ -38,7 +37,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/ClassAnnotatedBySingleAnnotationTest.java b/src/test/java/com/android/tools/r8/keepanno/ClassAnnotatedBySingleAnnotationTest.java
index f98c155..b545044 100644
--- a/src/test/java/com/android/tools/r8/keepanno/ClassAnnotatedBySingleAnnotationTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/ClassAnnotatedBySingleAnnotationTest.java
@@ -15,7 +15,6 @@
import com.android.tools.r8.keepanno.annotations.KeepTarget;
import com.android.tools.r8.keepanno.annotations.UsedByReflection;
import com.android.tools.r8.keepanno.annotations.UsesReflection;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.ClassSubject;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
@@ -40,7 +39,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/ClassNameStringPatternsTest.java b/src/test/java/com/android/tools/r8/keepanno/ClassNameStringPatternsTest.java
index 43cf4a7..8961217 100644
--- a/src/test/java/com/android/tools/r8/keepanno/ClassNameStringPatternsTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/ClassNameStringPatternsTest.java
@@ -15,7 +15,6 @@
import com.android.tools.r8.keepanno.annotations.TypePattern;
import com.android.tools.r8.keepanno.annotations.UsedByReflection;
import com.android.tools.r8.keepanno.annotations.UsesReflection;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.ClassSubject;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
@@ -37,7 +36,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/FieldNameStringPatternsTest.java b/src/test/java/com/android/tools/r8/keepanno/FieldNameStringPatternsTest.java
index d6a6b90..fafbe72 100644
--- a/src/test/java/com/android/tools/r8/keepanno/FieldNameStringPatternsTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/FieldNameStringPatternsTest.java
@@ -13,7 +13,6 @@
import com.android.tools.r8.keepanno.annotations.StringPattern;
import com.android.tools.r8.keepanno.annotations.UsedByReflection;
import com.android.tools.r8.keepanno.annotations.UsesReflection;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.google.common.collect.ImmutableList;
@@ -34,7 +33,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/FieldPatternsTest.java b/src/test/java/com/android/tools/r8/keepanno/FieldPatternsTest.java
index 669d945..8cea2b6 100644
--- a/src/test/java/com/android/tools/r8/keepanno/FieldPatternsTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/FieldPatternsTest.java
@@ -11,7 +11,6 @@
import com.android.tools.r8.keepanno.annotations.KeepTarget;
import com.android.tools.r8.keepanno.annotations.TypePattern;
import com.android.tools.r8.keepanno.annotations.UsesReflection;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.google.common.collect.ImmutableList;
@@ -32,7 +31,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepAccessFlagsOnFieldsTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepAccessFlagsOnFieldsTest.java
index 8aa593a..314cb1e 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepAccessFlagsOnFieldsTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepAccessFlagsOnFieldsTest.java
@@ -18,7 +18,6 @@
import com.android.tools.r8.keepanno.ast.AnnotationConstants.FieldAccess;
import com.android.tools.r8.transformers.ClassTransformer;
import com.android.tools.r8.transformers.MethodTransformer;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.google.common.collect.ImmutableList;
import java.lang.reflect.Field;
@@ -57,8 +56,7 @@
configs.add(c.invert());
});
return buildParameters(
- getTestParameters().withDefaultDexRuntime().withApiLevel(AndroidApiLevel.B).build(),
- configs);
+ getTestParameters().withDefaultDexRuntime().withMaximumApiLevel().build(), configs);
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepAccessFlagsOnMembersTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepAccessFlagsOnMembersTest.java
index 66ed07b..0bb6896 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepAccessFlagsOnMembersTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepAccessFlagsOnMembersTest.java
@@ -17,7 +17,6 @@
import com.android.tools.r8.keepanno.ast.AnnotationConstants;
import com.android.tools.r8.transformers.ClassTransformer;
import com.android.tools.r8.transformers.MethodTransformer;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
@@ -49,8 +48,7 @@
configs.add(c.invert());
});
return buildParameters(
- getTestParameters().withDefaultDexRuntime().withApiLevel(AndroidApiLevel.B).build(),
- configs);
+ getTestParameters().withDefaultDexRuntime().withMaximumApiLevel().build(), configs);
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepAccessFlagsOnMethodsTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepAccessFlagsOnMethodsTest.java
index 8e49b23..2e48bee 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepAccessFlagsOnMethodsTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepAccessFlagsOnMethodsTest.java
@@ -18,7 +18,6 @@
import com.android.tools.r8.keepanno.ast.AnnotationConstants.MethodAccess;
import com.android.tools.r8.transformers.ClassTransformer;
import com.android.tools.r8.transformers.MethodTransformer;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.google.common.collect.ImmutableList;
import java.lang.reflect.Method;
@@ -58,8 +57,7 @@
configs.add(c.invert());
});
return buildParameters(
- getTestParameters().withDefaultDexRuntime().withApiLevel(AndroidApiLevel.B).build(),
- configs);
+ getTestParameters().withDefaultDexRuntime().withMaximumApiLevel().build(), configs);
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepAccessVisibilityFlagsTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepAccessVisibilityFlagsTest.java
index a9dec7d..f15c973 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepAccessVisibilityFlagsTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepAccessVisibilityFlagsTest.java
@@ -14,7 +14,6 @@
import com.android.tools.r8.keepanno.annotations.MemberAccessFlags;
import com.android.tools.r8.keepanno.annotations.MethodAccessFlags;
import com.android.tools.r8.keepanno.annotations.UsesReflection;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.ClassSubject;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
@@ -76,7 +75,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepAnnoInstanceOfTargetTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepAnnoInstanceOfTargetTest.java
index 9605e14..abf727f 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepAnnoInstanceOfTargetTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepAnnoInstanceOfTargetTest.java
@@ -8,7 +8,6 @@
import com.android.tools.r8.keepanno.annotations.KeepTarget;
import com.android.tools.r8.keepanno.annotations.UsesReflection;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import java.util.List;
import org.junit.Test;
@@ -26,7 +25,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepAnnoParameters.java b/src/test/java/com/android/tools/r8/keepanno/KeepAnnoParameters.java
index 04e7bf8..184a024 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepAnnoParameters.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepAnnoParameters.java
@@ -13,8 +13,11 @@
public enum KeepAnnoConfig {
REFERENCE,
R8_DIRECT,
+ R8_PARTIAL_DIRECT,
R8_NORMALIZED,
+ R8_PARTIAL_NORMALIZED,
R8_RULES,
+ R8_PARTIAL_RULES,
R8_LEGACY,
PG;
}
@@ -60,12 +63,20 @@
return isCurrentR8() || isLegacyR8();
}
+ public boolean isR8Partial() {
+ return config == KeepAnnoConfig.R8_PARTIAL_DIRECT
+ || config == KeepAnnoConfig.R8_PARTIAL_NORMALIZED
+ || config == KeepAnnoConfig.R8_PARTIAL_RULES;
+ }
+
public boolean isPG() {
return config == KeepAnnoConfig.PG;
}
public boolean isCurrentR8() {
- return isNativeR8() || config == KeepAnnoConfig.R8_RULES;
+ return isNativeR8()
+ || config == KeepAnnoConfig.R8_RULES
+ || config == KeepAnnoConfig.R8_PARTIAL_RULES;
}
public boolean isLegacyR8() {
@@ -73,11 +84,15 @@
}
public boolean isNativeR8() {
- return config == KeepAnnoConfig.R8_DIRECT || config == KeepAnnoConfig.R8_NORMALIZED;
+ return config == KeepAnnoConfig.R8_DIRECT
+ || config == KeepAnnoConfig.R8_PARTIAL_DIRECT
+ || config == KeepAnnoConfig.R8_NORMALIZED
+ || config == KeepAnnoConfig.R8_PARTIAL_NORMALIZED;
}
public boolean isExtractRules() {
return config == KeepAnnoConfig.R8_RULES
+ || config == KeepAnnoConfig.R8_PARTIAL_RULES
|| config == KeepAnnoConfig.R8_LEGACY
|| config == KeepAnnoConfig.PG;
}
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepAnnoTestBase.java b/src/test/java/com/android/tools/r8/keepanno/KeepAnnoTestBase.java
index 35c00ff..4d24fa8 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepAnnoTestBase.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepAnnoTestBase.java
@@ -7,6 +7,7 @@
import com.android.tools.r8.TestBase;
import com.android.tools.r8.TestParameters;
import com.android.tools.r8.TestParametersCollection;
+import com.android.tools.r8.keepanno.KeepAnnoParameters.KeepAnnoConfig;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
@@ -17,19 +18,11 @@
TestParametersCollection parametersCollection) {
List<KeepAnnoParameters> keepAnnoParams = new ArrayList<>();
for (TestParameters parameters : parametersCollection) {
- keepAnnoParams.add(
- new KeepAnnoParameters(parameters, KeepAnnoParameters.KeepAnnoConfig.REFERENCE));
- keepAnnoParams.add(
- new KeepAnnoParameters(parameters, KeepAnnoParameters.KeepAnnoConfig.R8_DIRECT));
- keepAnnoParams.add(
- new KeepAnnoParameters(parameters, KeepAnnoParameters.KeepAnnoConfig.R8_NORMALIZED));
- keepAnnoParams.add(
- new KeepAnnoParameters(parameters, KeepAnnoParameters.KeepAnnoConfig.R8_RULES));
- keepAnnoParams.add(
- new KeepAnnoParameters(parameters, KeepAnnoParameters.KeepAnnoConfig.R8_LEGACY));
- if (parameters.isCfRuntime()) {
- keepAnnoParams.add(
- new KeepAnnoParameters(parameters, KeepAnnoParameters.KeepAnnoConfig.PG));
+ for (KeepAnnoConfig config : KeepAnnoConfig.values()) {
+ if (config == KeepAnnoConfig.PG && !parameters.isCfRuntime()) {
+ continue;
+ }
+ keepAnnoParams.add(new KeepAnnoParameters(parameters, config));
}
}
return keepAnnoParams;
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepAnnoTestBuilder.java b/src/test/java/com/android/tools/r8/keepanno/KeepAnnoTestBuilder.java
index 5a548bc..4082c0a 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepAnnoTestBuilder.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepAnnoTestBuilder.java
@@ -8,8 +8,11 @@
import com.android.tools.r8.ExternalR8TestBuilder;
import com.android.tools.r8.ProguardTestBuilder;
import com.android.tools.r8.R8FullTestBuilder;
+import com.android.tools.r8.R8PartialTestBuilder;
+import com.android.tools.r8.R8PartialTestCompileResult;
import com.android.tools.r8.R8TestBuilder;
import com.android.tools.r8.R8TestCompileResult;
+import com.android.tools.r8.R8TestCompileResultBase;
import com.android.tools.r8.SingleTestRunResult;
import com.android.tools.r8.TestBase;
import com.android.tools.r8.TestBuilder;
@@ -25,6 +28,7 @@
import com.android.tools.r8.keepanno.keeprules.KeepRuleExtractorOptions;
import com.android.tools.r8.keepanno.proto.KeepSpecProtos.KeepSpec;
import com.android.tools.r8.origin.Origin;
+import com.android.tools.r8.partial.R8PartialCompilationConfiguration.Builder;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
@@ -45,6 +49,11 @@
case R8_NORMALIZED:
case R8_RULES:
return new R8NativeBuilder(params, temp);
+ case R8_PARTIAL_DIRECT:
+ case R8_PARTIAL_NORMALIZED:
+ case R8_PARTIAL_RULES:
+ params.parameters().assumeR8PartialTestParameters();
+ return new R8PartialNativeBuilder(params, temp);
case R8_LEGACY:
return new R8LegacyBuilder(params, temp);
case PG:
@@ -56,7 +65,7 @@
private final KeepAnnoParameters keepAnnoParams;
- private KeepAnnoTestBuilder(KeepAnnoParameters params, TemporaryFolder temp) {
+ private KeepAnnoTestBuilder(KeepAnnoParameters params) {
this.keepAnnoParams = params;
}
@@ -148,7 +157,7 @@
private final TestBuilder<? extends SingleTestRunResult<?>, ?> builder;
public ReferenceBuilder(KeepAnnoParameters params, TemporaryFolder temp) {
- super(params, temp);
+ super(params);
if (parameters().isCfRuntime()) {
builder = TestBase.testForJvm(temp);
} else {
@@ -182,36 +191,26 @@
}
}
- private static class R8NativeBuilder extends KeepAnnoTestBuilder {
+ private abstract static class R8NativeBuilderBase<
+ B extends R8TestBuilder<R, ?, ?>, R extends R8TestCompileResultBase<R>>
+ extends KeepAnnoTestBuilder {
- private KeepAnnoConfig config;
- private final R8FullTestBuilder builder;
- private List<Consumer<R8TestCompileResult>> compileResultConsumers = new ArrayList<>();
+ final B builder;
+ final KeepAnnoConfig config;
- private R8NativeBuilder(KeepAnnoParameters params, TemporaryFolder temp) {
- super(params, temp);
- config = params.config();
- builder =
- TestBase.testForR8(temp, parameters().getBackend())
- .enableExperimentalKeepAnnotations()
- .setMinApi(parameters());
+ final List<Consumer<R>> compileResultConsumers = new ArrayList<>();
- // TODO(b/323816623): Replace the testing flag by the API call.
- builder.getBuilder().setEnableExperimentalKeepAnnotations(false);
- builder.addOptionsModification(o -> o.testing.enableEmbeddedKeepAnnotations = isDirect());
+ private R8NativeBuilderBase(KeepAnnoParameters params, B builder) {
+ super(params);
+ this.builder = builder;
+ this.config = params.config();
}
- private boolean isExtractRules() {
- return config == KeepAnnoConfig.R8_RULES;
- }
+ abstract boolean isExtractRules();
- private boolean isNormalizeEdges() {
- return config == KeepAnnoConfig.R8_NORMALIZED;
- }
+ abstract boolean isNormalizeEdges();
- private boolean isDirect() {
- return config == KeepAnnoConfig.R8_DIRECT;
- }
+ abstract boolean isDirect();
@Override
public KeepAnnoTestBuilder allowUnusedProguardConfigurationRules() {
@@ -252,21 +251,13 @@
}
@Override
- public KeepAnnoTestBuilder addProgramClassFileData(List<byte[]> programClasses)
- throws IOException {
+ public KeepAnnoTestBuilder addProgramClassFileData(List<byte[]> programClasses) {
for (byte[] programClass : programClasses) {
extractAndAdd(programClass);
}
return this;
}
- @Override
- public KeepAnnoTestBuilder inspectOutputConfig(Consumer<String> configConsumer) {
- compileResultConsumers.add(
- result -> configConsumer.accept(result.getProguardConfiguration()));
- return this;
- }
-
private void extractAndAdd(byte[] classFileData) {
builder.addProgramClassFileData(classFileData);
if (isExtractRules()) {
@@ -295,13 +286,81 @@
}
@Override
+ public KeepAnnoTestBuilder inspectOutputConfig(Consumer<String> configConsumer) {
+ compileResultConsumers.add(
+ result -> configConsumer.accept(result.getProguardConfiguration()));
+ return this;
+ }
+
+ @Override
public SingleTestRunResult<?> run(Class<?> mainClass) throws Exception {
- R8TestCompileResult compileResult = builder.compile();
+ R compileResult = builder.compile();
compileResultConsumers.forEach(fn -> fn.accept(compileResult));
return compileResult.run(parameters().getRuntime(), mainClass);
}
}
+ private static class R8NativeBuilder
+ extends R8NativeBuilderBase<R8FullTestBuilder, R8TestCompileResult> {
+
+ private R8NativeBuilder(KeepAnnoParameters params, TemporaryFolder temp) {
+ super(params, TestBase.testForR8(temp, params.getBackend()));
+ builder.enableExperimentalKeepAnnotations().setMinApi(parameters());
+
+ // TODO(b/323816623): Replace the testing flag by the API call.
+ builder.getBuilder().setEnableExperimentalKeepAnnotations(false);
+ builder.addOptionsModification(o -> o.testing.enableEmbeddedKeepAnnotations = isDirect());
+ }
+
+ @Override
+ boolean isExtractRules() {
+ return config == KeepAnnoConfig.R8_RULES;
+ }
+
+ @Override
+ boolean isNormalizeEdges() {
+ return config == KeepAnnoConfig.R8_NORMALIZED;
+ }
+
+ @Override
+ boolean isDirect() {
+ return config == KeepAnnoConfig.R8_DIRECT;
+ }
+ }
+
+ private static class R8PartialNativeBuilder
+ extends R8NativeBuilderBase<R8PartialTestBuilder, R8PartialTestCompileResult> {
+
+ private R8PartialNativeBuilder(KeepAnnoParameters params, TemporaryFolder temp) {
+ super(params, TestBase.testForR8Partial(temp, params.getBackend()));
+
+ builder
+ .setR8PartialConfiguration(Builder::includeAll)
+ .enableExperimentalKeepAnnotations()
+ .setMinApi(parameters());
+
+ // TODO(b/323816623): Replace the testing flag by the API call.
+ builder.getBuilder().setEnableExperimentalKeepAnnotations(false);
+ builder.addR8PartialOptionsModification(
+ o -> o.testing.enableEmbeddedKeepAnnotations = isDirect());
+ }
+
+ @Override
+ boolean isExtractRules() {
+ return config == KeepAnnoConfig.R8_PARTIAL_RULES;
+ }
+
+ @Override
+ boolean isNormalizeEdges() {
+ return config == KeepAnnoConfig.R8_PARTIAL_NORMALIZED;
+ }
+
+ @Override
+ boolean isDirect() {
+ return config == KeepAnnoConfig.R8_PARTIAL_DIRECT;
+ }
+ }
+
private static class R8LegacyBuilder extends KeepAnnoTestBuilder {
private final KeepRuleExtractorOptions extractorOptions =
@@ -310,7 +369,7 @@
private final List<Consumer<List<String>>> configConsumers = new ArrayList<>();
public R8LegacyBuilder(KeepAnnoParameters params, TemporaryFolder temp) throws IOException {
- super(params, temp);
+ super(params);
builder =
TestBase.testForExternalR8(temp, parameters().getBackend())
.useProvidedR8(KeepAnnoTestUtils.R8_LIB)
@@ -372,7 +431,7 @@
private final List<Consumer<List<String>>> configConsumers = new ArrayList<>();
public PGBuilder(KeepAnnoParameters params, TemporaryFolder temp) throws IOException {
- super(params, temp);
+ super(params);
builder =
TestBase.testForProguard(KeepAnnoTestUtils.PG_VERSION, temp)
.addProgramFiles(KeepAnnoTestUtils.getKeepAnnoLib(temp))
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepAnnoWithWhyAreYouKeepingTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepAnnoWithWhyAreYouKeepingTest.java
index 52b9cd9..25ddd75 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepAnnoWithWhyAreYouKeepingTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepAnnoWithWhyAreYouKeepingTest.java
@@ -9,7 +9,6 @@
import com.android.tools.r8.keepanno.annotations.KeepItemKind;
import com.android.tools.r8.keepanno.annotations.KeepTarget;
import com.android.tools.r8.keepanno.annotations.UsesReflection;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import java.util.List;
import org.junit.Test;
@@ -27,7 +26,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepAnnotationViaSuperTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepAnnotationViaSuperTest.java
index a9dd273..3412fc4 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepAnnotationViaSuperTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepAnnotationViaSuperTest.java
@@ -12,7 +12,6 @@
import com.android.tools.r8.keepanno.annotations.InstanceOfPattern;
import com.android.tools.r8.keepanno.annotations.KeepTarget;
import com.android.tools.r8.keepanno.annotations.UsesReflection;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.ClassSubject;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
@@ -37,7 +36,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepBindingTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepBindingTest.java
index 464ee91..a58376c 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepBindingTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepBindingTest.java
@@ -11,7 +11,6 @@
import com.android.tools.r8.keepanno.annotations.KeepCondition;
import com.android.tools.r8.keepanno.annotations.KeepEdge;
import com.android.tools.r8.keepanno.annotations.KeepTarget;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.google.common.collect.ImmutableList;
@@ -31,7 +30,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepClassApiTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepClassApiTest.java
index 4abe376..8d098fb 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepClassApiTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepClassApiTest.java
@@ -13,7 +13,6 @@
import com.android.tools.r8.keepanno.annotations.KeepForApi;
import com.android.tools.r8.keepanno.annotations.MemberAccessFlags;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.Box;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.ClassSubject;
@@ -38,7 +37,7 @@
return createParameters(
getTestParameters()
.withDefaultRuntimes()
- .withApiLevel(AndroidApiLevel.B)
+ .withMaximumApiLevel()
.enableApiLevelsForCf()
.build());
}
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepConjunctiveBindingsTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepConjunctiveBindingsTest.java
index 7c230d0..41d0b88 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepConjunctiveBindingsTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepConjunctiveBindingsTest.java
@@ -11,7 +11,6 @@
import com.android.tools.r8.keepanno.annotations.KeepBinding;
import com.android.tools.r8.keepanno.annotations.KeepEdge;
import com.android.tools.r8.keepanno.annotations.KeepTarget;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.google.common.collect.ImmutableList;
@@ -32,7 +31,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepConjunctiveBindingsWithInlineMembersTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepConjunctiveBindingsWithInlineMembersTest.java
index 1163008..57f78cb 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepConjunctiveBindingsWithInlineMembersTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepConjunctiveBindingsWithInlineMembersTest.java
@@ -11,7 +11,6 @@
import com.android.tools.r8.keepanno.annotations.KeepBinding;
import com.android.tools.r8.keepanno.annotations.KeepEdge;
import com.android.tools.r8.keepanno.annotations.KeepTarget;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.google.common.collect.ImmutableList;
@@ -32,7 +31,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepConjunctiveBindingsWithoutHolderTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepConjunctiveBindingsWithoutHolderTest.java
index cfd59fa..3a14be1 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepConjunctiveBindingsWithoutHolderTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepConjunctiveBindingsWithoutHolderTest.java
@@ -11,7 +11,6 @@
import com.android.tools.r8.keepanno.annotations.KeepBinding;
import com.android.tools.r8.keepanno.annotations.KeepEdge;
import com.android.tools.r8.keepanno.annotations.KeepTarget;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.google.common.collect.ImmutableList;
@@ -32,7 +31,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepDisjunctiveConsequencesTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepDisjunctiveConsequencesTest.java
index cf0b2a2..77a00b4 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepDisjunctiveConsequencesTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepDisjunctiveConsequencesTest.java
@@ -10,7 +10,6 @@
import com.android.tools.r8.keepanno.annotations.KeepConstraint;
import com.android.tools.r8.keepanno.annotations.KeepTarget;
import com.android.tools.r8.keepanno.annotations.UsesReflection;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.google.common.collect.ImmutableList;
@@ -31,7 +30,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepEmptyClassTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepEmptyClassTest.java
index 80e226d..9ba7ff6 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepEmptyClassTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepEmptyClassTest.java
@@ -14,7 +14,6 @@
import com.android.tools.r8.keepanno.annotations.UsedByReflection;
import com.android.tools.r8.keepanno.annotations.UsesReflection;
import com.android.tools.r8.transformers.ClassFileTransformer.MethodPredicate;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.ClassSubject;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
@@ -35,7 +34,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepFieldValueApiTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepFieldValueApiTest.java
index 9ac84d1..fd059aa 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepFieldValueApiTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepFieldValueApiTest.java
@@ -12,7 +12,6 @@
import com.android.tools.r8.keepanno.annotations.KeepForApi;
import com.android.tools.r8.keepanno.annotations.KeepItemKind;
import com.android.tools.r8.keepanno.annotations.KeepTarget;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.Box;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.ClassSubject;
@@ -37,7 +36,7 @@
return createParameters(
getTestParameters()
.withDefaultRuntimes()
- .withApiLevel(AndroidApiLevel.B)
+ .withMaximumApiLevel()
.enableApiLevelsForCf()
.build());
}
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepFooIfBarAnyClassTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepFooIfBarAnyClassTest.java
index bf82204..9ce1e74 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepFooIfBarAnyClassTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepFooIfBarAnyClassTest.java
@@ -9,7 +9,6 @@
import com.android.tools.r8.keepanno.annotations.KeepCondition;
import com.android.tools.r8.keepanno.annotations.KeepEdge;
import com.android.tools.r8.keepanno.annotations.KeepTarget;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.google.common.collect.ImmutableList;
@@ -29,7 +28,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepFooIfBarSameClassTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepFooIfBarSameClassTest.java
index 0a2e16b..f071c4b 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepFooIfBarSameClassTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepFooIfBarSameClassTest.java
@@ -11,7 +11,6 @@
import com.android.tools.r8.keepanno.annotations.KeepCondition;
import com.android.tools.r8.keepanno.annotations.KeepEdge;
import com.android.tools.r8.keepanno.annotations.KeepTarget;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.android.tools.r8.utils.codeinspector.Subject;
@@ -33,7 +32,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepInclusiveInstanceOfTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepInclusiveInstanceOfTest.java
index 1293e79..d17e742 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepInclusiveInstanceOfTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepInclusiveInstanceOfTest.java
@@ -8,7 +8,6 @@
import com.android.tools.r8.keepanno.annotations.KeepTarget;
import com.android.tools.r8.keepanno.annotations.UsesReflection;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.google.common.collect.ImmutableList;
import java.util.List;
@@ -27,7 +26,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepMainViaBindingTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepMainViaBindingTest.java
index 9246d9d..607d9c5 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepMainViaBindingTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepMainViaBindingTest.java
@@ -7,7 +7,6 @@
import com.android.tools.r8.keepanno.annotations.KeepEdge;
import com.android.tools.r8.keepanno.annotations.KeepItemKind;
import com.android.tools.r8.keepanno.annotations.KeepTarget;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.google.common.collect.ImmutableList;
import java.util.List;
@@ -26,7 +25,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepMembersAccessFlagsTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepMembersAccessFlagsTest.java
index fe8eacd..ef96447 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepMembersAccessFlagsTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepMembersAccessFlagsTest.java
@@ -12,7 +12,6 @@
import com.android.tools.r8.keepanno.annotations.KeepTarget;
import com.android.tools.r8.keepanno.annotations.MemberAccessFlags;
import com.android.tools.r8.keepanno.annotations.UsesReflection;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.ClassSubject;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
@@ -36,7 +35,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepMembersApiTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepMembersApiTest.java
index c6d3b7d..26f55e3 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepMembersApiTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepMembersApiTest.java
@@ -12,7 +12,6 @@
import com.android.tools.r8.keepanno.annotations.KeepForApi;
import com.android.tools.r8.keepanno.annotations.KeepItemKind;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.Box;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.ClassSubject;
@@ -37,7 +36,7 @@
return createParameters(
getTestParameters()
.withDefaultRuntimes()
- .withApiLevel(AndroidApiLevel.B)
+ .withMaximumApiLevel()
.enableApiLevelsForCf()
.build());
}
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepMethodsAccessFlagsTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepMethodsAccessFlagsTest.java
index 0de2eaf..dd9b5ca 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepMethodsAccessFlagsTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepMethodsAccessFlagsTest.java
@@ -11,7 +11,6 @@
import com.android.tools.r8.keepanno.annotations.KeepTarget;
import com.android.tools.r8.keepanno.annotations.MethodAccessFlags;
import com.android.tools.r8.keepanno.annotations.UsesReflection;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.ClassSubject;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
@@ -35,7 +34,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepMethodsEmptyAccessFlagsTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepMethodsEmptyAccessFlagsTest.java
index cac4ddb..3140f50 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepMethodsEmptyAccessFlagsTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepMethodsEmptyAccessFlagsTest.java
@@ -9,7 +9,6 @@
import com.android.tools.r8.keepanno.annotations.KeepItemKind;
import com.android.tools.r8.keepanno.annotations.KeepTarget;
import com.android.tools.r8.keepanno.annotations.UsesReflection;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.ClassSubject;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
@@ -34,7 +33,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepNameAndInstanceOfTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepNameAndInstanceOfTest.java
index b36cca3..e3687c6 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepNameAndInstanceOfTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepNameAndInstanceOfTest.java
@@ -5,7 +5,6 @@
import com.android.tools.r8.keepanno.annotations.KeepTarget;
import com.android.tools.r8.keepanno.annotations.UsesReflection;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.google.common.collect.ImmutableList;
import java.util.List;
@@ -25,7 +24,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepSameMethodTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepSameMethodTest.java
index 2dac67a..96670a0 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepSameMethodTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepSameMethodTest.java
@@ -13,7 +13,6 @@
import com.android.tools.r8.keepanno.annotations.KeepEdge;
import com.android.tools.r8.keepanno.annotations.KeepItemKind;
import com.android.tools.r8.keepanno.annotations.KeepTarget;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.google.common.collect.ImmutableList;
@@ -33,7 +32,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepStaticBindingTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepStaticBindingTest.java
index 1fbe385..35b999c 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepStaticBindingTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepStaticBindingTest.java
@@ -10,7 +10,6 @@
import com.android.tools.r8.keepanno.annotations.KeepBinding;
import com.android.tools.r8.keepanno.annotations.KeepEdge;
import com.android.tools.r8.keepanno.annotations.KeepTarget;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.google.common.collect.ImmutableList;
@@ -30,7 +29,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepTargetClassAndMemberKindTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepTargetClassAndMemberKindTest.java
index 9afb8b1..f02358a 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepTargetClassAndMemberKindTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepTargetClassAndMemberKindTest.java
@@ -10,7 +10,6 @@
import com.android.tools.r8.keepanno.annotations.KeepItemKind;
import com.android.tools.r8.keepanno.annotations.KeepTarget;
import com.android.tools.r8.keepanno.annotations.UsesReflection;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.google.common.collect.ImmutableList;
@@ -30,7 +29,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepTypePatternWithInstanceOfTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepTypePatternWithInstanceOfTest.java
index ce7c1d7..ee311a5 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepTypePatternWithInstanceOfTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepTypePatternWithInstanceOfTest.java
@@ -11,7 +11,6 @@
import com.android.tools.r8.keepanno.annotations.KeepTarget;
import com.android.tools.r8.keepanno.annotations.TypePattern;
import com.android.tools.r8.keepanno.annotations.UsesReflection;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
@@ -31,7 +30,7 @@
return createParameters(
getTestParameters()
.withDefaultRuntimes()
- .withApiLevel(AndroidApiLevel.B)
+ .withMaximumApiLevel()
.enableApiLevelsForCf()
.build());
}
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepUsedByNativeAnnotationTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepUsedByNativeAnnotationTest.java
index dfe0e2b..8bf1f75 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepUsedByNativeAnnotationTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepUsedByNativeAnnotationTest.java
@@ -11,7 +11,6 @@
import com.android.tools.r8.keepanno.annotations.KeepCondition;
import com.android.tools.r8.keepanno.annotations.KeepItemKind;
import com.android.tools.r8.keepanno.annotations.UsedByNative;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.google.common.collect.ImmutableList;
@@ -34,7 +33,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepUsedByReflectionAnnotationTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepUsedByReflectionAnnotationTest.java
index 0bc2417..9e7f5e0 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepUsedByReflectionAnnotationTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepUsedByReflectionAnnotationTest.java
@@ -11,7 +11,6 @@
import com.android.tools.r8.keepanno.annotations.KeepConstraint;
import com.android.tools.r8.keepanno.annotations.KeepItemKind;
import com.android.tools.r8.keepanno.annotations.UsedByReflection;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.google.common.collect.ImmutableList;
@@ -30,7 +29,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
public KeepUsedByReflectionAnnotationTest(KeepAnnoParameters parameters) {
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepUsesReflectionAnnotationTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepUsesReflectionAnnotationTest.java
index 1c0313a..d08fd34 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepUsesReflectionAnnotationTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepUsesReflectionAnnotationTest.java
@@ -9,7 +9,6 @@
import com.android.tools.r8.keepanno.annotations.KeepTarget;
import com.android.tools.r8.keepanno.annotations.UsesReflection;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.google.common.collect.ImmutableList;
@@ -29,7 +28,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepUsesReflectionAnnotationWithAdditionalPreconditionTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepUsesReflectionAnnotationWithAdditionalPreconditionTest.java
index 117cac7..26e0321 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepUsesReflectionAnnotationWithAdditionalPreconditionTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepUsesReflectionAnnotationWithAdditionalPreconditionTest.java
@@ -9,7 +9,6 @@
import com.android.tools.r8.keepanno.annotations.KeepCondition;
import com.android.tools.r8.keepanno.annotations.KeepTarget;
import com.android.tools.r8.keepanno.annotations.UsesReflection;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.google.common.collect.ImmutableList;
@@ -29,7 +28,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepUsesReflectionAnnotationWithAdditionalPreconditionUnsatisfiedTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepUsesReflectionAnnotationWithAdditionalPreconditionUnsatisfiedTest.java
index 02070d5..8ac574c 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepUsesReflectionAnnotationWithAdditionalPreconditionUnsatisfiedTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepUsesReflectionAnnotationWithAdditionalPreconditionUnsatisfiedTest.java
@@ -11,7 +11,6 @@
import com.android.tools.r8.keepanno.annotations.KeepCondition;
import com.android.tools.r8.keepanno.annotations.KeepTarget;
import com.android.tools.r8.keepanno.annotations.UsesReflection;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.google.common.collect.ImmutableList;
@@ -37,7 +36,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepUsesReflectionFieldAnnotationTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepUsesReflectionFieldAnnotationTest.java
index 22ffd9b..e411906 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepUsesReflectionFieldAnnotationTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepUsesReflectionFieldAnnotationTest.java
@@ -9,7 +9,6 @@
import com.android.tools.r8.keepanno.annotations.KeepTarget;
import com.android.tools.r8.keepanno.annotations.UsesReflection;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.google.common.collect.ImmutableList;
@@ -29,7 +28,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepUsesReflectionOnFieldTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepUsesReflectionOnFieldTest.java
index f85dcd7..556dd44 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepUsesReflectionOnFieldTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepUsesReflectionOnFieldTest.java
@@ -5,13 +5,11 @@
import static com.android.tools.r8.utils.codeinspector.Matchers.isAbsent;
import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.MatcherAssert.assertThat;
import com.android.tools.r8.keepanno.annotations.KeepConstraint;
import com.android.tools.r8.keepanno.annotations.KeepTarget;
import com.android.tools.r8.keepanno.annotations.UsesReflection;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.google.common.collect.ImmutableList;
@@ -32,7 +30,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/MembersAnnotatedByPatternsTest.java b/src/test/java/com/android/tools/r8/keepanno/MembersAnnotatedByPatternsTest.java
index a024909..8697fa0 100644
--- a/src/test/java/com/android/tools/r8/keepanno/MembersAnnotatedByPatternsTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/MembersAnnotatedByPatternsTest.java
@@ -14,7 +14,6 @@
import com.android.tools.r8.keepanno.annotations.KeepTarget;
import com.android.tools.r8.keepanno.annotations.UsedByReflection;
import com.android.tools.r8.keepanno.annotations.UsesReflection;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.ClassSubject;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
@@ -41,7 +40,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/MethodNameStringPatternsTest.java b/src/test/java/com/android/tools/r8/keepanno/MethodNameStringPatternsTest.java
index 9306ca4..836876d 100644
--- a/src/test/java/com/android/tools/r8/keepanno/MethodNameStringPatternsTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/MethodNameStringPatternsTest.java
@@ -13,7 +13,6 @@
import com.android.tools.r8.keepanno.annotations.StringPattern;
import com.android.tools.r8.keepanno.annotations.UsedByReflection;
import com.android.tools.r8.keepanno.annotations.UsesReflection;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.google.common.collect.ImmutableList;
@@ -34,7 +33,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/MethodPatternsTest.java b/src/test/java/com/android/tools/r8/keepanno/MethodPatternsTest.java
index cbb208a..d364ee9 100644
--- a/src/test/java/com/android/tools/r8/keepanno/MethodPatternsTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/MethodPatternsTest.java
@@ -13,7 +13,6 @@
import com.android.tools.r8.keepanno.annotations.TypePattern;
import com.android.tools.r8.keepanno.annotations.UsedByReflection;
import com.android.tools.r8.keepanno.annotations.UsesReflection;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.google.common.collect.ImmutableList;
@@ -35,7 +34,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/UsedByReflectionMemberInlingingAllowed.java b/src/test/java/com/android/tools/r8/keepanno/UsedByReflectionMemberInlingingAllowed.java
index b5d6f00..649f37e 100644
--- a/src/test/java/com/android/tools/r8/keepanno/UsedByReflectionMemberInlingingAllowed.java
+++ b/src/test/java/com/android/tools/r8/keepanno/UsedByReflectionMemberInlingingAllowed.java
@@ -11,7 +11,6 @@
import com.android.tools.r8.keepanno.annotations.KeepItemKind;
import com.android.tools.r8.keepanno.annotations.UsedByReflection;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.ClassSubject;
import com.android.tools.r8.utils.codeinspector.InstructionSubject;
@@ -33,7 +32,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/UsedByReflectionWithNonMatchingMemberPatternsTest.java b/src/test/java/com/android/tools/r8/keepanno/UsedByReflectionWithNonMatchingMemberPatternsTest.java
index a77ec25..1f6659a 100644
--- a/src/test/java/com/android/tools/r8/keepanno/UsedByReflectionWithNonMatchingMemberPatternsTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/UsedByReflectionWithNonMatchingMemberPatternsTest.java
@@ -5,7 +5,6 @@
import com.android.tools.r8.keepanno.annotations.KeepItemKind;
import com.android.tools.r8.keepanno.annotations.UsedByReflection;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.google.common.collect.ImmutableList;
import java.util.List;
@@ -24,7 +23,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/classpatterns/ClassNamePatternsTest.java b/src/test/java/com/android/tools/r8/keepanno/classpatterns/ClassNamePatternsTest.java
index d6b97d1..c64f958 100644
--- a/src/test/java/com/android/tools/r8/keepanno/classpatterns/ClassNamePatternsTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/classpatterns/ClassNamePatternsTest.java
@@ -12,7 +12,6 @@
import com.android.tools.r8.keepanno.annotations.TypePattern;
import com.android.tools.r8.keepanno.annotations.UsedByReflection;
import com.android.tools.r8.keepanno.annotations.UsesReflection;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.google.common.collect.ImmutableList;
import java.lang.reflect.InvocationTargetException;
@@ -51,7 +50,7 @@
@Parameterized.Parameters(name = "{0}")
public static TestParametersCollection data() {
- return getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build();
+ return getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build();
}
public ClassNamePatternsTest(TestParameters parameters) {
diff --git a/src/test/java/com/android/tools/r8/keepanno/doctests/ForApiDocumentationTest.java b/src/test/java/com/android/tools/r8/keepanno/doctests/ForApiDocumentationTest.java
index 7df53d6..63a3ca4 100644
--- a/src/test/java/com/android/tools/r8/keepanno/doctests/ForApiDocumentationTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/doctests/ForApiDocumentationTest.java
@@ -8,7 +8,6 @@
import com.android.tools.r8.TestParametersCollection;
import com.android.tools.r8.keepanno.annotations.KeepForApi;
import com.android.tools.r8.keepanno.annotations.MemberAccessFlags;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.google.common.collect.ImmutableList;
import java.lang.reflect.Method;
@@ -55,7 +54,7 @@
@Parameterized.Parameters(name = "{0}")
public static TestParametersCollection data() {
- return getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build();
+ return getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build();
}
public ForApiDocumentationTest(TestParameters parameters) {
diff --git a/src/test/java/com/android/tools/r8/keepanno/doctests/MainMethodsDocumentationTest.java b/src/test/java/com/android/tools/r8/keepanno/doctests/MainMethodsDocumentationTest.java
index fdbe498..de40ed9 100644
--- a/src/test/java/com/android/tools/r8/keepanno/doctests/MainMethodsDocumentationTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/doctests/MainMethodsDocumentationTest.java
@@ -10,7 +10,6 @@
import com.android.tools.r8.keepanno.annotations.KeepItemKind;
import com.android.tools.r8.keepanno.annotations.KeepTarget;
import com.android.tools.r8.keepanno.annotations.MethodAccessFlags;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.google.common.collect.ImmutableList;
import java.util.List;
@@ -27,7 +26,7 @@
@Parameterized.Parameters(name = "{0}")
public static TestParametersCollection data() {
- return getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build();
+ return getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build();
}
public MainMethodsDocumentationTest(TestParameters parameters) {
diff --git a/src/test/java/com/android/tools/r8/keepanno/doctests/SignatureConstraintsDocumentationTest.java b/src/test/java/com/android/tools/r8/keepanno/doctests/SignatureConstraintsDocumentationTest.java
index 2ab401c..2473300 100644
--- a/src/test/java/com/android/tools/r8/keepanno/doctests/SignatureConstraintsDocumentationTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/doctests/SignatureConstraintsDocumentationTest.java
@@ -6,7 +6,6 @@
import com.android.tools.r8.keepanno.KeepAnnoParameters;
import com.android.tools.r8.keepanno.KeepAnnoTestBase;
import com.android.tools.r8.keepanno.doctests.GenericSignaturePrinter.TestClass;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import java.util.List;
import org.junit.Test;
@@ -27,7 +26,7 @@
@Parameterized.Parameters(name = "{0}")
public static List<KeepAnnoParameters> data() {
return createParameters(
- getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
+ getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/keepanno/doctests/UsesReflectionAnnotationsDocumentationTest.java b/src/test/java/com/android/tools/r8/keepanno/doctests/UsesReflectionAnnotationsDocumentationTest.java
index a694a82..5d5cca9 100644
--- a/src/test/java/com/android/tools/r8/keepanno/doctests/UsesReflectionAnnotationsDocumentationTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/doctests/UsesReflectionAnnotationsDocumentationTest.java
@@ -15,7 +15,6 @@
import com.android.tools.r8.keepanno.annotations.KeepTarget;
import com.android.tools.r8.keepanno.annotations.UsesReflection;
import com.android.tools.r8.keepanno.doctests.UsesReflectionAnnotationsDocumentationTest.Example1.MyAnnotationPrinter.MyClass;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.ClassSubject;
import com.google.common.collect.ImmutableList;
@@ -38,7 +37,7 @@
@Parameterized.Parameters(name = "{0}")
public static TestParametersCollection data() {
- return getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build();
+ return getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build();
}
public UsesReflectionAnnotationsDocumentationTest(TestParameters parameters) {
diff --git a/src/test/java/com/android/tools/r8/keepanno/doctests/UsesReflectionDocumentationTest.java b/src/test/java/com/android/tools/r8/keepanno/doctests/UsesReflectionDocumentationTest.java
index 95a8d5b..4cc673c 100644
--- a/src/test/java/com/android/tools/r8/keepanno/doctests/UsesReflectionDocumentationTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/doctests/UsesReflectionDocumentationTest.java
@@ -12,7 +12,6 @@
import com.android.tools.r8.keepanno.annotations.KeepTarget;
import com.android.tools.r8.keepanno.annotations.UsedByReflection;
import com.android.tools.r8.keepanno.annotations.UsesReflection;
-import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.google.common.collect.ImmutableList;
import java.lang.reflect.Field;
@@ -41,7 +40,7 @@
@Parameterized.Parameters(name = "{0}")
public static TestParametersCollection data() {
- return getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build();
+ return getTestParameters().withDefaultRuntimes().withMaximumApiLevel().build();
}
public UsesReflectionDocumentationTest(TestParameters parameters) {
diff --git a/src/test/testbase/java/com/android/tools/r8/R8FullTestBuilder.java b/src/test/testbase/java/com/android/tools/r8/R8FullTestBuilder.java
index 3caab28..0647d72 100644
--- a/src/test/testbase/java/com/android/tools/r8/R8FullTestBuilder.java
+++ b/src/test/testbase/java/com/android/tools/r8/R8FullTestBuilder.java
@@ -32,11 +32,6 @@
}
@Override
- public boolean isR8TestBuilder() {
- return true;
- }
-
- @Override
R8FullTestBuilder self() {
return this;
}
diff --git a/src/test/testbase/java/com/android/tools/r8/R8PartialTestBuilder.java b/src/test/testbase/java/com/android/tools/r8/R8PartialTestBuilder.java
index f32f03c..7f9442f 100644
--- a/src/test/testbase/java/com/android/tools/r8/R8PartialTestBuilder.java
+++ b/src/test/testbase/java/com/android/tools/r8/R8PartialTestBuilder.java
@@ -208,7 +208,7 @@
@Override
public R8PartialTestBuilder enableExperimentalKeepAnnotations() {
- return addR8PartialR8OptionsModification(
+ return addR8PartialOptionsModification(
o -> o.getTestingOptions().enableEmbeddedKeepAnnotations = true)
.addKeepAnnoLibToClasspath();
}
diff --git a/src/test/testbase/java/com/android/tools/r8/utils/codeinspector/AssertUtils.java b/src/test/testbase/java/com/android/tools/r8/utils/codeinspector/AssertUtils.java
index e7e5ed0..229836f 100644
--- a/src/test/testbase/java/com/android/tools/r8/utils/codeinspector/AssertUtils.java
+++ b/src/test/testbase/java/com/android/tools/r8/utils/codeinspector/AssertUtils.java
@@ -12,6 +12,7 @@
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import java.util.function.Consumer;
+import org.junit.AssumptionViolatedException;
public class AssertUtils {
@@ -56,6 +57,9 @@
action.execute();
fail("Expected action to fail with an exception, but succeeded");
} catch (Throwable e) {
+ if (e instanceof AssumptionViolatedException) {
+ throw e;
+ }
assertEquals(printStackTraceToString(e), clazz, e.getClass());
if (consumer != null) {
consumer.accept(e);