Support multiple expected errors in neverallow_test.go

Extracted some common code used by visibility_test.go and
neverallow_test.go into a new function CheckErrorsAgainstExpectations
in testing.go.

(cherry picked from commit 8e47e8bc41)
Bug: 138428610
Test: m nothing
Change-Id: Iafbadf12c6ffdc4d9128fcfe7f15792df5cfd020
This commit is contained in:
Paul Duffin
2019-08-05 15:07:57 +01:00
parent f3d807778d
commit b5af6204d3
3 changed files with 58 additions and 39 deletions

View File

@@ -372,6 +372,29 @@ func FailIfNoMatchingErrors(t *testing.T, pattern string, errs []error) {
}
}
func CheckErrorsAgainstExpectations(t *testing.T, errs []error, expectedErrorPatterns []string) {
t.Helper()
if expectedErrorPatterns == nil {
FailIfErrored(t, errs)
} else {
for _, expectedError := range expectedErrorPatterns {
FailIfNoMatchingErrors(t, expectedError, errs)
}
if len(errs) > len(expectedErrorPatterns) {
t.Errorf("additional errors found, expected %d, found %d",
len(expectedErrorPatterns), len(errs))
for i, expectedError := range expectedErrorPatterns {
t.Errorf("expectedErrors[%d] = %s", i, expectedError)
}
for i, err := range errs {
t.Errorf("errs[%d] = %s", i, err)
}
}
}
}
func AndroidMkEntriesForTest(t *testing.T, config Config, bpPath string, mod blueprint.Module) AndroidMkEntries {
var p AndroidMkEntriesProvider
var ok bool