Add tests for core library neverallow rules
am: b6c6bdd1c2
Change-Id: I038cac7caec29afb74bda6c2f3e57f7aafe42632
This commit is contained in:
@@ -95,6 +95,9 @@ func createLibcoreRules() []*rule {
|
||||
"external/icu",
|
||||
"external/okhttp",
|
||||
"external/wycheproof",
|
||||
|
||||
// Not really a core library but still needs access to same capabilities.
|
||||
"development",
|
||||
}
|
||||
|
||||
// Core library constraints. The no_standard_libs can only be used in core
|
||||
@@ -102,7 +105,7 @@ func createLibcoreRules() []*rule {
|
||||
// visibility rules.
|
||||
rules := []*rule{
|
||||
neverallow().
|
||||
notIn(append(coreLibraryProjects, "development")...).
|
||||
notIn(coreLibraryProjects...).
|
||||
with("no_standard_libs", "true"),
|
||||
}
|
||||
|
||||
|
@@ -148,6 +148,38 @@ var neverallowTests = []struct {
|
||||
},
|
||||
expectedError: "java_device_for_host can only be used in whitelisted projects",
|
||||
},
|
||||
// Libcore rule tests
|
||||
{
|
||||
name: "no_standard_libs: true inside core libraries",
|
||||
fs: map[string][]byte{
|
||||
"libcore/Blueprints": []byte(`
|
||||
java_library {
|
||||
name: "inside_core_libraries",
|
||||
no_standard_libs: true,
|
||||
}`),
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "no_standard_libs: true outside core libraries",
|
||||
fs: map[string][]byte{
|
||||
"Blueprints": []byte(`
|
||||
java_library {
|
||||
name: "outside_core_libraries",
|
||||
no_standard_libs: true,
|
||||
}`),
|
||||
},
|
||||
expectedError: "module \"outside_core_libraries\": violates neverallow",
|
||||
},
|
||||
{
|
||||
name: "no_standard_libs: false",
|
||||
fs: map[string][]byte{
|
||||
"Blueprints": []byte(`
|
||||
java_library {
|
||||
name: "outside_core_libraries",
|
||||
no_standard_libs: false,
|
||||
}`),
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
func TestNeverallow(t *testing.T) {
|
||||
@@ -227,7 +259,8 @@ func (p *mockCcLibraryModule) GenerateAndroidBuildActions(ModuleContext) {
|
||||
}
|
||||
|
||||
type mockJavaLibraryProperties struct {
|
||||
Libs []string
|
||||
Libs []string
|
||||
No_standard_libs *bool
|
||||
}
|
||||
|
||||
type mockJavaLibraryModule struct {
|
||||
|
Reference in New Issue
Block a user