Add min_sdk_version to aidlCmd for droidstubs

JavaDoc's implementation of `aidlFlags` omits `min_sdk_version`, and
therefore aidl compiler would default it to a default version.

To fix this, pass the min_sdk_version explicitly

Bug: 253122520
Test: TH
Test: go test ./java
Change-Id: Ia8f639174f8361136596d0e7b3286606f84705cd
This commit is contained in:
Spandan Das 2022-11-17 04:29:59 +00:00
parent 877336cc3a
commit 757b666c7f
2 changed files with 36 additions and 0 deletions

View file

@ -304,6 +304,9 @@ func (j *Javadoc) aidlFlags(ctx android.ModuleContext, aidlPreprocess android.Op
flags = append(flags, "-I"+src.String())
}
minSdkVersion := j.MinSdkVersion(ctx).ApiLevel.FinalOrFutureInt()
flags = append(flags, fmt.Sprintf("--min_sdk_version=%v", minSdkVersion))
return strings.Join(flags, " "), deps
}

View file

@ -1370,6 +1370,39 @@ func TestAidlFlagsWithMinSdkVersion(t *testing.T) {
}
}
func TestAidlFlagsMinSdkVersionDroidstubs(t *testing.T) {
bpTemplate := `
droidstubs {
name: "foo-stubs",
srcs: ["foo.aidl"],
%s
system_modules: "none",
}
`
testCases := []struct {
desc string
sdkVersionBp string
minSdkVersionExpected string
}{
{
desc: "sdk_version not set, module compiles against private platform APIs",
sdkVersionBp: ``,
minSdkVersionExpected: "10000",
},
{
desc: "sdk_version set to none, module does not build against an SDK",
sdkVersionBp: `sdk_version: "none",`,
minSdkVersionExpected: "10000",
},
}
for _, tc := range testCases {
ctx := prepareForJavaTest.RunTestWithBp(t, fmt.Sprintf(bpTemplate, tc.sdkVersionBp))
aidlCmd := ctx.ModuleForTests("foo-stubs", "android_common").Rule("aidl").RuleParams.Command
expected := "--min_sdk_version=" + tc.minSdkVersionExpected
android.AssertStringDoesContain(t, "aidl command conatins incorrect min_sdk_version for testCse: "+tc.desc, aidlCmd, expected)
}
}
func TestAidlEnforcePermissions(t *testing.T) {
ctx, _ := testJava(t, `
java_library {