Merge "Introduce NewApi lint checks" am: 53d69eb028

Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1675510

Change-Id: I82a3e0cbc4b2c2cef95dadac14f6559eb608e113
This commit is contained in:
Pedro Loureiro
2021-04-15 11:49:54 +00:00
committed by Automerger Merge Worker
2 changed files with 32 additions and 18 deletions

View File

@@ -1261,6 +1261,14 @@ func TestJavaLintUsesCorrectBpConfig(t *testing.T) {
if !strings.Contains(*sboxProto.Commands[0].Command, "--baseline mybaseline.xml") { if !strings.Contains(*sboxProto.Commands[0].Command, "--baseline mybaseline.xml") {
t.Error("did not use the correct file for baseline") t.Error("did not use the correct file for baseline")
} }
if !strings.Contains(*sboxProto.Commands[0].Command, "--error_check NewApi") {
t.Error("should check NewApi errors")
}
if !strings.Contains(*sboxProto.Commands[0].Command, "--error_check SomeCheck") {
t.Error("should combine NewApi errors with SomeCheck errors")
}
} }
func TestGeneratedSources(t *testing.T) { func TestGeneratedSources(t *testing.T) {

View File

@@ -57,24 +57,25 @@ type LintProperties struct {
} }
type linter struct { type linter struct {
name string name string
manifest android.Path manifest android.Path
mergedManifest android.Path mergedManifest android.Path
srcs android.Paths srcs android.Paths
srcJars android.Paths srcJars android.Paths
resources android.Paths resources android.Paths
classpath android.Paths classpath android.Paths
classes android.Path classes android.Path
extraLintCheckJars android.Paths extraLintCheckJars android.Paths
test bool test bool
library bool library bool
minSdkVersion string minSdkVersion string
targetSdkVersion string targetSdkVersion string
compileSdkVersion string compileSdkVersion string
javaLanguageLevel string javaLanguageLevel string
kotlinLanguageLevel string kotlinLanguageLevel string
outputs lintOutputs outputs lintOutputs
properties LintProperties properties LintProperties
extraMainlineLintErrors []string
reports android.Paths reports android.Paths
@@ -246,6 +247,7 @@ func (l *linter) writeLintProjectXML(ctx android.ModuleContext, rule *android.Ru
cmd.FlagWithInput("@", cmd.FlagWithInput("@",
android.PathForSource(ctx, "build/soong/java/lint_defaults.txt")) android.PathForSource(ctx, "build/soong/java/lint_defaults.txt"))
cmd.FlagForEachArg("--error_check ", l.extraMainlineLintErrors)
cmd.FlagForEachArg("--disable_check ", l.properties.Lint.Disabled_checks) cmd.FlagForEachArg("--disable_check ", l.properties.Lint.Disabled_checks)
cmd.FlagForEachArg("--warning_check ", l.properties.Lint.Warning_checks) cmd.FlagForEachArg("--warning_check ", l.properties.Lint.Warning_checks)
cmd.FlagForEachArg("--error_check ", l.properties.Lint.Error_checks) cmd.FlagForEachArg("--error_check ", l.properties.Lint.Error_checks)
@@ -282,6 +284,10 @@ func (l *linter) lint(ctx android.ModuleContext) {
return return
} }
if l.minSdkVersion != l.compileSdkVersion {
l.extraMainlineLintErrors = append(l.extraMainlineLintErrors, "NewApi")
}
extraLintCheckModules := ctx.GetDirectDepsWithTag(extraLintCheckTag) extraLintCheckModules := ctx.GetDirectDepsWithTag(extraLintCheckTag)
for _, extraLintCheckModule := range extraLintCheckModules { for _, extraLintCheckModule := range extraLintCheckModules {
if ctx.OtherModuleHasProvider(extraLintCheckModule, JavaInfoProvider) { if ctx.OtherModuleHasProvider(extraLintCheckModule, JavaInfoProvider) {