Don't implicitly pick up lint-baseline.xml
lintable modules currently pick up files named "lint-baseline.xml" to use as the lint baseline implicitly. This is confusing because you could end up using the baseline files in more modules than intended. Lint also has a feature where it requests you remove unnecessary findings from the baseline file, so something could be necessary for one module, but unnecessary for another that accidentally picked up the baseline. All modules that used to pick up the baseline implicitly have been fixed to specify it explicitly already. Fixes: 272769514 Test: Presubmits Change-Id: Id17202e2d119b87ab82c18cb35410b93ed8d5071
This commit is contained in:
parent
36ce95848b
commit
b765d6bd46
2 changed files with 7 additions and 42 deletions
21
java/lint.go
21
java/lint.go
|
@ -56,7 +56,8 @@ type LintProperties struct {
|
|||
// Modules that provide extra lint checks
|
||||
Extra_check_modules []string
|
||||
|
||||
// Name of the file that lint uses as the baseline. Defaults to "lint-baseline.xml".
|
||||
// The lint baseline file to use. If specified, lint warnings listed in this file will be
|
||||
// suppressed during lint checks.
|
||||
Baseline_filename *string
|
||||
|
||||
// If true, baselining updatability lint checks (e.g. NewApi) is prohibited. Defaults to false.
|
||||
|
@ -365,19 +366,6 @@ func (l *linter) generateManifest(ctx android.ModuleContext, rule *android.RuleB
|
|||
return manifestPath
|
||||
}
|
||||
|
||||
func (l *linter) getBaselineFilepath(ctx android.ModuleContext) android.OptionalPath {
|
||||
var lintBaseline android.OptionalPath
|
||||
if lintFilename := proptools.StringDefault(l.properties.Lint.Baseline_filename, "lint-baseline.xml"); lintFilename != "" {
|
||||
if String(l.properties.Lint.Baseline_filename) != "" {
|
||||
// if manually specified, we require the file to exist
|
||||
lintBaseline = android.OptionalPathForPath(android.PathForModuleSrc(ctx, lintFilename))
|
||||
} else {
|
||||
lintBaseline = android.ExistentPathForSource(ctx, ctx.ModuleDir(), lintFilename)
|
||||
}
|
||||
}
|
||||
return lintBaseline
|
||||
}
|
||||
|
||||
func (l *linter) lint(ctx android.ModuleContext) {
|
||||
if !l.enabled() {
|
||||
return
|
||||
|
@ -518,9 +506,8 @@ func (l *linter) lint(ctx android.ModuleContext) {
|
|||
cmd.FlagWithArg("--check ", checkOnly)
|
||||
}
|
||||
|
||||
lintBaseline := l.getBaselineFilepath(ctx)
|
||||
if lintBaseline.Valid() {
|
||||
cmd.FlagWithInput("--baseline ", lintBaseline.Path())
|
||||
if l.properties.Lint.Baseline_filename != nil {
|
||||
cmd.FlagWithInput("--baseline ", android.PathForModuleSrc(ctx, *l.properties.Lint.Baseline_filename))
|
||||
}
|
||||
|
||||
cmd.FlagWithOutput("--write-reference-baseline ", referenceBaseline)
|
||||
|
|
|
@ -21,7 +21,7 @@ import (
|
|||
"android/soong/android"
|
||||
)
|
||||
|
||||
func TestJavaLint(t *testing.T) {
|
||||
func TestJavaLintDoesntUseBaselineImplicitly(t *testing.T) {
|
||||
ctx, _ := testJavaWithFS(t, `
|
||||
java_library {
|
||||
name: "foo",
|
||||
|
@ -40,30 +40,8 @@ func TestJavaLint(t *testing.T) {
|
|||
foo := ctx.ModuleForTests("foo", "android_common")
|
||||
|
||||
sboxProto := android.RuleBuilderSboxProtoForTests(t, ctx, foo.Output("lint.sbox.textproto"))
|
||||
if !strings.Contains(*sboxProto.Commands[0].Command, "--baseline lint-baseline.xml") {
|
||||
t.Error("did not pass --baseline flag")
|
||||
}
|
||||
}
|
||||
|
||||
func TestJavaLintWithoutBaseline(t *testing.T) {
|
||||
ctx, _ := testJavaWithFS(t, `
|
||||
java_library {
|
||||
name: "foo",
|
||||
srcs: [
|
||||
"a.java",
|
||||
"b.java",
|
||||
"c.java",
|
||||
],
|
||||
min_sdk_version: "29",
|
||||
sdk_version: "system_current",
|
||||
}
|
||||
`, map[string][]byte{})
|
||||
|
||||
foo := ctx.ModuleForTests("foo", "android_common")
|
||||
|
||||
sboxProto := android.RuleBuilderSboxProtoForTests(t, ctx, foo.Output("lint.sbox.textproto"))
|
||||
if strings.Contains(*sboxProto.Commands[0].Command, "--baseline") {
|
||||
t.Error("passed --baseline flag for non existent file")
|
||||
if strings.Contains(*sboxProto.Commands[0].Command, "--baseline lint-baseline.xml") {
|
||||
t.Error("Passed --baseline flag when baseline_filename was not set")
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue