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/icu",
|
||||||
"external/okhttp",
|
"external/okhttp",
|
||||||
"external/wycheproof",
|
"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
|
// Core library constraints. The no_standard_libs can only be used in core
|
||||||
@@ -102,7 +105,7 @@ func createLibcoreRules() []*rule {
|
|||||||
// visibility rules.
|
// visibility rules.
|
||||||
rules := []*rule{
|
rules := []*rule{
|
||||||
neverallow().
|
neverallow().
|
||||||
notIn(append(coreLibraryProjects, "development")...).
|
notIn(coreLibraryProjects...).
|
||||||
with("no_standard_libs", "true"),
|
with("no_standard_libs", "true"),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -148,6 +148,38 @@ var neverallowTests = []struct {
|
|||||||
},
|
},
|
||||||
expectedError: "java_device_for_host can only be used in whitelisted projects",
|
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) {
|
func TestNeverallow(t *testing.T) {
|
||||||
@@ -228,6 +260,7 @@ func (p *mockCcLibraryModule) GenerateAndroidBuildActions(ModuleContext) {
|
|||||||
|
|
||||||
type mockJavaLibraryProperties struct {
|
type mockJavaLibraryProperties struct {
|
||||||
Libs []string
|
Libs []string
|
||||||
|
No_standard_libs *bool
|
||||||
}
|
}
|
||||||
|
|
||||||
type mockJavaLibraryModule struct {
|
type mockJavaLibraryModule struct {
|
||||||
|
Reference in New Issue
Block a user