Merge "Make error handlers treat any failures as fatal" am: 059f7f1ff3 am: 163f65aa28

Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1619407

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ic5bfd923e0e5e04ad0c7554ec7101d84d93f6566
This commit is contained in:
Paul Duffin 2021-03-06 09:06:48 +00:00 committed by Automerger Merge Worker
commit 342f88f999
2 changed files with 20 additions and 4 deletions

View File

@ -396,6 +396,9 @@ func (h simpleErrorHandler) CheckErrors(result *TestResult, errs []error) {
// The default fixture error handler.
//
// Will fail the test immediately if any errors are reported.
//
// If the test fails this handler will call `result.FailNow()` which will exit the goroutine within
// which the test is being run which means that the RunTest() method will not return.
var FixtureExpectsNoErrors = FixtureCustomErrorHandler(
func(result *TestResult, errs []error) {
FailIfErrored(result.T, errs)
@ -411,9 +414,14 @@ var FixtureExpectsNoErrors = FixtureCustomErrorHandler(
//
// The test will not fail if:
// * Multiple errors are reported that do not match the pattern as long as one does match.
//
// If the test fails this handler will call `result.FailNow()` which will exit the goroutine within
// which the test is being run which means that the RunTest() method will not return.
func FixtureExpectsAtLeastOneErrorMatchingPattern(pattern string) FixtureErrorHandler {
return FixtureCustomErrorHandler(func(result *TestResult, errs []error) {
FailIfNoMatchingErrors(result.T, pattern, errs)
if !FailIfNoMatchingErrors(result.T, pattern, errs) {
result.FailNow()
}
})
}
@ -427,6 +435,9 @@ func FixtureExpectsAtLeastOneErrorMatchingPattern(pattern string) FixtureErrorHa
//
// The test will not fail if:
// * One or more of the patterns does not match an error.
//
// If the test fails this handler will call `result.FailNow()` which will exit the goroutine within
// which the test is being run which means that the RunTest() method will not return.
func FixtureExpectsAllErrorsToMatchAPattern(patterns []string) FixtureErrorHandler {
return FixtureCustomErrorHandler(func(result *TestResult, errs []error) {
CheckErrorsAgainstExpectations(result.T, errs, patterns)

View File

@ -456,12 +456,15 @@ func FailIfErrored(t *testing.T, errs []error) {
}
}
func FailIfNoMatchingErrors(t *testing.T, pattern string, errs []error) {
// Fail if no errors that matched the regular expression were found.
//
// Returns true if a matching error was found, false otherwise.
func FailIfNoMatchingErrors(t *testing.T, pattern string, errs []error) bool {
t.Helper()
matcher, err := regexp.Compile(pattern)
if err != nil {
t.Errorf("failed to compile regular expression %q because %s", pattern, err)
t.Fatalf("failed to compile regular expression %q because %s", pattern, err)
}
found := false
@ -477,6 +480,8 @@ func FailIfNoMatchingErrors(t *testing.T, pattern string, errs []error) {
t.Errorf("errs[%d] = %q", i, err)
}
}
return found
}
func CheckErrorsAgainstExpectations(t *testing.T, errs []error, expectedErrorPatterns []string) {
@ -497,9 +502,9 @@ func CheckErrorsAgainstExpectations(t *testing.T, errs []error, expectedErrorPat
for i, err := range errs {
t.Errorf("errs[%d] = %s", i, err)
}
t.FailNow()
}
}
}
func SetKatiEnabledForTests(config Config) {