Add a neverallow rule for prebuilt_* module types
This change adds a neverallow rule to the following module types:
- prebuilt_usr_srec
- prebuilt_priv_app
- prebuilt_rfs
- prebuilt_framework
- prebuilt_res
- prebuilt_wlc_upt
- prebuilt_odm
that these modules cannot be defined in bp files, but can only be auto
generated by other modules.
Test: m nothing --no-skip-soong-tests
Bug: 375053752
Change-Id: Ie1b73966d8ada3863c29f9aca710aa8c735286dd
diff --git a/android/neverallow_test.go b/android/neverallow_test.go
index caec8c7..c74d5ff 100644
--- a/android/neverallow_test.go
+++ b/android/neverallow_test.go
@@ -374,6 +374,20 @@
`is_auto_generated property is only allowed for filesystem modules in build/soong/fsgen directory`,
},
},
+ // Test for the rule restricting use of prebuilt_* module
+ {
+ name: `"prebuilt_usr_srec" defined in Android.bp file`,
+ fs: map[string][]byte{
+ "a/b/Android.bp": []byte(`
+ prebuilt_usr_srec {
+ name: "foo",
+ }
+ `),
+ },
+ expectedErrors: []string{
+ `module type not allowed to be defined in bp file`,
+ },
+ },
}
var prepareForNeverAllowTest = GroupFixturePreparers(
@@ -383,6 +397,7 @@
ctx.RegisterModuleType("java_library_host", newMockJavaLibraryModule)
ctx.RegisterModuleType("java_device_for_host", newMockJavaLibraryModule)
ctx.RegisterModuleType("filesystem", newMockFilesystemModule)
+ ctx.RegisterModuleType("prebuilt_usr_srec", newMockPrebuiltUsrSrecModule)
}),
)
@@ -482,3 +497,16 @@
func (p *mockJavaLibraryModule) GenerateAndroidBuildActions(ModuleContext) {
}
+
+type mockPrebuiltUsrSrecModule struct {
+ ModuleBase
+}
+
+func (p *mockPrebuiltUsrSrecModule) GenerateAndroidBuildActions(ModuleContext) {
+}
+
+func newMockPrebuiltUsrSrecModule() Module {
+ m := &mockPrebuiltUsrSrecModule{}
+ InitAndroidModule(m)
+ return m
+}