Revert "Prevent runtime module paths being used in include_dirs"
This reverts commit 31d0688df939fe9a87595281667e8bcd0566a51b.
Reason for revert: cause build breakage on stage-aosp-master
Change-Id: I7626f8ec36caaaa5eb4c7e9891565fc164a7f6c7
diff --git a/android/neverallow.go b/android/neverallow.go
index 8f1f1e0..ad1d5bd 100644
--- a/android/neverallow.go
+++ b/android/neverallow.go
@@ -48,7 +48,6 @@
var neverallows = []Rule{}
func init() {
- AddNeverAllowRules(createIncludeDirsRules()...)
AddNeverAllowRules(createTrebleRules()...)
AddNeverAllowRules(createLibcoreRules()...)
AddNeverAllowRules(createMediaRules()...)
@@ -60,42 +59,6 @@
neverallows = append(neverallows, rules...)
}
-func createIncludeDirsRules() []Rule {
- // The list of paths that cannot be referenced using include_dirs
- paths := []string{
- "art",
- "libcore",
- "libnativehelper",
- "external/apache-harmony",
- "external/apache-xml",
- "external/boringssl",
- "external/bouncycastle",
- "external/conscrypt",
- "external/icu",
- "external/okhttp",
- "external/vixl",
- "external/wycheproof",
- "system/core/libnativebridge",
- "system/core/libnativehelper",
- }
-
- // 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 {
- rule :=
- NeverAllow().
- WithMatcher("include_dirs", StartsWith(path+"/")).
- Because("include_dirs is deprecated, all usages of '" + path + "' have been migrated" +
- " to use alternate mechanisms and so can no longer be used.")
-
- rules = append(rules, rule)
- }
-
- return rules
-}
-
func createTrebleRules() []Rule {
return []Rule{
NeverAllow().
@@ -232,18 +195,6 @@
var anyMatcherInstance = &anyMatcher{}
-type startsWithMatcher struct {
- prefix string
-}
-
-func (m *startsWithMatcher) test(value string) bool {
- return strings.HasPrefix(value, m.prefix)
-}
-
-func (m *startsWithMatcher) String() string {
- return ".starts-with(" + m.prefix + ")"
-}
-
type ruleProperty struct {
fields []string // e.x.: Vndk.Enabled
matcher ValueMatcher
@@ -261,12 +212,8 @@
With(properties, value string) Rule
- WithMatcher(properties string, matcher ValueMatcher) Rule
-
Without(properties, value string) Rule
- WithoutMatcher(properties string, matcher ValueMatcher) Rule
-
Because(reason string) Rule
}
@@ -310,25 +257,17 @@
}
func (r *rule) With(properties, value string) Rule {
- return r.WithMatcher(properties, selectMatcher(value))
-}
-
-func (r *rule) WithMatcher(properties string, matcher ValueMatcher) Rule {
r.props = append(r.props, ruleProperty{
fields: fieldNamesForProperties(properties),
- matcher: matcher,
+ matcher: selectMatcher(value),
})
return r
}
func (r *rule) Without(properties, value string) Rule {
- return r.WithoutMatcher(properties, selectMatcher(value))
-}
-
-func (r *rule) WithoutMatcher(properties string, matcher ValueMatcher) Rule {
r.unlessProps = append(r.unlessProps, ruleProperty{
fields: fieldNamesForProperties(properties),
- matcher: matcher,
+ matcher: selectMatcher(value),
})
return r
}
@@ -387,10 +326,6 @@
return includeProps && !excludeProps
}
-func StartsWith(prefix string) ValueMatcher {
- return &startsWithMatcher{prefix}
-}
-
// assorted utils
func cleanPaths(paths []string) []string {
diff --git a/android/neverallow_test.go b/android/neverallow_test.go
index 31f8187..17e40f0 100644
--- a/android/neverallow_test.go
+++ b/android/neverallow_test.go
@@ -23,29 +23,6 @@
fs map[string][]byte
expectedError string
}{
- // include_dir rule tests
- {
- name: "include_dir not allowed to reference art",
- fs: map[string][]byte{
- "other/Blueprints": []byte(`
- cc_library {
- name: "libother",
- include_dirs: ["art/libdexfile/include"],
- }`),
- },
- expectedError: "all usages of 'art' have been migrated",
- },
- {
- name: "include_dir can reference another location",
- fs: map[string][]byte{
- "other/Blueprints": []byte(`
- cc_library {
- name: "libother",
- include_dirs: ["another/include"],
- }`),
- },
- },
- // Treble rule tests
{
name: "no vndk.enabled under vendor directory",
fs: map[string][]byte{
@@ -236,7 +213,6 @@
}
type mockCcLibraryProperties struct {
- Include_dirs []string
Vendor_available *bool
Vndk struct {