diff options
author | 2025-02-14 13:57:22 -0800 | |
---|---|---|
committer | 2025-02-18 08:42:17 -0800 | |
commit | 54de11bcdce74be31d5ee0cb1e36d2424c2df9fc (patch) | |
tree | ee260b1242e65eb720bd134a558814043c043166 | |
parent | a1870a4f1fff640f5e942d1b9a7e2fc6c51f920d (diff) |
Rename a couple things to reduce confusion
- "ClassFilter" was confusing because we already use the word "filter" for something else.
Changed it to "ClassPredicate".
- "framework-policy-override.txt" was confusing because it's not actually for the
real framework code. It's only for the "test framework" classes.
Flag: EXEMPT host test change only
Bug: 292141694
Test: $ANDROID_BUILD_TOP/frameworks/base/ravenwood/scripts/run-ravenwood-tests.sh
Change-Id: Ic93f7e7516aea74b70d3b46a324552a25f93ab7a
-rw-r--r-- | ravenwood/tools/hoststubgen/hoststubgen-test-policy-override.txt (renamed from ravenwood/tools/hoststubgen/framework-policy-override.txt) | 31 | ||||
-rw-r--r-- | ravenwood/tools/hoststubgen/src/com/android/hoststubgen/HostStubGen.kt | 6 | ||||
-rw-r--r-- | ravenwood/tools/hoststubgen/src/com/android/hoststubgen/filters/AnnotationBasedFilter.kt | 4 | ||||
-rw-r--r-- | ravenwood/tools/hoststubgen/src/com/android/hoststubgen/utils/ClassPredicate.kt (renamed from ravenwood/tools/hoststubgen/src/com/android/hoststubgen/utils/ClassFilter.kt) | 14 | ||||
-rw-r--r-- | ravenwood/tools/hoststubgen/test/com/android/hoststubgen/utils/ClassPredicateTest.kt (renamed from ravenwood/tools/hoststubgen/test/com/android/hoststubgen/utils/ClassFilterTest.kt) | 16 | ||||
-rw-r--r-- | ravenwood/tools/ravenhelper/src/com/android/platform/test/ravenwood/ravenhelper/policytoannot/PtaProcessor.kt | 8 |
6 files changed, 28 insertions, 51 deletions
diff --git a/ravenwood/tools/hoststubgen/framework-policy-override.txt b/ravenwood/tools/hoststubgen/hoststubgen-test-policy-override.txt index af3789e270a4..000771a7022e 100644 --- a/ravenwood/tools/hoststubgen/framework-policy-override.txt +++ b/ravenwood/tools/hoststubgen/hoststubgen-test-policy-override.txt @@ -1,30 +1,7 @@ -# -------------------------------------------------------------------------------------------------- -# This file contains rules to process `framework-all.jar` to generate the host side test "stub" and -# "impl" jars, without using Java annotations. -# -# Useful when: -# - The class is auto-generated and annotations can't be added. -# (We need to figure out what to do on auto-generated classes.) -# - Want to quickly change filter rules without having to rebuild framework.jar. -# -# Using this file, one can control the visibility of APIs on a per-class, per-field and per-method -# basis, but in most cases, per-class directives would be sufficient. That is: -# -# - To put the entire class, including its members and nested classes, in the "stub" jar, -# so that the test / target code can use the API, use `stubclass`. -# -# class package.class stubclass -# -# - To put the entire class, including its members and nested classes, in the "impl" jar, -# but not in the "stub" jar, use `keepclass`. Use this when you don't want to expose an API to -# tests/target directly, but it's still needed at runtime, because it's used by other "stub" APIs -# directly or indirectly. -# -# class package.class keepclass -# -# All other classes will be removed from both the stub jar and impl jar. -# -# -------------------------------------------------------------------------------------------------- +# ************************************************************************************************* +# This file contains "policies" for HostStubGen used by its automated tests. +# For the "real" Ravenwood policies, see the frameworks/base/ravenwood/texts/ directory. +# ************************************************************************************************* # -------------------------------------------------------------------------------------------------- # Directions on auto-generated classes, where we can't use Java annotations (yet). diff --git a/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/HostStubGen.kt b/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/HostStubGen.kt index 985947575a86..a067cc9ea6ca 100644 --- a/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/HostStubGen.kt +++ b/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/HostStubGen.kt @@ -29,7 +29,7 @@ import com.android.hoststubgen.filters.OutputFilter import com.android.hoststubgen.filters.SanitizationFilter import com.android.hoststubgen.filters.TextFileFilterPolicyBuilder import com.android.hoststubgen.filters.printAsTextPolicy -import com.android.hoststubgen.utils.ClassFilter +import com.android.hoststubgen.utils.ClassPredicate import com.android.hoststubgen.visitors.BaseAdapter import com.android.hoststubgen.visitors.PackageRedirectRemapper import java.io.BufferedInputStream @@ -152,9 +152,9 @@ class HostStubGen(val options: HostStubGenOptions) { val annotationAllowedClassesFilter = options.annotationAllowedClassesFile.get.let { file -> if (file == null) { - ClassFilter.newNullFilter(true) // Allow all classes + ClassPredicate.newConstantPredicate(true) // Allow all classes } else { - ClassFilter.loadFromFile(file, false) + ClassPredicate.loadFromFile(file, false) } } diff --git a/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/filters/AnnotationBasedFilter.kt b/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/filters/AnnotationBasedFilter.kt index 36adf0626415..9b5d60237db0 100644 --- a/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/filters/AnnotationBasedFilter.kt +++ b/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/filters/AnnotationBasedFilter.kt @@ -31,7 +31,7 @@ import com.android.hoststubgen.asm.toHumanReadableClassName import com.android.hoststubgen.asm.toHumanReadableMethodName import com.android.hoststubgen.asm.toJvmClassName import com.android.hoststubgen.log -import com.android.hoststubgen.utils.ClassFilter +import com.android.hoststubgen.utils.ClassPredicate import org.objectweb.asm.tree.AnnotationNode import org.objectweb.asm.tree.ClassNode @@ -54,7 +54,7 @@ class AnnotationBasedFilter( redirectionClassAnnotations_: Set<String>, classLoadHookAnnotations_: Set<String>, keepStaticInitializerAnnotations_: Set<String>, - private val annotationAllowedClassesFilter: ClassFilter, + private val annotationAllowedClassesFilter: ClassPredicate, fallback: OutputFilter, ) : DelegatingFilter(fallback) { private val keepAnnotations = convertToInternalNames(keepAnnotations_) diff --git a/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/utils/ClassFilter.kt b/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/utils/ClassPredicate.kt index d6aa7617fd59..810dd71732c8 100644 --- a/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/utils/ClassFilter.kt +++ b/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/utils/ClassPredicate.kt @@ -24,7 +24,7 @@ import java.io.File /** * General purpose filter for class names. */ -class ClassFilter private constructor( +class ClassPredicate private constructor( private val defaultResult: Boolean, ) { private enum class MatchType { @@ -81,14 +81,14 @@ class ClassFilter private constructor( companion object { /** - * Return a filter that alawys returns true or false. + * Return a filter that always returns true or false. */ - fun newNullFilter(defaultResult: Boolean): ClassFilter { - return ClassFilter(defaultResult) + fun newConstantPredicate(defaultResult: Boolean): ClassPredicate { + return ClassPredicate(defaultResult) } /** Build a filter from a file. */ - fun loadFromFile(filename: String, defaultResult: Boolean): ClassFilter { + fun loadFromFile(filename: String, defaultResult: Boolean): ClassPredicate { return buildFromString(File(filename).readText(), defaultResult, filename) } @@ -97,8 +97,8 @@ class ClassFilter private constructor( filterString: String, defaultResult: Boolean, filenameForErrorMessage: String - ): ClassFilter { - val ret = ClassFilter(defaultResult) + ): ClassPredicate { + val ret = ClassPredicate(defaultResult) var lineNo = 0 filterString.split('\n').forEach { s -> diff --git a/ravenwood/tools/hoststubgen/test/com/android/hoststubgen/utils/ClassFilterTest.kt b/ravenwood/tools/hoststubgen/test/com/android/hoststubgen/utils/ClassPredicateTest.kt index d4e75d43a54a..5a877e661484 100644 --- a/ravenwood/tools/hoststubgen/test/com/android/hoststubgen/utils/ClassFilterTest.kt +++ b/ravenwood/tools/hoststubgen/test/com/android/hoststubgen/utils/ClassPredicateTest.kt @@ -20,22 +20,22 @@ import com.google.common.truth.Truth.assertThat import org.junit.Assert.fail import org.junit.Test -class ClassFilterTest { +class ClassPredicateTest { @Test fun testDefaultTrue() { - val f = ClassFilter.newNullFilter(true) + val f = ClassPredicate.newConstantPredicate(true) assertThat(f.matches("a/b/c")).isEqualTo(true) } @Test fun testDefaultFalse() { - val f = ClassFilter.newNullFilter(false) + val f = ClassPredicate.newConstantPredicate(false) assertThat(f.matches("a/b/c")).isEqualTo(false) } @Test fun testComplex1() { - val f = ClassFilter.buildFromString(""" + val f = ClassPredicate.buildFromString(""" # ** this is a comment ** a.b.c # allow !a.b.d # disallow @@ -57,7 +57,7 @@ class ClassFilterTest { @Test fun testComplex2() { - val f = ClassFilter.buildFromString(""" + val f = ClassPredicate.buildFromString(""" a.b.c # allow !a.* # disallow everything else in package "a". !d.e.f # disallow d.e.f. @@ -75,7 +75,7 @@ class ClassFilterTest { @Test fun testNestedClass() { - val f = ClassFilter.buildFromString("a.b.c\nm.n.o\$p\n", false, "X") + val f = ClassPredicate.buildFromString("a.b.c\nm.n.o\$p\n", false, "X") assertThat(f.matches("a/b/c")).isEqualTo(true) assertThat(f.matches("a/b/c\$d")).isEqualTo(true) assertThat(f.matches("a/b/c\$d\$e")).isEqualTo(true) @@ -88,7 +88,7 @@ class ClassFilterTest { @Test fun testBadFilter1() { try { - ClassFilter.buildFromString(""" + ClassPredicate.buildFromString(""" a* """.trimIndent(), true, "FILENAME") fail("ParseException didn't happen") @@ -101,7 +101,7 @@ class ClassFilterTest { @Test fun testSuffix() { - val f = ClassFilter.buildFromString(""" + val f = ClassPredicate.buildFromString(""" *.Abc # allow !* # Disallow by default """.trimIndent(), true, "X") diff --git a/ravenwood/tools/ravenhelper/src/com/android/platform/test/ravenwood/ravenhelper/policytoannot/PtaProcessor.kt b/ravenwood/tools/ravenhelper/src/com/android/platform/test/ravenwood/ravenhelper/policytoannot/PtaProcessor.kt index 3657a9077577..b6089eaff1ed 100644 --- a/ravenwood/tools/ravenhelper/src/com/android/platform/test/ravenwood/ravenhelper/policytoannot/PtaProcessor.kt +++ b/ravenwood/tools/ravenhelper/src/com/android/platform/test/ravenwood/ravenhelper/policytoannot/PtaProcessor.kt @@ -24,7 +24,7 @@ import com.android.hoststubgen.filters.SpecialClass import com.android.hoststubgen.filters.TextFileFilterPolicyParser import com.android.hoststubgen.filters.TextFilePolicyMethodReplaceFilter import com.android.hoststubgen.log -import com.android.hoststubgen.utils.ClassFilter +import com.android.hoststubgen.utils.ClassPredicate import com.android.platform.test.ravenwood.ravenhelper.SubcommandHandler import com.android.platform.test.ravenwood.ravenhelper.psi.createUastEnvironment import com.android.platform.test.ravenwood.ravenhelper.sourcemap.AllClassInfo @@ -66,11 +66,11 @@ private class TextPolicyToAnnotationConverter( val annotations: Annotations, val dumpOperations: Boolean, ) { - private val annotationAllowedClasses: ClassFilter = annotationAllowedClassesFile.let { file -> + private val annotationAllowedClasses: ClassPredicate = annotationAllowedClassesFile.let { file -> if (file == null) { - ClassFilter.newNullFilter(true) // Allow all classes + ClassPredicate.newConstantPredicate(true) // Allow all classes } else { - ClassFilter.loadFromFile(file, false) + ClassPredicate.loadFromFile(file, false) } } |