Allow defining neverallow in packages other than android.
This exposes test func on ValueMatcher and helpers relevant for testing neverallows.
Bug: 153333044
Test: m
Change-Id: Ied07cd33afa537f9d7aa3c33e59f4ac985901a0f
Merged-In: Ied07cd33afa537f9d7aa3c33e59f4ac985901a0f
Exempt-From-Owner-Approval: clean cherry-pick
(cherry picked from commit c5570ac9b1
)
This commit is contained in:
parent
c6fff020f5
commit
b39ea9b61c
|
@ -103,7 +103,7 @@ var postDeps = []RegisterMutatorFunc{
|
|||
registerPathDepsMutator,
|
||||
RegisterPrebuiltsPostDepsMutators,
|
||||
RegisterVisibilityRuleEnforcer,
|
||||
registerNeverallowMutator,
|
||||
RegisterNeverallowMutator,
|
||||
RegisterOverridePostDepsMutators,
|
||||
}
|
||||
|
||||
|
|
|
@ -42,7 +42,7 @@ import (
|
|||
// counts as a match
|
||||
// - it has none of the "Without" properties matched (same rules as above)
|
||||
|
||||
func registerNeverallowMutator(ctx RegisterMutatorsContext) {
|
||||
func RegisterNeverallowMutator(ctx RegisterMutatorsContext) {
|
||||
ctx.BottomUp("neverallow", neverallowMutator).Parallel()
|
||||
}
|
||||
|
||||
|
@ -215,7 +215,7 @@ func neverallowMutator(ctx BottomUpMutatorContext) {
|
|||
}
|
||||
|
||||
type ValueMatcher interface {
|
||||
test(string) bool
|
||||
Test(string) bool
|
||||
String() string
|
||||
}
|
||||
|
||||
|
@ -223,7 +223,7 @@ type equalMatcher struct {
|
|||
expected string
|
||||
}
|
||||
|
||||
func (m *equalMatcher) test(value string) bool {
|
||||
func (m *equalMatcher) Test(value string) bool {
|
||||
return m.expected == value
|
||||
}
|
||||
|
||||
|
@ -234,7 +234,7 @@ func (m *equalMatcher) String() string {
|
|||
type anyMatcher struct {
|
||||
}
|
||||
|
||||
func (m *anyMatcher) test(value string) bool {
|
||||
func (m *anyMatcher) Test(value string) bool {
|
||||
return true
|
||||
}
|
||||
|
||||
|
@ -248,7 +248,7 @@ type startsWithMatcher struct {
|
|||
prefix string
|
||||
}
|
||||
|
||||
func (m *startsWithMatcher) test(value string) bool {
|
||||
func (m *startsWithMatcher) Test(value string) bool {
|
||||
return strings.HasPrefix(value, m.prefix)
|
||||
}
|
||||
|
||||
|
@ -260,7 +260,7 @@ type regexMatcher struct {
|
|||
re *regexp.Regexp
|
||||
}
|
||||
|
||||
func (m *regexMatcher) test(value string) bool {
|
||||
func (m *regexMatcher) Test(value string) bool {
|
||||
return m.re.MatchString(value)
|
||||
}
|
||||
|
||||
|
@ -529,7 +529,7 @@ func hasProperty(properties []interface{}, prop ruleProperty) bool {
|
|||
}
|
||||
|
||||
check := func(value string) bool {
|
||||
return prop.matcher.test(value)
|
||||
return prop.matcher.Test(value)
|
||||
}
|
||||
|
||||
if matchValue(propertiesValue, check) {
|
||||
|
@ -586,6 +586,6 @@ func neverallowRules(config Config) []Rule {
|
|||
// Overrides the default neverallow rules for the supplied config.
|
||||
//
|
||||
// For testing only.
|
||||
func setTestNeverallowRules(config Config, testRules []Rule) {
|
||||
func SetTestNeverallowRules(config Config, testRules []Rule) {
|
||||
config.Once(neverallowRulesKey, func() interface{} { return testRules })
|
||||
}
|
||||
|
|
|
@ -269,7 +269,7 @@ func TestNeverallow(t *testing.T) {
|
|||
t.Run(test.name, func(t *testing.T) {
|
||||
// If the test has its own rules then use them instead of the default ones.
|
||||
if test.rules != nil {
|
||||
setTestNeverallowRules(config, test.rules)
|
||||
SetTestNeverallowRules(config, test.rules)
|
||||
}
|
||||
_, errs := testNeverallow(config)
|
||||
CheckErrorsAgainstExpectations(t, errs, test.expectedErrors)
|
||||
|
@ -283,7 +283,7 @@ func testNeverallow(config Config) (*TestContext, []error) {
|
|||
ctx.RegisterModuleType("java_library", newMockJavaLibraryModule)
|
||||
ctx.RegisterModuleType("java_library_host", newMockJavaLibraryModule)
|
||||
ctx.RegisterModuleType("java_device_for_host", newMockJavaLibraryModule)
|
||||
ctx.PostDepsMutators(registerNeverallowMutator)
|
||||
ctx.PostDepsMutators(RegisterNeverallowMutator)
|
||||
ctx.Register(config)
|
||||
|
||||
_, errs := ctx.ParseBlueprintsFiles("Android.bp")
|
||||
|
|
Loading…
Reference in New Issue