Merge "apex_key bp2build: disambiguate module and src deps."

This commit is contained in:
Treehugger Robot 2022-10-07 10:55:50 +00:00 committed by Gerrit Code Review
commit d504adbead
2 changed files with 50 additions and 13 deletions

View file

@ -44,8 +44,6 @@ type apexKey struct {
publicKeyFile android.Path
privateKeyFile android.Path
keyName string
}
type apexKeyProperties struct {
@ -102,7 +100,6 @@ func (m *apexKey) GenerateAndroidBuildActions(ctx android.ModuleContext) {
m.publicKeyFile.String(), pubKeyName, m.privateKeyFile, privKeyName)
return
}
m.keyName = pubKeyName
}
// //////////////////////////////////////////////////////////////////////
@ -203,8 +200,11 @@ func (s *apexKeysText) MakeVars(ctx android.MakeVarsContext) {
// For Bazel / bp2build
type bazelApexKeyAttributes struct {
Public_key bazel.LabelAttribute
Private_key bazel.LabelAttribute
Public_key bazel.LabelAttribute
Public_key_name bazel.LabelAttribute
Private_key bazel.LabelAttribute
Private_key_name bazel.LabelAttribute
}
// ConvertWithBp2build performs conversion apexKey for bp2build
@ -214,18 +214,33 @@ func (m *apexKey) ConvertWithBp2build(ctx android.TopDownMutatorContext) {
func apexKeyBp2BuildInternal(ctx android.TopDownMutatorContext, module *apexKey) {
var privateKeyLabelAttribute bazel.LabelAttribute
var privateKeyNameAttribute bazel.LabelAttribute
if module.properties.Private_key != nil {
privateKeyLabelAttribute.SetValue(android.BazelLabelForModuleSrcSingle(ctx, *module.properties.Private_key))
m := String(module.properties.Private_key)
if android.SrcIsModule(m) == "" {
privateKeyNameAttribute.SetValue(android.BazelLabelForModuleSrcSingle(ctx, *module.properties.Private_key))
} else {
privateKeyLabelAttribute.SetValue(android.BazelLabelForModuleDepSingle(ctx, *module.properties.Private_key))
}
}
var publicKeyLabelAttribute bazel.LabelAttribute
var publicKeyNameAttribute bazel.LabelAttribute
if module.properties.Public_key != nil {
publicKeyLabelAttribute.SetValue(android.BazelLabelForModuleSrcSingle(ctx, *module.properties.Public_key))
m := String(module.properties.Public_key)
if android.SrcIsModule(m) == "" {
publicKeyNameAttribute.SetValue(android.BazelLabelForModuleSrcSingle(ctx, *module.properties.Public_key))
} else {
publicKeyLabelAttribute.SetValue(android.BazelLabelForModuleDepSingle(ctx, *module.properties.Public_key))
}
}
attrs := &bazelApexKeyAttributes{
Private_key: privateKeyLabelAttribute,
Public_key: publicKeyLabelAttribute,
Private_key: privateKeyLabelAttribute,
Private_key_name: privateKeyNameAttribute,
Public_key: publicKeyLabelAttribute,
Public_key_name: publicKeyNameAttribute,
}
props := bazel.BazelTargetModuleProperties{

View file

@ -27,11 +27,12 @@ func runApexKeyTestCase(t *testing.T, tc Bp2buildTestCase) {
}
func registerApexKeyModuleTypes(ctx android.RegistrationContext) {
ctx.RegisterModuleType("filegroup", android.FileGroupFactory)
}
func TestApexKeySimple(t *testing.T) {
func TestApexKeySimple_KeysAreSrcFiles(t *testing.T) {
runApexKeyTestCase(t, Bp2buildTestCase{
Description: "apex key - simple example",
Description: "apex key - keys are src files, use key_name attributes",
ModuleTypeUnderTest: "apex_key",
ModuleTypeUnderTestFactory: apex.ApexKeyFactory,
Filesystem: map[string]string{},
@ -43,8 +44,29 @@ apex_key {
}
`,
ExpectedBazelTargets: []string{MakeBazelTargetNoRestrictions("apex_key", "com.android.apogee.key", AttrNameToString{
"private_key": `"com.android.apogee.pem"`,
"public_key": `"com.android.apogee.avbpubkey"`,
"private_key_name": `"com.android.apogee.pem"`,
"public_key_name": `"com.android.apogee.avbpubkey"`,
}),
}})
}
func TestApexKey_KeysAreModules(t *testing.T) {
runApexKeyTestCase(t, Bp2buildTestCase{
Description: "apex key - keys are modules, use key attributes",
ModuleTypeUnderTest: "apex_key",
ModuleTypeUnderTestFactory: apex.ApexKeyFactory,
Filesystem: map[string]string{},
Blueprint: `
apex_key {
name: "com.android.apogee.key",
public_key: ":com.android.apogee.avbpubkey",
private_key: ":com.android.apogee.pem",
}
` + simpleModuleDoNotConvertBp2build("filegroup", "com.android.apogee.avbpubkey") +
simpleModuleDoNotConvertBp2build("filegroup", "com.android.apogee.pem"),
ExpectedBazelTargets: []string{MakeBazelTargetNoRestrictions("apex_key", "com.android.apogee.key", AttrNameToString{
"private_key": `":com.android.apogee.pem"`,
"public_key": `":com.android.apogee.avbpubkey"`,
}),
}})
}