Skip to content

Commit

Permalink
NoJira: Support approved regression for new tests
Browse files Browse the repository at this point in the history
  • Loading branch information
neisw committed Feb 7, 2025
1 parent 7024e60 commit 3a1fc4e
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 5 deletions.
13 changes: 8 additions & 5 deletions hack/gen-resolved-issue.py
Original file line number Diff line number Diff line change
Expand Up @@ -822,12 +822,15 @@ def triage_regressions(regressed_tests, triaged_incidents, issue_url, currrent_c

if args.intentional_regressions:
#get the data from json_data
# default to 95% pass rate if not
if "base_stats" not in json_data or "sample_stats" not in json_data:
continue

intentionalRegression["PreviousSuccesses"] = json_data["base_stats"]["success_count"]
intentionalRegression["PreviousFailures"] = json_data["base_stats"]["failure_count"]
intentionalRegression["PreviousFlakes"] = json_data["base_stats"]["flake_count"]
intentionalRegression["PreviousSuccesses"] = 95
intentionalRegression["PreviousFailures"] = 5
intentionalRegression["PreviousFlakes"] = 0
else:
intentionalRegression["PreviousSuccesses"] = json_data["base_stats"]["success_count"]
intentionalRegression["PreviousFailures"] = json_data["base_stats"]["failure_count"]
intentionalRegression["PreviousFlakes"] = json_data["base_stats"]["flake_count"]

intentionalRegression["RegressedSuccesses"] = json_data["sample_stats"]["success_count"]
intentionalRegression["RegressedFailures"] = json_data["sample_stats"]["failure_count"]
Expand Down
11 changes: 11 additions & 0 deletions pkg/api/componentreadiness/component_report.go
Original file line number Diff line number Diff line change
Expand Up @@ -1549,6 +1549,12 @@ func (c *componentReportGenerator) assessComponentStatus(

if baseTotal == 0 && c.RequestAdvancedOptions.PassRateRequiredNewTests > 0 {
// If we have no base stats, fall back to a raw pass rate comparison for new or improperly renamed tests:
//swap out sample with approvedRegression if we have it
if approvedRegression != nil {
sampleFailure = approvedRegression.PreviousFailures
sampleFlake = approvedRegression.PreviousFlakes
sampleSuccess = approvedRegression.PreviousSuccesses
}
testStats := c.buildPassRateTestStats(sampleSuccess, sampleFailure, sampleFlake,
float64(c.RequestAdvancedOptions.PassRateRequiredNewTests))
// If a new test reports no regression, and we're not using pass rate mode for all tests, we alter
Expand All @@ -1559,6 +1565,11 @@ func (c *componentReportGenerator) assessComponentStatus(
return testStats
} else if c.RequestAdvancedOptions.PassRateRequiredAllTests > 0 {
// If requested, switch to pass rate only testing to see what does not meet the criteria:
if approvedRegression != nil {
sampleFailure = approvedRegression.PreviousFailures
sampleFlake = approvedRegression.PreviousFlakes
sampleSuccess = approvedRegression.PreviousSuccesses
}
testStats := c.buildPassRateTestStats(sampleSuccess, sampleFailure, sampleFlake,
float64(c.RequestAdvancedOptions.PassRateRequiredAllTests))
// include base stats even though we didn't do fishers exact here, this is helpful
Expand Down

0 comments on commit 3a1fc4e

Please sign in to comment.