start eating include_dirs from both ends
Further restrictions on a restricting build configuration. Before, we restricted certain paths from being included. Now, we restrict certain paths from including. This adds system/libfmq for now, but I'm planning to add more in the future, as they are cleaned up. Bug: 35624006 Test: m nothing Change-Id: I913f190f93ab63059ee0372d342daa8f5584806b
This commit is contained in:
parent
aef7fcfa7e
commit
8fc8dbf70c
|
@ -63,8 +63,7 @@ func AddNeverAllowRules(rules ...Rule) {
|
|||
}
|
||||
|
||||
func createIncludeDirsRules() []Rule {
|
||||
// The list of paths that cannot be referenced using include_dirs
|
||||
paths := []string{
|
||||
notInIncludeDir := []string{
|
||||
"art",
|
||||
"art/libnativebridge",
|
||||
"art/libnativeloader",
|
||||
|
@ -80,12 +79,13 @@ func createIncludeDirsRules() []Rule {
|
|||
"external/vixl",
|
||||
"external/wycheproof",
|
||||
}
|
||||
noUseIncludeDir := []string{
|
||||
"system/libfmq",
|
||||
}
|
||||
|
||||
// Create a composite matcher that will match if the value starts with any of the restricted
|
||||
// paths. A / is appended to the prefix to ensure that restricting path X does not affect paths
|
||||
// XY.
|
||||
rules := make([]Rule, 0, len(paths))
|
||||
for _, path := range paths {
|
||||
rules := make([]Rule, 0, len(notInIncludeDir)+len(noUseIncludeDir))
|
||||
|
||||
for _, path := range notInIncludeDir {
|
||||
rule :=
|
||||
NeverAllow().
|
||||
WithMatcher("include_dirs", StartsWith(path+"/")).
|
||||
|
@ -95,6 +95,13 @@ func createIncludeDirsRules() []Rule {
|
|||
rules = append(rules, rule)
|
||||
}
|
||||
|
||||
for _, path := range noUseIncludeDir {
|
||||
rule := NeverAllow().In(path+"/").WithMatcher("include_dirs", isSetMatcherInstance).
|
||||
Because("include_dirs is deprecated, all usages of them in '" + path + "' have been migrated" +
|
||||
" to use alternate mechanisms and so can no longer be used.")
|
||||
rules = append(rules, rule)
|
||||
}
|
||||
|
||||
return rules
|
||||
}
|
||||
|
||||
|
|
|
@ -76,7 +76,20 @@ var neverallowTests = []struct {
|
|||
},
|
||||
},
|
||||
{
|
||||
name: "include_dir can reference another location",
|
||||
name: "include_dir not allowed to reference art",
|
||||
fs: map[string][]byte{
|
||||
"system/libfmq/Android.bp": []byte(`
|
||||
cc_library {
|
||||
name: "libother",
|
||||
include_dirs: ["any/random/file"],
|
||||
}`),
|
||||
},
|
||||
expectedErrors: []string{
|
||||
"all usages of them in 'system/libfmq' have been migrated",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "include_dir can work",
|
||||
fs: map[string][]byte{
|
||||
"other/Android.bp": []byte(`
|
||||
cc_library {
|
||||
|
|
Loading…
Reference in New Issue