Search for default_team in Android.bp when other .bp files are included.
Test: m all_teams && gqui from "flatten(out/soong/ownership/all_teams.pb, teams)" proto build/soong/android/team_proto/team.proto:AllTeams 'select teams.path, count(*) where teams.trendy_team_id == "4768044190400512" and teams.path like "%libcore%" group by teams.path ' Now we get the libcore entries for JavaLibrary.bp and NativeCode.bp as well. Before we didn't ... | external/icu/android_icu4j/libcore_bridge/src/native/Android.bp | 1 | | libcore/Android.bp | 3 | | libcore/Extras.bp | 1 | | libcore/JavaLibrary.bp | 82 | | libcore/NativeCode.bp | 10 | | libcore/benchmarks/Android.bp | 3 | ... Note: blueprint does not let include a file from a subdirectory. Bug: b/355270459 Change-Id: I19b22e341276c724786ea96e237733eac4f19dbf
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package android
|
||||
|
||||
import (
|
||||
"path"
|
||||
"path/filepath"
|
||||
|
||||
"android/soong/android/team_proto"
|
||||
@@ -153,6 +154,11 @@ func (t *allTeamsSingleton) lookupTeamForAllModules() *team_proto.AllTeams {
|
||||
} else {
|
||||
teamProperties, found = t.lookupDefaultTeam(m.bpFile)
|
||||
}
|
||||
// Deal with one blueprint file including another by looking up the default
|
||||
// in the main Android.bp rather than one listed with "build = [My.bp]"
|
||||
if !found {
|
||||
teamProperties, found = t.lookupDefaultTeam(path.Join(path.Dir(m.bpFile), "Android.bp"))
|
||||
}
|
||||
|
||||
trendy_team_id := ""
|
||||
if found {
|
||||
|
@@ -264,6 +264,84 @@ func TestPackageLookup(t *testing.T) {
|
||||
AssertDeepEquals(t, "compare maps", expectedTeams, actualTeams)
|
||||
}
|
||||
|
||||
func TestPackageLookupForIncludedBlueprintFiles(t *testing.T) {
|
||||
t.Parallel()
|
||||
rootBp := `
|
||||
package { default_team: "team_top"}
|
||||
team {
|
||||
name: "team_top",
|
||||
trendy_team_id: "trendy://team_top",
|
||||
}
|
||||
build = ["include.bp"]
|
||||
`
|
||||
includeBp := `
|
||||
fake {
|
||||
name: "IncludedModule",
|
||||
} `
|
||||
|
||||
ctx := GroupFixturePreparers(
|
||||
prepareForTestWithTeamAndFakes,
|
||||
PrepareForTestWithPackageModule,
|
||||
FixtureRegisterWithContext(func(ctx RegistrationContext) {
|
||||
ctx.RegisterParallelSingletonType("all_teams", AllTeamsFactory)
|
||||
}),
|
||||
FixtureAddTextFile("Android.bp", rootBp),
|
||||
FixtureAddTextFile("include.bp", includeBp),
|
||||
).RunTest(t)
|
||||
|
||||
var teams *team_proto.AllTeams
|
||||
teams = getTeamProtoOutput(t, ctx)
|
||||
|
||||
// map of module name -> trendy team name.
|
||||
actualTeams := make(map[string]*string)
|
||||
for _, teamProto := range teams.Teams {
|
||||
actualTeams[teamProto.GetTargetName()] = teamProto.TrendyTeamId
|
||||
}
|
||||
expectedTeams := map[string]*string{
|
||||
"IncludedModule": proto.String("trendy://team_top"),
|
||||
}
|
||||
AssertDeepEquals(t, "compare maps", expectedTeams, actualTeams)
|
||||
}
|
||||
|
||||
func TestPackageLookupForIncludedBlueprintFilesWithPackageInChildBlueprint(t *testing.T) {
|
||||
t.Parallel()
|
||||
rootBp := `
|
||||
team {
|
||||
name: "team_top",
|
||||
trendy_team_id: "trendy://team_top",
|
||||
}
|
||||
build = ["include.bp"]
|
||||
`
|
||||
includeBp := `
|
||||
package { default_team: "team_top"}
|
||||
fake {
|
||||
name: "IncludedModule",
|
||||
} `
|
||||
|
||||
ctx := GroupFixturePreparers(
|
||||
prepareForTestWithTeamAndFakes,
|
||||
PrepareForTestWithPackageModule,
|
||||
FixtureRegisterWithContext(func(ctx RegistrationContext) {
|
||||
ctx.RegisterParallelSingletonType("all_teams", AllTeamsFactory)
|
||||
}),
|
||||
FixtureAddTextFile("Android.bp", rootBp),
|
||||
FixtureAddTextFile("include.bp", includeBp),
|
||||
).RunTest(t)
|
||||
|
||||
var teams *team_proto.AllTeams
|
||||
teams = getTeamProtoOutput(t, ctx)
|
||||
|
||||
// map of module name -> trendy team name.
|
||||
actualTeams := make(map[string]*string)
|
||||
for _, teamProto := range teams.Teams {
|
||||
actualTeams[teamProto.GetTargetName()] = teamProto.TrendyTeamId
|
||||
}
|
||||
expectedTeams := map[string]*string{
|
||||
"IncludedModule": proto.String("trendy://team_top"),
|
||||
}
|
||||
AssertDeepEquals(t, "compare maps", expectedTeams, actualTeams)
|
||||
}
|
||||
|
||||
type fakeForTests struct {
|
||||
ModuleBase
|
||||
|
||||
|
Reference in New Issue
Block a user