Support prebuilt_root_host in bp2build
Also fix a bug that filename string may contain wild card
Test: Added unittest and CI
Bug: 303725325
Bug: 304590341
Change-Id: I5de9c195343328981a4154024c0fe4e14969ce79
diff --git a/bp2build/prebuilt_etc_conversion_test.go b/bp2build/prebuilt_etc_conversion_test.go
index e237303..030dbcc 100644
--- a/bp2build/prebuilt_etc_conversion_test.go
+++ b/bp2build/prebuilt_etc_conversion_test.go
@@ -26,10 +26,17 @@
t.Helper()
(&tc).ModuleTypeUnderTest = "prebuilt_etc"
(&tc).ModuleTypeUnderTestFactory = etc.PrebuiltEtcFactory
- RunBp2BuildTestCase(t, registerPrebuiltEtcModuleTypes, tc)
+ RunBp2BuildTestCase(t, registerPrebuiltModuleTypes, tc)
}
-func registerPrebuiltEtcModuleTypes(ctx android.RegistrationContext) {
+func runPrebuiltRootHostTestCase(t *testing.T, tc Bp2buildTestCase) {
+ t.Helper()
+ (&tc).ModuleTypeUnderTest = "prebuilt_root_host"
+ (&tc).ModuleTypeUnderTestFactory = etc.PrebuiltRootHostFactory
+ RunBp2BuildTestCase(t, registerPrebuiltModuleTypes, tc)
+}
+
+func registerPrebuiltModuleTypes(ctx android.RegistrationContext) {
}
func TestPrebuiltEtcSimple(t *testing.T) {
@@ -160,7 +167,7 @@
t.Helper()
(&tc).ModuleTypeUnderTest = "prebuilt_usr_share"
(&tc).ModuleTypeUnderTestFactory = etc.PrebuiltUserShareFactory
- RunBp2BuildTestCase(t, registerPrebuiltEtcModuleTypes, tc)
+ RunBp2BuildTestCase(t, registerPrebuiltModuleTypes, tc)
}
func registerPrebuiltUsrShareModuleTypes(ctx android.RegistrationContext) {
@@ -360,3 +367,30 @@
ExpectedBazelTargets: []string{},
})
}
+
+func TestPrebuiltRootHostWithWildCardInSrc(t *testing.T) {
+ runPrebuiltRootHostTestCase(t, Bp2buildTestCase{
+ Description: "prebuilt_root_host - src string has wild card",
+ Filesystem: map[string]string{
+ "prh.dat": "",
+ },
+ Blueprint: `
+prebuilt_root_host {
+ name: "prh_test",
+ src: "*.dat",
+ filename_from_src: true,
+ relative_install_path: "test/install/path",
+ bazel_module: { bp2build_available: true },
+}
+`,
+ ExpectedBazelTargets: []string{
+ MakeBazelTarget("prebuilt_file", "prh_test", AttrNameToString{
+ "filename": `"prh.dat"`,
+ "src": `"prh.dat"`,
+ "dir": `"./test/install/path"`,
+ "target_compatible_with": `select({
+ "//build/bazel/platforms/os:android": ["@platforms//:incompatible"],
+ "//conditions:default": [],
+ })`,
+ })}})
+}