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:
commit
342f88f999
|
@ -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)
|
||||
|
|
|
@ -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) {
|
||||
|
|
Loading…
Reference in New Issue