Regres: Include an example test for each of top N failures
Bug: b/129056755
Change-Id: I01518b3cb802c45f2b3cc14e6e2c2f81416b4cd4
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27782
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
diff --git a/tests/regres/main.go b/tests/regres/main.go
index ce3361c..310b354 100644
--- a/tests/regres/main.go
+++ b/tests/regres/main.go
@@ -190,7 +190,7 @@
}
changes := map[string]*changeInfo{} // Change ID -> changeInfo
- lastUpdatedTestLists := toDate(time.Now())
+ lastUpdatedTestLists := date{} // toDate(time.Now())
lastQueriedChanges := time.Time{}
for {
@@ -483,18 +483,20 @@
if len(lines) == 1 {
line := lines[0]
if line != "" {
- sb.WriteString(fmt.Sprintf(" %d occurrences: %v: %v\n", f.count, f.status, line))
+ sb.WriteString(fmt.Sprintf(" • %d occurrences: %v: %v\n", f.count, f.status, line))
} else {
- sb.WriteString(fmt.Sprintf(" %d occurrences: %v\n", f.count, f.status))
+ sb.WriteString(fmt.Sprintf(" • %d occurrences: %v\n", f.count, f.status))
}
} else {
- sb.WriteString(fmt.Sprintf(" %d occurrences: %v:\n", f.count, f.status))
+ sb.WriteString(fmt.Sprintf(" • %d occurrences: %v:\n", f.count, f.status))
for _, l := range lines {
sb.WriteString(" > ")
sb.WriteString(l)
sb.WriteString("\n")
}
}
+ sb.WriteString(fmt.Sprintf(" Example test: %v\n", f.exampleTest))
+
}
msg := sb.String()
@@ -907,20 +909,27 @@
type commonFailure struct {
count int
testStatusAndError
+ exampleTest string
}
func (r *CommitTestResults) commonFailures() []commonFailure {
failures := map[testStatusAndError]int{}
- for _, test := range r.Tests {
+ examples := map[testStatusAndError]string{}
+ for name, test := range r.Tests {
if !test.Status.Failing() {
continue
}
key := testStatusAndError{test.Status, test.Err}
- failures[key] = failures[key] + 1
+ if count, ok := failures[key]; ok {
+ failures[key] = count + 1
+ } else {
+ failures[key] = 1
+ examples[key] = name
+ }
}
out := make([]commonFailure, 0, len(failures))
for failure, count := range failures {
- out = append(out, commonFailure{count, failure})
+ out = append(out, commonFailure{count, failure, examples[failure]})
}
sort.Slice(out, func(i, j int) bool { return out[i].count > out[j].count })
return out