Merge "check-flagged-apis: consider superclasses when looking up symbol" into main
This commit is contained in:
@@ -220,6 +220,55 @@ class CheckFlaggedApisTest {
|
|||||||
assertEquals(expected, actual)
|
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
|
@Test
|
||||||
fun testFindErrorsDisabledFlaggedApiIsPresent() {
|
fun testFindErrorsDisabledFlaggedApiIsPresent() {
|
||||||
val expected =
|
val expected =
|
||||||
|
@@ -378,6 +378,11 @@ internal fun findErrors(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (clazz.superclass != null) {
|
||||||
|
val superclassSymbol = Symbol.createMethod(clazz.superclass, memberName)
|
||||||
|
return containsSymbol(superclassSymbol)
|
||||||
|
}
|
||||||
|
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
val errors = mutableSetOf<ApiError>()
|
val errors = mutableSetOf<ApiError>()
|
||||||
|
Reference in New Issue
Block a user