Add tests for core library neverallow rules

Bug: 134566750
Test: m
Change-Id: I65e2afdf726937c29fc4f62a317024dc133254bf
This commit is contained in:
Paul Duffin
2019-06-07 11:43:55 +01:00
parent 7268fd494d
commit b6c6bdd1c2
2 changed files with 38 additions and 2 deletions

View File

@@ -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"),
}

View File

@@ -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 {