Loading android/neverallow.go +23 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package android import ( "path/filepath" "reflect" "regexp" "strconv" "strings" Loading Loading @@ -146,7 +147,8 @@ func createLibcoreRules() []Rule { rules := []Rule{ NeverAllow(). NotIn(coreLibraryProjects...). With("sdk_version", "none"), With("sdk_version", "none"). WithoutMatcher("name", Regexp("^android_.*stubs_current$")), } return rules Loading Loading @@ -254,6 +256,18 @@ func (m *startsWithMatcher) String() string { return ".starts-with(" + m.prefix + ")" } type regexMatcher struct { re *regexp.Regexp } func (m *regexMatcher) test(value string) bool { return m.re.MatchString(value) } func (m *regexMatcher) String() string { return ".regexp(" + m.re.String() + ")" } type ruleProperty struct { fields []string // e.x.: Vndk.Enabled matcher ValueMatcher Loading Loading @@ -457,6 +471,14 @@ func StartsWith(prefix string) ValueMatcher { return &startsWithMatcher{prefix} } func Regexp(re string) ValueMatcher { r, err := regexp.Compile(re) if err != nil { panic(err) } return ®exMatcher{r} } // assorted utils func cleanPaths(paths []string) []string { Loading android/neverallow_test.go +10 −0 Original line number Diff line number Diff line Loading @@ -226,6 +226,16 @@ var neverallowTests = []struct { }`), }, }, { name: "sdk_version: \"none\" on android_*stubs_current stub", fs: map[string][]byte{ "frameworks/base/Android.bp": []byte(` java_library { name: "android_stubs_current", sdk_version: "none", }`), }, }, { name: "sdk_version: \"none\" outside core libraries", fs: map[string][]byte{ Loading Loading
android/neverallow.go +23 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package android import ( "path/filepath" "reflect" "regexp" "strconv" "strings" Loading Loading @@ -146,7 +147,8 @@ func createLibcoreRules() []Rule { rules := []Rule{ NeverAllow(). NotIn(coreLibraryProjects...). With("sdk_version", "none"), With("sdk_version", "none"). WithoutMatcher("name", Regexp("^android_.*stubs_current$")), } return rules Loading Loading @@ -254,6 +256,18 @@ func (m *startsWithMatcher) String() string { return ".starts-with(" + m.prefix + ")" } type regexMatcher struct { re *regexp.Regexp } func (m *regexMatcher) test(value string) bool { return m.re.MatchString(value) } func (m *regexMatcher) String() string { return ".regexp(" + m.re.String() + ")" } type ruleProperty struct { fields []string // e.x.: Vndk.Enabled matcher ValueMatcher Loading Loading @@ -457,6 +471,14 @@ func StartsWith(prefix string) ValueMatcher { return &startsWithMatcher{prefix} } func Regexp(re string) ValueMatcher { r, err := regexp.Compile(re) if err != nil { panic(err) } return ®exMatcher{r} } // assorted utils func cleanPaths(paths []string) []string { Loading
android/neverallow_test.go +10 −0 Original line number Diff line number Diff line Loading @@ -226,6 +226,16 @@ var neverallowTests = []struct { }`), }, }, { name: "sdk_version: \"none\" on android_*stubs_current stub", fs: map[string][]byte{ "frameworks/base/Android.bp": []byte(` java_library { name: "android_stubs_current", sdk_version: "none", }`), }, }, { name: "sdk_version: \"none\" outside core libraries", fs: map[string][]byte{ Loading