diff options
Diffstat (limited to 'java')
-rw-r--r-- | java/lint.go | 43 | ||||
-rw-r--r-- | java/lint_test.go | 65 | ||||
-rw-r--r-- | java/sdk_library.go | 10 |
3 files changed, 18 insertions, 100 deletions
diff --git a/java/lint.go b/java/lint.go index 7c06312ce..c79f6e7bb 100644 --- a/java/lint.go +++ b/java/lint.go @@ -62,10 +62,6 @@ type LintProperties struct { // If true, baselining updatability lint checks (e.g. NewApi) is prohibited. Defaults to false. Strict_updatability_linting *bool - // The reverse dependency that had strict_updatability_linting set that caused this module to - // have it enabled, for use in error messages. - Strict_updatability_parents []string - // Treat the code in this module as test code for @VisibleForTesting enforcement. // This will be true by default for test module types, false otherwise. // If soong gets support for testonly, this flag should be replaced with that. @@ -121,8 +117,8 @@ type LintDepSetsIntf interface { LintDepSets() LintDepSets // Methods used to propagate strict_updatability_linting values. - GetStrictUpdatabilityLinting(ctx android.BaseModuleContext) []string - SetStrictUpdatabilityLinting([]string) + GetStrictUpdatabilityLinting() bool + SetStrictUpdatabilityLinting(bool) } type LintDepSets struct { @@ -217,22 +213,12 @@ func (l *linter) LintDepSets() LintDepSets { return l.outputs.depSets } -// GetStrictUpdatabilityLinting returns a list of names of modules -// that set strict_updatability_linting: true and affect the current module. -// Strict updatability linting should be enabled if the result is non-empty. -func (l *linter) GetStrictUpdatabilityLinting(ctx android.BaseModuleContext) []string { - result := l.properties.Lint.Strict_updatability_parents - if proptools.Bool(l.properties.Lint.Strict_updatability_linting) { - result = append(result, ctx.ModuleName()) - } - return result +func (l *linter) GetStrictUpdatabilityLinting() bool { + return BoolDefault(l.properties.Lint.Strict_updatability_linting, false) } -// SetStrictUpdatabilityLinting adds the given list of modules to this module's -// list of "strict updatable parent" modules. If then given list is non-empty, -// it causes strict updatability linting to be enabled on this module. -func (l *linter) SetStrictUpdatabilityLinting(parents []string) { - l.properties.Lint.Strict_updatability_parents = android.SortedUniqueStrings(append(l.properties.Lint.Strict_updatability_parents, parents...)) +func (l *linter) SetStrictUpdatabilityLinting(strictLinting bool) { + l.properties.Lint.Strict_updatability_linting = &strictLinting } var _ LintDepSetsIntf = (*linter)(nil) @@ -339,10 +325,9 @@ func (l *linter) writeLintProjectXML(ctx android.ModuleContext, rule *android.Ru cmd.FlagForEachArg("--error_check ", l.properties.Lint.Error_checks) cmd.FlagForEachArg("--fatal_check ", l.properties.Lint.Fatal_checks) - if strict_mods := l.GetStrictUpdatabilityLinting(ctx); len(strict_mods) > 0 { + if l.GetStrictUpdatabilityLinting() { // Verify the module does not baseline issues that endanger safe updatability. if l.properties.Lint.Baseline_filename != nil { - cmd.FlagWithArg("--strict_updatability_parents ", proptools.ShellEscape(strings.Join(strict_mods, ","))) cmd.FlagWithInput("--baseline ", android.PathForModuleSrc(ctx, *l.properties.Lint.Baseline_filename)) cmd.FlagForEachArg("--disallowed_issues ", updatabilityChecks) } @@ -748,13 +733,11 @@ func lintZip(ctx android.BuilderContext, paths android.Paths, outputPath android // Enforce the strict updatability linting to all applicable transitive dependencies. func enforceStrictUpdatabilityLintingMutator(ctx android.TopDownMutatorContext) { m := ctx.Module() - if d, ok := m.(LintDepSetsIntf); ok { - if strict_mods := d.GetStrictUpdatabilityLinting(ctx); len(strict_mods) > 0 { - ctx.VisitDirectDepsWithTag(staticLibTag, func(d android.Module) { - if a, ok := d.(LintDepSetsIntf); ok { - a.SetStrictUpdatabilityLinting(strict_mods) - } - }) - } + if d, ok := m.(LintDepSetsIntf); ok && d.GetStrictUpdatabilityLinting() { + ctx.VisitDirectDepsWithTag(staticLibTag, func(d android.Module) { + if a, ok := d.(LintDepSetsIntf); ok { + a.SetStrictUpdatabilityLinting(true) + } + }) } } diff --git a/java/lint_test.go b/java/lint_test.go index 6b24daa5f..b51753f71 100644 --- a/java/lint_test.go +++ b/java/lint_test.go @@ -202,71 +202,6 @@ func TestJavaLintStrictUpdatabilityLinting(t *testing.T) { } } -func TestJavaLintStrictUpdatabilityLintingMultipleParents(t *testing.T) { - bp := ` - java_library { - name: "a", - srcs: ["a.java"], - static_libs: ["b"], - min_sdk_version: "29", - sdk_version: "current", - lint: { - strict_updatability_linting: true, - baseline_filename: "lint-baseline.xml", - }, - } - - java_library { - name: "b", - srcs: ["b.java"], - static_libs: ["c"], - min_sdk_version: "29", - sdk_version: "current", - lint: { - strict_updatability_linting: true, - }, - } - - java_library { - name: "d", - srcs: ["d.java"], - static_libs: ["c"], - min_sdk_version: "29", - sdk_version: "current", - lint: { - strict_updatability_linting: true, - }, - } - - java_library { - name: "c", - srcs: ["c.java"], - min_sdk_version: "29", - sdk_version: "current", - lint: { - baseline_filename: "lint-baseline.xml", - } - } - ` - fs := android.MockFS{ - "lint-baseline.xml": nil, - } - - result := android.GroupFixturePreparers(PrepareForTestWithJavaDefaultModules, fs.AddToFixture()). - RunTestWithBp(t, bp) - - c := result.ModuleForTests("c", "android_common") - sboxProto := android.RuleBuilderSboxProtoForTests(t, result.TestContext, c.Output("lint.sbox.textproto")) - if !strings.Contains(*sboxProto.Commands[0].Command, - "--baseline lint-baseline.xml --disallowed_issues NewApi") { - t.Error("did not restrict baselining NewApi") - } - if !strings.Contains(*sboxProto.Commands[0].Command, - "--strict_updatability_parents a,b,d") { - t.Errorf("Did not find correct strict_updatability_parents in command %q", *sboxProto.Commands[0].Command) - } -} - func TestJavaLintDatabaseSelectionFull(t *testing.T) { testCases := []struct { sdk_version string diff --git a/java/sdk_library.go b/java/sdk_library.go index 570248ed3..49e6727eb 100644 --- a/java/sdk_library.go +++ b/java/sdk_library.go @@ -2968,17 +2968,17 @@ func (module *SdkLibraryImport) LintDepSets() LintDepSets { } } -func (module *SdkLibraryImport) GetStrictUpdatabilityLinting(ctx android.BaseModuleContext) []string { +func (module *SdkLibraryImport) GetStrictUpdatabilityLinting() bool { if module.implLibraryModule == nil { - return nil + return false } else { - return module.implLibraryModule.GetStrictUpdatabilityLinting(ctx) + return module.implLibraryModule.GetStrictUpdatabilityLinting() } } -func (module *SdkLibraryImport) SetStrictUpdatabilityLinting(parents []string) { +func (module *SdkLibraryImport) SetStrictUpdatabilityLinting(strictLinting bool) { if module.implLibraryModule != nil { - module.implLibraryModule.SetStrictUpdatabilityLinting(parents) + module.implLibraryModule.SetStrictUpdatabilityLinting(strictLinting) } } |