Merge "make system server modules use filtered lint database" am: 49e0e81155
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1756510 Change-Id: I057f0fba2989eb08cd701b34f015c983111d9f44
This commit is contained in:
commit
0e689980e2
2 changed files with 20 additions and 13 deletions
|
@ -391,8 +391,9 @@ func (l *linter) lint(ctx android.ModuleContext) {
|
||||||
rule.Command().Text("rm -f").Output(html).Output(text).Output(xml)
|
rule.Command().Text("rm -f").Output(html).Output(text).Output(xml)
|
||||||
|
|
||||||
var apiVersionsName, apiVersionsPrebuilt string
|
var apiVersionsName, apiVersionsPrebuilt string
|
||||||
if l.compileSdkKind == android.SdkModule {
|
if l.compileSdkKind == android.SdkModule || l.compileSdkKind == android.SdkSystemServer {
|
||||||
// When compiling an SDK module we use the filtered database because otherwise lint's
|
// When compiling an SDK module (or system server) we use the filtered
|
||||||
|
// database because otherwise lint's
|
||||||
// NewApi check produces too many false positives; This database excludes information
|
// NewApi check produces too many false positives; This database excludes information
|
||||||
// about classes created in mainline modules hence removing those false positives.
|
// about classes created in mainline modules hence removing those false positives.
|
||||||
apiVersionsName = "api_versions_public_filtered.xml"
|
apiVersionsName = "api_versions_public_filtered.xml"
|
||||||
|
|
|
@ -261,6 +261,9 @@ func TestJavaLintDatabaseSelectionFull(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestJavaLintDatabaseSelectionPublicFiltered(t *testing.T) {
|
func TestJavaLintDatabaseSelectionPublicFiltered(t *testing.T) {
|
||||||
|
testCases := []string{
|
||||||
|
"module_current", "system_server_current",
|
||||||
|
}
|
||||||
bp := `
|
bp := `
|
||||||
java_library {
|
java_library {
|
||||||
name: "foo",
|
name: "foo",
|
||||||
|
@ -274,17 +277,20 @@ func TestJavaLintDatabaseSelectionPublicFiltered(t *testing.T) {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
`
|
`
|
||||||
result := android.GroupFixturePreparers(PrepareForTestWithJavaDefaultModules).
|
for _, testCase := range testCases {
|
||||||
RunTestWithBp(t, bp)
|
thisBp := strings.Replace(bp, "XXX", testCase, 1)
|
||||||
|
result := android.GroupFixturePreparers(PrepareForTestWithJavaDefaultModules).
|
||||||
|
RunTestWithBp(t, thisBp)
|
||||||
|
|
||||||
foo := result.ModuleForTests("foo", "android_common")
|
foo := result.ModuleForTests("foo", "android_common")
|
||||||
sboxProto := android.RuleBuilderSboxProtoForTests(t, foo.Output("lint.sbox.textproto"))
|
sboxProto := android.RuleBuilderSboxProtoForTests(t, foo.Output("lint.sbox.textproto"))
|
||||||
if !strings.Contains(*sboxProto.Commands[0].Command,
|
if !strings.Contains(*sboxProto.Commands[0].Command,
|
||||||
"/api_versions_public_filtered.xml") {
|
"/api_versions_public_filtered.xml") {
|
||||||
t.Error("did not use public-filtered lint api database", *sboxProto.Commands[0].Command)
|
t.Error("did not use public-filtered lint api database for case", testCase)
|
||||||
}
|
}
|
||||||
if strings.Contains(*sboxProto.Commands[0].Command,
|
if strings.Contains(*sboxProto.Commands[0].Command,
|
||||||
"/api_versions.xml") {
|
"/api_versions.xml") {
|
||||||
t.Error("used full api database")
|
t.Error("used full api database for case", testCase)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue