Merge "Never allow java_library_host with no_standard_libs: true"

am: 393590d8a8

Change-Id: I088ad447dbc1ebd4fbbdb889523aca30b6b67624
This commit is contained in:
Paul Duffin 2019-06-13 00:12:15 -07:00 committed by android-build-merger
commit 3321670746
3 changed files with 23 additions and 7 deletions

View file

@ -52,6 +52,7 @@ func createNeverAllows() []*rule {
rules = append(rules, createTrebleRules()...)
rules = append(rules, createLibcoreRules()...)
rules = append(rules, createJavaDeviceForHostRules()...)
rules = append(rules, createJavaLibraryHostRules()...)
return rules
}
@ -127,6 +128,15 @@ func createJavaDeviceForHostRules() []*rule {
}
}
func createJavaLibraryHostRules() []*rule {
return []*rule{
neverallow().
moduleType("java_library_host").
with("no_standard_libs", "true").
because("no_standard_libs makes no sense with java_library_host"),
}
}
func neverallowMutator(ctx BottomUpMutatorContext) {
m, ok := ctx.Module().(Module)
if !ok {

View file

@ -178,6 +178,18 @@ var neverallowTests = []struct {
}`),
},
},
// java_library_host rule tests
{
name: "java_library_host with no_standard_libs: true",
fs: map[string][]byte{
"libcore/Blueprints": []byte(`
java_library_host {
name: "inside_core_libraries",
no_standard_libs: true,
}`),
},
expectedError: "module \"inside_core_libraries\": violates neverallow",
},
}
func TestNeverallow(t *testing.T) {
@ -200,6 +212,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_library_host", ModuleFactoryAdaptor(newMockJavaLibraryModule))
ctx.RegisterModuleType("java_device_for_host", ModuleFactoryAdaptor(newMockJavaLibraryModule))
ctx.PostDepsMutators(registerNeverallowMutator)
ctx.Register()

View file

@ -136,13 +136,6 @@ func TestClasspath(t *testing.T) {
bootclasspath: []string{"jdk8/jre/lib/jce.jar", "jdk8/jre/lib/rt.jar"},
classpath: []string{},
},
{
name: "host nostdlib",
moduleType: "java_library_host",
host: android.Host,
properties: `no_standard_libs: true`,
classpath: []string{},
},
{
name: "host supported default",