Propagate testonly for override_apex bp2build
Test: go test bp2build tests Change-Id: I42c61687223c658237b3e4b0a0d6dd339946a6aa
This commit is contained in:
24
apex/apex.go
24
apex/apex.go
@@ -2831,7 +2831,7 @@ func (o *OverrideApex) ConvertWithBp2build(ctx android.TopDownMutatorContext) {
|
|||||||
if !baseModuleIsApex {
|
if !baseModuleIsApex {
|
||||||
panic(fmt.Errorf("Base module is not apex module: %s", baseApexModuleName))
|
panic(fmt.Errorf("Base module is not apex module: %s", baseApexModuleName))
|
||||||
}
|
}
|
||||||
attrs, props := convertWithBp2build(a, ctx)
|
attrs, props, commonAttrs := convertWithBp2build(a, ctx)
|
||||||
|
|
||||||
// We just want the name, not module reference.
|
// We just want the name, not module reference.
|
||||||
baseApexName := strings.TrimPrefix(baseApexModuleName, ":")
|
baseApexName := strings.TrimPrefix(baseApexModuleName, ":")
|
||||||
@@ -2905,7 +2905,9 @@ func (o *OverrideApex) ConvertWithBp2build(ctx android.TopDownMutatorContext) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx.CreateBazelTargetModule(props, android.CommonAttributes{Name: o.Name()}, &attrs)
|
commonAttrs.Name = o.Name()
|
||||||
|
|
||||||
|
ctx.CreateBazelTargetModule(props, commonAttrs, &attrs)
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
@@ -3549,17 +3551,12 @@ func (a *apexBundle) ConvertWithBp2build(ctx android.TopDownMutatorContext) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
attrs, props := convertWithBp2build(a, ctx)
|
attrs, props, commonAttrs := convertWithBp2build(a, ctx)
|
||||||
commonAttrs := android.CommonAttributes{
|
commonAttrs.Name = a.Name()
|
||||||
Name: a.Name(),
|
|
||||||
}
|
|
||||||
if a.testApex {
|
|
||||||
commonAttrs.Testonly = proptools.BoolPtr(a.testApex)
|
|
||||||
}
|
|
||||||
ctx.CreateBazelTargetModule(props, commonAttrs, &attrs)
|
ctx.CreateBazelTargetModule(props, commonAttrs, &attrs)
|
||||||
}
|
}
|
||||||
|
|
||||||
func convertWithBp2build(a *apexBundle, ctx android.TopDownMutatorContext) (bazelApexBundleAttributes, bazel.BazelTargetModuleProperties) {
|
func convertWithBp2build(a *apexBundle, ctx android.TopDownMutatorContext) (bazelApexBundleAttributes, bazel.BazelTargetModuleProperties, android.CommonAttributes) {
|
||||||
var manifestLabelAttribute bazel.LabelAttribute
|
var manifestLabelAttribute bazel.LabelAttribute
|
||||||
manifestLabelAttribute.SetValue(android.BazelLabelForModuleSrcSingle(ctx, proptools.StringDefault(a.properties.Manifest, "apex_manifest.json")))
|
manifestLabelAttribute.SetValue(android.BazelLabelForModuleSrcSingle(ctx, proptools.StringDefault(a.properties.Manifest, "apex_manifest.json")))
|
||||||
|
|
||||||
@@ -3687,7 +3684,12 @@ func convertWithBp2build(a *apexBundle, ctx android.TopDownMutatorContext) (baze
|
|||||||
Bzl_load_location: "//build/bazel/rules/apex:apex.bzl",
|
Bzl_load_location: "//build/bazel/rules/apex:apex.bzl",
|
||||||
}
|
}
|
||||||
|
|
||||||
return attrs, props
|
commonAttrs := android.CommonAttributes{}
|
||||||
|
if a.testApex {
|
||||||
|
commonAttrs.Testonly = proptools.BoolPtr(true)
|
||||||
|
}
|
||||||
|
|
||||||
|
return attrs, props, commonAttrs
|
||||||
}
|
}
|
||||||
|
|
||||||
// The following conversions are based on this table where the rows are the compile_multilib
|
// The following conversions are based on this table where the rows are the compile_multilib
|
||||||
|
@@ -58,6 +58,7 @@ func registerOverrideApexModuleTypes(ctx android.RegistrationContext) {
|
|||||||
ctx.RegisterModuleType("cc_binary", cc.BinaryFactory)
|
ctx.RegisterModuleType("cc_binary", cc.BinaryFactory)
|
||||||
ctx.RegisterModuleType("cc_library", cc.LibraryFactory)
|
ctx.RegisterModuleType("cc_library", cc.LibraryFactory)
|
||||||
ctx.RegisterModuleType("apex_key", apex.ApexKeyFactory)
|
ctx.RegisterModuleType("apex_key", apex.ApexKeyFactory)
|
||||||
|
ctx.RegisterModuleType("apex_test", apex.TestApexBundleFactory)
|
||||||
ctx.RegisterModuleType("android_app_certificate", java.AndroidAppCertificateFactory)
|
ctx.RegisterModuleType("android_app_certificate", java.AndroidAppCertificateFactory)
|
||||||
ctx.RegisterModuleType("filegroup", android.FileGroupFactory)
|
ctx.RegisterModuleType("filegroup", android.FileGroupFactory)
|
||||||
ctx.RegisterModuleType("apex", apex.BundleFactory)
|
ctx.RegisterModuleType("apex", apex.BundleFactory)
|
||||||
@@ -706,6 +707,125 @@ override_apex {
|
|||||||
}})
|
}})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestOverrideApexTest(t *testing.T) {
|
||||||
|
runOverrideApexTestCase(t, Bp2buildTestCase{
|
||||||
|
Description: "override_apex",
|
||||||
|
ModuleTypeUnderTest: "override_apex",
|
||||||
|
ModuleTypeUnderTestFactory: apex.OverrideApexFactory,
|
||||||
|
Filesystem: map[string]string{},
|
||||||
|
Blueprint: `
|
||||||
|
apex_key {
|
||||||
|
name: "com.android.apogee.key",
|
||||||
|
public_key: "com.android.apogee.avbpubkey",
|
||||||
|
private_key: "com.android.apogee.pem",
|
||||||
|
bazel_module: { bp2build_available: false },
|
||||||
|
}
|
||||||
|
|
||||||
|
android_app_certificate {
|
||||||
|
name: "com.android.apogee.certificate",
|
||||||
|
certificate: "com.android.apogee",
|
||||||
|
bazel_module: { bp2build_available: false },
|
||||||
|
}
|
||||||
|
|
||||||
|
cc_library {
|
||||||
|
name: "native_shared_lib_1",
|
||||||
|
bazel_module: { bp2build_available: false },
|
||||||
|
}
|
||||||
|
|
||||||
|
prebuilt_etc {
|
||||||
|
name: "prebuilt_1",
|
||||||
|
bazel_module: { bp2build_available: false },
|
||||||
|
}
|
||||||
|
|
||||||
|
filegroup {
|
||||||
|
name: "com.android.apogee-file_contexts",
|
||||||
|
srcs: [
|
||||||
|
"com.android.apogee-file_contexts",
|
||||||
|
],
|
||||||
|
bazel_module: { bp2build_available: false },
|
||||||
|
}
|
||||||
|
|
||||||
|
cc_binary { name: "cc_binary_1", bazel_module: { bp2build_available: false } }
|
||||||
|
sh_binary { name: "sh_binary_2", bazel_module: { bp2build_available: false } }
|
||||||
|
|
||||||
|
apex_test {
|
||||||
|
name: "com.android.apogee",
|
||||||
|
manifest: "apogee_manifest.json",
|
||||||
|
androidManifest: "ApogeeAndroidManifest.xml",
|
||||||
|
file_contexts: ":com.android.apogee-file_contexts",
|
||||||
|
min_sdk_version: "29",
|
||||||
|
key: "com.android.apogee.key",
|
||||||
|
certificate: ":com.android.apogee.certificate",
|
||||||
|
updatable: false,
|
||||||
|
installable: false,
|
||||||
|
compressible: false,
|
||||||
|
native_shared_libs: [
|
||||||
|
"native_shared_lib_1",
|
||||||
|
],
|
||||||
|
binaries: [
|
||||||
|
"cc_binary_1",
|
||||||
|
"sh_binary_2",
|
||||||
|
],
|
||||||
|
prebuilts: [
|
||||||
|
"prebuilt_1",
|
||||||
|
],
|
||||||
|
bazel_module: { bp2build_available: false },
|
||||||
|
}
|
||||||
|
|
||||||
|
apex_key {
|
||||||
|
name: "com.google.android.apogee.key",
|
||||||
|
public_key: "com.google.android.apogee.avbpubkey",
|
||||||
|
private_key: "com.google.android.apogee.pem",
|
||||||
|
bazel_module: { bp2build_available: false },
|
||||||
|
}
|
||||||
|
|
||||||
|
android_app_certificate {
|
||||||
|
name: "com.google.android.apogee.certificate",
|
||||||
|
certificate: "com.google.android.apogee",
|
||||||
|
bazel_module: { bp2build_available: false },
|
||||||
|
}
|
||||||
|
|
||||||
|
override_apex {
|
||||||
|
name: "com.google.android.apogee",
|
||||||
|
base: ":com.android.apogee",
|
||||||
|
key: "com.google.android.apogee.key",
|
||||||
|
certificate: ":com.google.android.apogee.certificate",
|
||||||
|
prebuilts: [],
|
||||||
|
compressible: true,
|
||||||
|
}
|
||||||
|
`,
|
||||||
|
ExpectedBazelTargets: []string{
|
||||||
|
MakeBazelTarget("apex", "com.google.android.apogee", AttrNameToString{
|
||||||
|
"android_manifest": `"ApogeeAndroidManifest.xml"`,
|
||||||
|
"base_apex_name": `"com.android.apogee"`,
|
||||||
|
"binaries": `[
|
||||||
|
":cc_binary_1",
|
||||||
|
":sh_binary_2",
|
||||||
|
]`,
|
||||||
|
"certificate": `":com.google.android.apogee.certificate"`,
|
||||||
|
"file_contexts": `":com.android.apogee-file_contexts"`,
|
||||||
|
"installable": "False",
|
||||||
|
"key": `":com.google.android.apogee.key"`,
|
||||||
|
"manifest": `"apogee_manifest.json"`,
|
||||||
|
"min_sdk_version": `"29"`,
|
||||||
|
"native_shared_libs_32": `select({
|
||||||
|
"//build/bazel/platforms/arch:arm": [":native_shared_lib_1"],
|
||||||
|
"//build/bazel/platforms/arch:x86": [":native_shared_lib_1"],
|
||||||
|
"//conditions:default": [],
|
||||||
|
})`,
|
||||||
|
"native_shared_libs_64": `select({
|
||||||
|
"//build/bazel/platforms/arch:arm64": [":native_shared_lib_1"],
|
||||||
|
"//build/bazel/platforms/arch:x86_64": [":native_shared_lib_1"],
|
||||||
|
"//conditions:default": [],
|
||||||
|
})`,
|
||||||
|
"testonly": "True",
|
||||||
|
"prebuilts": `[]`,
|
||||||
|
"updatable": "False",
|
||||||
|
"compressible": "True",
|
||||||
|
}),
|
||||||
|
}})
|
||||||
|
}
|
||||||
|
|
||||||
func TestApexBundleSimple_manifestIsEmpty_baseApexOverrideApexInDifferentAndroidBp(t *testing.T) {
|
func TestApexBundleSimple_manifestIsEmpty_baseApexOverrideApexInDifferentAndroidBp(t *testing.T) {
|
||||||
runOverrideApexTestCase(t, Bp2buildTestCase{
|
runOverrideApexTestCase(t, Bp2buildTestCase{
|
||||||
Description: "override_apex - manifest of base apex is empty, base apex and override_apex is in different Android.bp",
|
Description: "override_apex - manifest of base apex is empty, base apex and override_apex is in different Android.bp",
|
||||||
|
Reference in New Issue
Block a user