Loading android/defaults_test.go +41 −1 Original line number Diff line number Diff line Loading @@ -16,10 +16,13 @@ package android import ( "testing" "github.com/google/blueprint" ) type defaultsTestProperties struct { Foo []string Path_prop []string `android:"path"` } type defaultsTestModule struct { Loading Loading @@ -130,3 +133,40 @@ func TestDefaultsAllowMissingDependencies(t *testing.T) { // TODO: missing transitive defaults is currently not handled _ = missingTransitiveDefaults } func TestDefaultsPathProperties(t *testing.T) { bp := ` defaults { name: "defaults", path_prop: [":gen"], } test { name: "foo", defaults: ["defaults"], } test { name: "gen", } ` result := GroupFixturePreparers( prepareForDefaultsTest, FixtureWithRootAndroidBp(bp), ).RunTest(t) collectDeps := func(m Module) []string { var deps []string result.VisitDirectDeps(m, func(dep blueprint.Module) { deps = append(deps, result.ModuleName(dep)) }) return deps } foo := result.Module("foo", "") defaults := result.Module("defaults", "") AssertStringListContains(t, "foo should depend on gen", collectDeps(foo), "gen") AssertStringListDoesNotContain(t, "defaults should not depend on gen", collectDeps(defaults), "gen") } android/path_properties.go +5 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,11 @@ func registerPathDepsMutator(ctx RegisterMutatorsContext) { // The pathDepsMutator automatically adds dependencies on any module that is listed with the // ":module" module reference syntax in a property that is tagged with `android:"path"`. func pathDepsMutator(ctx BottomUpMutatorContext) { if _, ok := ctx.Module().(DefaultsModule); ok { // Defaults modules shouldn't have dependencies added for path properties, they have already been // squashed into the real modules. return } props := ctx.Module().base().GetProperties() addPathDepsForProps(ctx, props) } Loading Loading
android/defaults_test.go +41 −1 Original line number Diff line number Diff line Loading @@ -16,10 +16,13 @@ package android import ( "testing" "github.com/google/blueprint" ) type defaultsTestProperties struct { Foo []string Path_prop []string `android:"path"` } type defaultsTestModule struct { Loading Loading @@ -130,3 +133,40 @@ func TestDefaultsAllowMissingDependencies(t *testing.T) { // TODO: missing transitive defaults is currently not handled _ = missingTransitiveDefaults } func TestDefaultsPathProperties(t *testing.T) { bp := ` defaults { name: "defaults", path_prop: [":gen"], } test { name: "foo", defaults: ["defaults"], } test { name: "gen", } ` result := GroupFixturePreparers( prepareForDefaultsTest, FixtureWithRootAndroidBp(bp), ).RunTest(t) collectDeps := func(m Module) []string { var deps []string result.VisitDirectDeps(m, func(dep blueprint.Module) { deps = append(deps, result.ModuleName(dep)) }) return deps } foo := result.Module("foo", "") defaults := result.Module("defaults", "") AssertStringListContains(t, "foo should depend on gen", collectDeps(foo), "gen") AssertStringListDoesNotContain(t, "defaults should not depend on gen", collectDeps(defaults), "gen") }
android/path_properties.go +5 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,11 @@ func registerPathDepsMutator(ctx RegisterMutatorsContext) { // The pathDepsMutator automatically adds dependencies on any module that is listed with the // ":module" module reference syntax in a property that is tagged with `android:"path"`. func pathDepsMutator(ctx BottomUpMutatorContext) { if _, ok := ctx.Module().(DefaultsModule); ok { // Defaults modules shouldn't have dependencies added for path properties, they have already been // squashed into the real modules. return } props := ctx.Module().base().GetProperties() addPathDepsForProps(ctx, props) } Loading