Pass --min_sdk_version to aidl compiler

cc/java modules can have .aidl files as srcs. Pass min_sdk_version to
the aidl compiler so that it can check some features against it.

For example, ParcelableHolder AIDL type is available since 31.

Bug: 205338951
Test: soong test && m
Change-Id: I7ecab913e00c9b6a3ce870dacbe9773d2ddb7e93
This commit is contained in:
Jooyung Han
2021-11-06 07:08:45 +09:00
parent dbb2a94cda
commit 07f70c0e92
4 changed files with 91 additions and 0 deletions

View File

@@ -1357,6 +1357,36 @@ func TestAidlFlagsArePassedToTheAidlCompiler(t *testing.T) {
}
}
func TestAidlFlagsWithMinSdkVersion(t *testing.T) {
fixture := android.GroupFixturePreparers(
prepareForJavaTest, FixtureWithPrebuiltApis(map[string][]string{"14": {"foo"}}))
for _, tc := range []struct {
name string
sdkVersion string
expected string
}{
{"default is current", "", "current"},
{"use sdk_version", `sdk_version: "14"`, "14"},
{"system_current", `sdk_version: "system_current"`, "current"},
} {
t.Run(tc.name, func(t *testing.T) {
ctx := fixture.RunTestWithBp(t, `
java_library {
name: "foo",
srcs: ["aidl/foo/IFoo.aidl"],
`+tc.sdkVersion+`
}
`)
aidlCommand := ctx.ModuleForTests("foo", "android_common").Rule("aidl").RuleParams.Command
expectedAidlFlag := "--min_sdk_version=" + tc.expected
if !strings.Contains(aidlCommand, expectedAidlFlag) {
t.Errorf("aidl command %q does not contain %q", aidlCommand, expectedAidlFlag)
}
})
}
}
func TestDataNativeBinaries(t *testing.T) {
ctx, _ := testJava(t, `
java_test_host {