Add some more properties to the bp2build APEX converter (second try)
In particular:
- AndroidManifest
- file_contexts
- key
- certificate
- min_sdk_version
- updatable
- installable
- native_shared_libs
- binaries
Test: Updated unit test
Change-Id: I1c6e8c4b6b24ce487f64e5d37bd594dbb000fe6f
diff --git a/bp2build/apex_conversion_test.go b/bp2build/apex_conversion_test.go
index f4a1016..e2e08bd 100644
--- a/bp2build/apex_conversion_test.go
+++ b/bp2build/apex_conversion_test.go
@@ -17,6 +17,9 @@
import (
"android/soong/android"
"android/soong/apex"
+ "android/soong/cc"
+ "android/soong/java"
+
"testing"
)
@@ -26,6 +29,13 @@
}
func registerApexModuleTypes(ctx android.RegistrationContext) {
+ // CC module types needed as they can be APEX dependencies
+ cc.RegisterCCBuildComponents(ctx)
+
+ ctx.RegisterModuleType("cc_library", cc.LibraryFactory)
+ ctx.RegisterModuleType("apex_key", apex.ApexKeyFactory)
+ ctx.RegisterModuleType("android_app_certificate", java.AndroidAppCertificateFactory)
+ ctx.RegisterModuleType("filegroup", android.FileGroupFactory)
}
func TestApexBundleSimple(t *testing.T) {
@@ -36,14 +46,94 @@
moduleTypeUnderTestBp2BuildMutator: apex.ApexBundleBp2Build,
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 },
+}
+
+cc_library {
+ name: "native_shared_lib_2",
+ bazel_module: { bp2build_available: false },
+}
+
+filegroup {
+ name: "com.android.apogee-file_contexts",
+ srcs: [
+ "com.android.apogee-file_contexts",
+ ],
+ bazel_module: { bp2build_available: false },
+}
+
apex {
- name: "apogee",
- manifest: "manifest.json",
+ 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,
+ native_shared_libs: [
+ "native_shared_lib_1",
+ "native_shared_lib_2",
+ ],
+ binaries: [
+ "binary_1",
+ "binary_2",
+ ],
}
`,
expectedBazelTargets: []string{`apex(
- name = "apogee",
- manifest = "manifest.json",
+ name = "com.android.apogee",
+ android_manifest = "ApogeeAndroidManifest.xml",
+ binaries = [
+ "binary_1",
+ "binary_2",
+ ],
+ certificate = ":com.android.apogee.certificate",
+ file_contexts = ":com.android.apogee-file_contexts",
+ installable = False,
+ key = ":com.android.apogee.key",
+ manifest = "apogee_manifest.json",
+ min_sdk_version = "29",
+ native_shared_libs = [
+ ":native_shared_lib_1",
+ ":native_shared_lib_2",
+ ],
+ updatable = False,
+)`}})
+}
+
+func TestApexBundleDefaultPropertyValues(t *testing.T) {
+ runApexTestCase(t, bp2buildTestCase{
+ description: "apex - default property values",
+ moduleTypeUnderTest: "apex",
+ moduleTypeUnderTestFactory: apex.BundleFactory,
+ moduleTypeUnderTestBp2BuildMutator: apex.ApexBundleBp2Build,
+ filesystem: map[string]string{},
+ blueprint: `
+apex {
+ name: "com.android.apogee",
+ manifest: "apogee_manifest.json",
+}
+`,
+ expectedBazelTargets: []string{`apex(
+ name = "com.android.apogee",
+ manifest = "apogee_manifest.json",
)`}})
}