Add neverallow rules for java_device_for_host

java_device_for_host and java_host_for_device should rarely be
used and could cause problems if used incorrectly, so restrict them
to only the necessary projects through a neverallow whitelist.

Bug: 117920228
Test: neverallow_test.go
Change-Id: I37dce489c2fb8bca71bd46dbabaaa514bf6f7eee
Merged-In: I37dce489c2fb8bca71bd46dbabaaa514bf6f7eee
This commit is contained in:
Colin Cross
2019-03-05 15:06:16 -08:00
parent 3d7c9827d5
commit c35c5f9824
2 changed files with 59 additions and 0 deletions

View File

@@ -148,6 +148,17 @@ var neverallowTests = []struct {
},
expectedError: "Only core libraries projects can depend on core-libart",
},
{
name: "java_device_for_host",
fs: map[string][]byte{
"Blueprints": []byte(`
java_device_for_host {
name: "device_for_host",
libs: ["core-libart"],
}`),
},
expectedError: "java_device_for_host can only be used in whitelisted projects",
},
}
func TestNeverallow(t *testing.T) {
@@ -176,6 +187,7 @@ func testNeverallow(t *testing.T, config Config, fs map[string][]byte) (*TestCon
ctx := NewTestContext()
ctx.RegisterModuleType("cc_library", ModuleFactoryAdaptor(newMockCcLibraryModule))
ctx.RegisterModuleType("java_library", ModuleFactoryAdaptor(newMockJavaLibraryModule))
ctx.RegisterModuleType("java_device_for_host", ModuleFactoryAdaptor(newMockJavaLibraryModule))
ctx.PostDepsMutators(registerNeverallowMutator)
ctx.Register()