From ff3d72f0bf62ff4e8b7a947d38b386d93403bafa Mon Sep 17 00:00:00 2001 From: Ming-Shin Lu Date: Mon, 22 Jul 2019 06:44:34 +0000 Subject: [PATCH] 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 --- android/neverallow.go | 69 ++------------------------------------ android/neverallow_test.go | 24 ------------- 2 files changed, 2 insertions(+), 91 deletions(-) diff --git a/android/neverallow.go b/android/neverallow.go index 8f1f1e0d4..ad1d5bd23 100644 --- a/android/neverallow.go +++ b/android/neverallow.go @@ -48,7 +48,6 @@ func registerNeverallowMutator(ctx RegisterMutatorsContext) { var neverallows = []Rule{} func init() { - AddNeverAllowRules(createIncludeDirsRules()...) AddNeverAllowRules(createTrebleRules()...) AddNeverAllowRules(createLibcoreRules()...) AddNeverAllowRules(createMediaRules()...) @@ -60,42 +59,6 @@ func AddNeverAllowRules(rules ...Rule) { 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 @@ func (m *anyMatcher) String() string { 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 @@ type Rule interface { 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) NotModuleType(types ...string) Rule { } 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 @@ func (r *rule) appliesToProperties(properties []interface{}) bool { 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 31f81871b..17e40f0bd 100644 --- a/android/neverallow_test.go +++ b/android/neverallow_test.go @@ -23,29 +23,6 @@ var neverallowTests = []struct { 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 @@ func testNeverallow(t *testing.T, config Config, fs map[string][]byte) (*TestCon } type mockCcLibraryProperties struct { - Include_dirs []string Vendor_available *bool Vndk struct {