Merge "check-flagged-apis: consider superclasses when looking up symbol" into main am: 64dac049a6

Original change: https://android-review.googlesource.com/c/platform/build/+/3075497

Change-Id: Ie153f49524170ee92663080cfe3d003624ec5072
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Treehugger Robot
2024-05-07 14:21:17 +00:00
committed by Automerger Merge Worker
2 changed files with 54 additions and 0 deletions

View File

@@ -220,6 +220,55 @@ class CheckFlaggedApisTest {
assertEquals(expected, actual)
}
@Test
fun testFindErrorsVerifySuperclass() {
val apiSignature =
"""
// Signature format: 2.0
package android {
@FlaggedApi("android.flag.foo") public final class C extends android.B {
method @FlaggedApi("android.flag.foo") public boolean c();
method @FlaggedApi("android.flag.foo") public boolean b();
method @FlaggedApi("android.flag.foo") public boolean a();
}
public final class B extends android.A {
method public boolean b();
}
public final class A {
method public boolean a();
}
}
"""
.trim()
val apiVersions =
"""
<?xml version="1.0" encoding="utf-8"?>
<api version="3">
<class name="android/C" since="1">
<extends name="android/B"/>
<method name="c()Z"/>
</class>
<class name="android/B" since="1">
<extends name="android/A"/>
<method name="b()Z"/>
</class>
<class name="android/A" since="1">
<method name="a()Z"/>
</class>
</api>
"""
.trim()
val expected = setOf<ApiError>()
val actual =
findErrors(
parseApiSignature("in-memory", apiSignature.byteInputStream()),
parseFlagValues(generateFlagsProto(ENABLED, ENABLED)),
parseApiVersions(apiVersions.byteInputStream()))
assertEquals(expected, actual)
}
@Test
fun testFindErrorsDisabledFlaggedApiIsPresent() {
val expected =

View File

@@ -378,6 +378,11 @@ internal fun findErrors(
}
}
if (clazz.superclass != null) {
val superclassSymbol = Symbol.createMethod(clazz.superclass, memberName)
return containsSymbol(superclassSymbol)
}
return false
}
val errors = mutableSetOf<ApiError>()