check-flagged-apis: parse API signature files
Teach check-flagged-apis to extract flagged APIs from API signature files. To keep things simple, only consider fields for now: support for classes and methods will be added in a later CL. Note: `m frameworks-base-api-current.txt` will generate an API signature file that includes both the platform and mainline APIs. Bug: 334870672 Test: atest --host check-flagged-apis-test Test: check-flagged-apis --api-signature out/target/product/mainline_x86/obj/ETC/frameworks-base-api-current.txt_intermediates/frameworks-base-api-current.txt Change-Id: Ic244b896672569f44af793796189b34c1f9d0c36
This commit is contained in:
@@ -17,10 +17,28 @@ package com.android.checkflaggedapis
|
||||
|
||||
import com.android.tradefed.testtype.DeviceJUnit4ClassRunner
|
||||
import com.android.tradefed.testtype.junit4.BaseHostJUnit4Test
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
|
||||
private val API_SIGNATURE =
|
||||
"""
|
||||
// Signature format: 2.0
|
||||
package android {
|
||||
public final class Clazz {
|
||||
ctor public Clazz();
|
||||
field @FlaggedApi("android.flag.foo") public static final int FOO = 1; // 0x1
|
||||
}
|
||||
}
|
||||
"""
|
||||
.trim()
|
||||
|
||||
@RunWith(DeviceJUnit4ClassRunner::class)
|
||||
class CheckFlaggedApisTest : BaseHostJUnit4Test() {
|
||||
@Test fun testPlaceholder() {}
|
||||
@Test
|
||||
fun testParseApiSignature() {
|
||||
val expected = setOf(Pair(Symbol("android.Clazz.FOO"), Flag("android.flag.foo")))
|
||||
val actual = parseApiSignature("in-memory", API_SIGNATURE.byteInputStream())
|
||||
assertEquals(expected, actual)
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user