Skip to content

Commit 56e1919

Browse files
committed
Fix flakeguard aggregations
1 parent be06798 commit 56e1919

File tree

2 files changed

+13
-12
lines changed

2 files changed

+13
-12
lines changed

tools/flakeguard/reports/reports.go

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -102,14 +102,17 @@ func AggregateTestResults(folderPath string) ([]TestResult, error) {
102102
key := result.TestName + "|" + result.TestPackage
103103
if existingResult, found := testMap[key]; found {
104104
// Aggregate runs, durations, and outputs
105-
totalRuns := existingResult.Runs + result.Runs
105+
existingResult.Runs = existingResult.Runs + result.Runs
106106
existingResult.Durations = append(existingResult.Durations, result.Durations...)
107107
existingResult.Outputs = append(existingResult.Outputs, result.Outputs...)
108+
existingResult.PackageOutputs = append(existingResult.PackageOutputs, result.PackageOutputs...)
109+
existingResult.Successes += result.Successes
110+
existingResult.Failures += result.Failures
111+
existingResult.Panics += result.Panics
112+
existingResult.Races += result.Races
113+
existingResult.Skips += result.Skips
114+
existingResult.PassRatio = float64(existingResult.Successes) / float64(existingResult.Runs)
108115

109-
// Calculate total successful runs for correct pass ratio calculation
110-
successfulRuns := existingResult.PassRatio*float64(existingResult.Runs) + result.PassRatio*float64(result.Runs)
111-
existingResult.Runs = totalRuns
112-
existingResult.PassRatio = successfulRuns / float64(totalRuns)
113116
existingResult.Skipped = existingResult.Skipped && result.Skipped // Mark as skipped only if all occurrences are skipped
114117

115118
// Update the map with the aggregated result

tools/flakeguard/runner/runner.go

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,6 @@ func parseTestResults(filePaths []string) ([]reports.TestResult, error) {
242242
panicTestKey := fmt.Sprintf("%s/%s", entryLine.Package, panicTest)
243243
testDetails[panicTestKey].Panicked = true
244244
testDetails[panicTestKey].Panics++
245-
testDetails[panicTestKey].Runs++
246245
// TODO: durations and panics are weird in the same way as Runs: lots of double-counting
247246
// duration, err := time.ParseDuration(strconv.FormatFloat(entryLine.Elapsed, 'f', -1, 64) + "s")
248247
// if err != nil {
@@ -264,7 +263,6 @@ func parseTestResults(filePaths []string) ([]reports.TestResult, error) {
264263
}
265264
raceTestKey := fmt.Sprintf("%s/%s", entryLine.Package, raceTest)
266265
testDetails[raceTestKey].Races++
267-
testDetails[raceTestKey].Runs++
268266
// TODO: durations and races are weird in the same way as Runs: lots of double-counting
269267
// duration, err := time.ParseDuration(strconv.FormatFloat(entryLine.Elapsed, 'f', -1, 64) + "s")
270268
// if err != nil {
@@ -296,7 +294,6 @@ func parseTestResults(filePaths []string) ([]reports.TestResult, error) {
296294
}
297295
result.Durations = append(result.Durations, duration)
298296
result.Successes++
299-
result.Runs++
300297
}
301298
case "fail":
302299
if entryLine.Test != "" {
@@ -306,7 +303,6 @@ func parseTestResults(filePaths []string) ([]reports.TestResult, error) {
306303
}
307304
result.Durations = append(result.Durations, duration)
308305
result.Failures++
309-
result.Runs++
310306
}
311307
case "skip":
312308
if entryLine.Test != "" {
@@ -317,11 +313,13 @@ func parseTestResults(filePaths []string) ([]reports.TestResult, error) {
317313
result.Durations = append(result.Durations, duration)
318314
result.Skipped = true
319315
result.Skips++
320-
result.Runs++
321316
}
322317
}
323-
if entryLine.Test != "" && result.Runs > 0 {
324-
result.PassRatio = float64(result.Successes) / float64(result.Runs)
318+
if entryLine.Test != "" {
319+
result.Runs = result.Successes + result.Failures + result.Panics + result.Races + result.Skips
320+
if result.Runs > 0 {
321+
result.PassRatio = float64(result.Successes) / float64(result.Runs)
322+
}
325323
result.PassRatioPercentage = fmt.Sprintf("%.0f%%", result.PassRatio*100)
326324
}
327325
}

0 commit comments

Comments
 (0)